Pre-compiled binaries of PDFium
This project hosts pre-compiled binaries of the PDFium library, an open-source library for PDF manipulation and rendering.
Builds have been triggered automatically every Monday since 2017.
Disclaimer: This project isn't affiliated with Google or Foxit.
Download
Here are the download links for latest release:
OS | CPU | PDFium |
---|---|---|
Android | arm | pdfium-android-arm.tgz |
arm64 | pdfium-android-arm64.tgz | |
x64 | pdfium-android-x64.tgz | |
x86 | pdfium-android-x86.tgz | |
iOS | arm64 | pdfium-ios-arm64.tgz |
x64 | pdfium-ios-x64.tgz | |
Linux | arm | pdfium-linux-arm.tgz |
arm64 | pdfium-linux-arm64.tgz | |
x64 | pdfium-linux-x64.tgz | |
x86 | pdfium-linux-x86.tgz | |
Linux musl |
x64 | pdfium-linux-musl-x64.tgz |
x86 | pdfium-linux-musl-x86.tgz | |
macOS | arm64 | pdfium-mac-arm64.tgz |
x64 | pdfium-mac-x64.tgz | |
Windows | arm64 | pdfium-win-arm64.tgz |
x64 | pdfium-win-x64.tgz | |
x86 | pdfium-win-x86.tgz | |
WebAssembly1 | pdfium-wasm.tgz |
1: WebAssembly build is experimental; please provide feedback.
See the Releases page to download older versions of PDFium.
NuGet Packages
The following NuGet packages are available:
OS | NuGet package |
---|---|
All (meta package) | bblanchon.PDFium |
Android | bblanchon.PDFium.Android |
iOS | bblanchon.PDFium.iOS |
Linux | bblanchon.PDFium.Linux |
macOS | bblanchon.PDFium.macOS |
Windows | bblanchon.PDFium.Win32 |
HELP WANTED!
I can provide packages for your favorite package manager, but I need help from someone who knows the format. Contact me via GitHub issues if you want to help.
Documentation
PDFium API documentation
Please find the documentation of the PDFium API on developers.foxit.com.
How to use PDFium in a CMake project
-
Unzip the downloaded package in a folder (e.g.,
C:\Libraries\pdfium
) -
Set the environment variable
PDFium_DIR
to this folder (e.g.,C:\Libraries\pdfium
) -
In your
CMakeLists.txt
, addfind_package(PDFium)
-
Then link your executable with PDFium:
target_link_libraries(my_exe pdfium)
-
On Windows, make sure that
pdfium.dll
can be found by your executable (copy it on the same folder, or put it on thePATH
).
How to use JavaScript V8 enabled binaries
If you are using the V8-enabled binaries, additional initialization is required.
In your code, before using PDFium you have to call FPDF_InitEmbeddedLibraries()
from the additional header fpdf_libs.h
, which is only available in V8 enabled
binaries.
The archive will contain a res
folder which you have to distribute with your
application. On macOS, you should include this in your application bundle; for other
platforms, place it where your application binary will find it.
See the following example for usage:
#include "fpdf_libs.h"
...
// Determine the path to files in the res folder from the archive
const char* resPath = "<path to the res folder>";
// Initialize V8 and other embedded libraries
FPDF_InitEmbeddedLibraries(resPath);
// Make use of PDFium
FPDF_InitLibrary();
FPDF_DestroyLibrary();
How to create macOS universal binary
To create a universal macOS binary containing both Intel and ARM code, download
both CPU versions and use the mac_create_universal.sh
script to create a
universal archive.
Related projects
The following projects use (or recommend using) our PDFium builds:
- dart_pdf, PDF creation module for dart/flutter
- Flutter native_pdf_renderer, Flutter Plugin to render PDF pages as images
- go-pdfium, a Go wrapper around PDFium with helper functions for various methods like image rendering and text extraction
- PDFium RS, a Rust wrapper around PDFium
- PDFiumCore, .NET Standard P/Invoke bindings for PDFium
- PDFtoImage, .NET library to render PDF content into images
- PyPDFium2, Python bindings to PDFium
- wxPDFView, wxWidgets components to display PDF content
- libvips, a performant image processing library
Did we miss a project? Please open a PR!
Contributors
David Sungaila, @sungaila:
- NuGet packages
Christoffer Green, @ChristofferGreen:
- Linux ARM build
Tobias Taschner, @TcT2k:
- macOS build
- V8 build