Coder Social home page Coder Social logo

pdfiumbuild's Introduction

PdfiumBuild

This project contains a build script to build PDFium for Windows. The process to build PDFium used here is described at https://github.com/pvginkel/PdfiumViewer/wiki/Building-PDFium. Basically it does a standard build, except that a .dll is build.

The main purpose of this project is to automate building the pdfium.dll support library and NuGet packages for the PdfiumViewer project. However, unmodified versions of the PDFium library are also provided.

Archived

I regret to announce I'm archiving this project. I haven't been able to spend any real time on this for a long time now, and must face the fact I'm not in a position to properly support this project.

I'm archiving this project together with the PdfiumViewer project for which this build project was created. Have look there for a bit more background and information.

I'm also shutting down the build server. The Builds folder in this project contains some archived built DLL's that may be of use. See the README there for more information on them.

I've had a great time developing this project and helping you out using this project, and I'm sad I have to now close this down. I hope PdfiumViewer and PdfiumBuild have been of value to you. The source code and NuGet packages won't be going anywhere, so keep using them if they're of value to you.

NuGet packages

Besides, the pdfium.dll files, NuGet packages are automatically build and published by the build server.

The following NuGet packages are available:

NuGet package Architecture V8 support XFA support
PdfiumViewer.Native.x86_64.v8-xfa 64-bit Yes Yes
PdfiumViewer.Native.x86_64.no_v8-no_xfa 64-bit No No
PdfiumViewer.Native.x86.v8-xfa 32-bit Yes Yes
PdfiumViewer.Native.x86.no_v8-no_xfa 32-bit No No

These NuGet packages contain the PDFium DLL and a MSBuild properties file to copy this to the correct folder in your output directory.

Depending on your needs, you can choose the NuGet package(s) you need. The ones with V8 and XFA support are bigger, but support more features. Also, the V8 version does not support Windows XP so if you need support for Windows XP, you need to choose one of the libraries that does not contain V8 support and include an updated version of the dbghelp libraries. These can be found in the Support\dbghelp directory.

The version numbers of these packages are determined automatically and are composed of the current date and the build number from the Jenkins build server.

The build server

A build server has been setup to compile PDFium weekly. The results can be downloaded from https://assendelft.webathome.org/Pdfium/. Please note that this is a personal server, which may be down at any time.

The URL points to a website that gives a view over the build output. It shows what builds succeeded and what builds failed and provides access to the build results.

Builds can fail for a number of reasons. For example, at some point the builds failed because issue v8:6068. This specific issue has been solved by now, but new issues can arise.

Feel free to create an issue if the builds are failing.

Adding build scripts

If you'd like to have a specific configuration of PDFium build, please provide a pull request. In the project, the Scripts directory contains scripts to configure a PDFium build. In such a directory, there is a args.gn file and optionally a contrib directory. The args.gn file configures the GN build tool and the contrib directory contains source files to be included in the compilation. If you want to have a configuration added, please submit a pull request with a new sub directory under the Scripts directory.

Building PDFium yourself

Alternatively you can use the application to build PDFium yourself. Building PDFium can take quite a while. To speed this up, you should remove all configurations under the Scripts directory that you don't need to be build before running the build script.

pdfiumbuild's People

Contributors

pvginkel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

pdfiumbuild's Issues

successfully built dlls from https://assendelft.webathome.org/Pdfium/ did not work, they are broken

Dear Van Ginkel,

first of all, thank you very much for your great PDF Projects.

i have tried to use the pdfium.dll from your builtserver https://assendelft.webathome.org/Pdfium/ for a project of mine.
The problem is, that the build seems to be built successfull, but when i try to put it into my project references it says that the .dll is corrupt.

For example: all builts from the 2018-01-07 are corrupt.

is it maybe possible that you upload a current working version of the pdfium.dll?

Thanks you very much,

Andreas Greiff

Could not copy "\packages\PdfiumViewer.Native.x86_64.v8-xfa.2017.12.4.236\build\x64\pdfium.dll" to "bin\x64\pdfium.dll". Exceeded retry count of 10. Failed.

I have found the issue in MsBuild scripts. When package added to the WebSite project then IIS locking file bin\x64\pdfium.dll.

Build script tries each build copy pdfium.dll.

To resolve this issue you need to change:
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
to
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>

in PdfiumViewer.Native.*.props files

Bug found - Env.cs

WebClient.DownloadFile is called before CreateDirectory is called and an exception is raised - CreateDirectory must be called first

Could not add to solution

First of all, thanks for the work you did creating this dll and the porting to C# of Pdfium.

I'm trying to add native dll to my project via NuGet but I get this error:

Could not install package 'PdfiumViewer.Native.x86_64.v8-xfa 2018.2.11.249'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.7', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.

I also tried to target to:

  • .NETFramework 4.6.1
  • .NETFramework 4.6
  • .NETFramework 4.5
  • .NETFramework 4.0

but still the same issue.

I'm on Ubuntu 17.10 and I'm working with MonoDevelop
How I can fix this?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.