This project hosts pre-compiled binaries of the PDFium library, an open-source library for PDF manipulation and rendering.
Builds are triggered automatically every Monday since 2017.
Disclaimer: This project isn't affiliated with Google or Foxit.
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.
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 the GitHub issues if you wanna help.
Please find the documentation of the PDFium API on developers.foxit.com.
-
Unzip the dpwnloaded package in a folder (e.g.,
C:\Libraries\pdfium
) -
Set the environment variable
PDFium_DIR
to this folder (egC:\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 in on thePATH
).
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();
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.
The following project 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
Did we miss a project? Please open a PR!
David Sungaila, @sungaila:
- NuGet packages
Christoffer Green, @ChristofferGreen:
- Linux ARM build
Tobias Taschner, @TcT2k:
- macOS build
- V8 build