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.
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 GitHub issues if you want to help.
Please find the documentation of the PDFium API on developers.foxit.com.
-
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
).
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 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
- PdfiumLib, an interface to libpdfium for Delphi
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