PDFium Component Docs

Google PDFium · Delphi · C++Builder · Lazarus

Bring the power of Chrome's PDF engine natively into your VCL / LCL apps

PDFiumPas wraps Google's PDFium — the same engine driving Chrome's built-in PDF viewer — as native Pascal components, so you get industrial-grade rendering quality, standards compliance and an extensible viewer with no C interop of your own

Read the full overview Browse the feature catalog

Why PDFiumPas over other PDF wrappers

Every point below is a delivered capability you can verify in the API reference and demos

Built on Google's PDFium engine

Wraps the very engine that powers Chrome's built-in PDF viewer — battle-tested, industry-standard, a trusted foundation for rendering quality and compliance. You get the engine's real capabilities, not a reinvention

Dynamically loads pdfium.dll / pdfium.v8.dll

Broadest IDE coverage in its class

Delphi / C++Builder (RAD Studio XE5 through 13.1 Florence) plus Lazarus / Free Pascal 3.8+, Win32 and Win64. Three IDE families share the same fixture PDFs and regression suites

147 Pas + 123 C++ test cases, byte-aligned

Full PDF standards spectrum

PDF/A-1b output (SaveAsPdfA) + validation (ValidatePdfA), plus PDF/UA, PDF/E, PDF/X, PDF/R and PDF/VT validation and version-compliance gating — exceptionally rare for a Pascal wrapper

Dedicated units FPdfPdfa/Pdfua/Pdfe/Pdfx/Pdfr/Pdfvt.pas

Accessibility read-aloud / low-vision

TPdfReadingSession orchestrates read-aloud for host TTS engines (sentence-level reading units, word-level highlighting, spoken-text mapping); plus InvertPdfBitmap, GrayscalePdfBitmap, DuotonePdfBitmap low-vision transforms and live night-duotone viewing

An accessibility layer most wrappers entirely lack

Zero-copy + cancellable progressive rendering

The render path writes PDFium output directly into the destination TBitmap DIB buffer, skipping a per-frame full-page pixel copy; RenderPageProgressive polls a cancellation token between iterations and can be interrupted mid-render

Saves one width×height×4-byte copy per frame at high DPI

On-demand streaming for multi-gigabyte PDFs

Via LoadCustomDocument's on-demand TStream adapter, PDFium reads by the block — multi-gigabyte, remote or database-backed documents load without an in-memory copy, and a usable first view is reached almost immediately

2.x GB documents: near-instant first view

Three components + 28 shared demos

TPdf (document engine), TPdfView (interactive viewer), TPdfThumbnailView (thumbnail nav); 28 COMMON demos shared across three IDEs, covering viewing, search, form fill, merge/split, batch export, printing, security audit, preflight reports and more

PDFViewer / PreflightReport / SecurityAudit / StandardsLab etc.

Security-first defaults

Link-action allow-list (LinkOptions), launch actions disabled by default, and a SecurityAudit demo for auditing risk surfaces — secure out of the box rather than defaulting to dangerous actions open

Suited to security-sensitive finance / healthcare deployments

Source included · royalty-free · long-term support

Ships Pascal source, no runtime royalties, long-term maintenance. Bundles Win32/Win64 pdfium.dll and pdfium.v8.dll (V8/XFA-enabled), with optional Skia render hooks

No per-deployment fees

The evidence

3IDE families: Delphi / C++Builder / Lazarus
6+PDF standards: A / UA / E / X / R / VT
28three-IDE shared COMMON demos
270+Pas + C++ regression test cases

Who should choose PDFiumPas

Document viewers / readers

Embedded PDF viewers needing Chrome-grade rendering quality and interaction (text selection, search highlight, links, zoom, continuous two-page)

Accessibility / assistive tech

Read-aloud orchestration and low-vision transforms for visually impaired users — a layer most PDF wrappers don't have at all

Compliance / preflight toolchains

Needing PDF/A generation and validation, PDF/UA accessibility, version gating, and CI-friendly preflight reports

Huge / remote documents

Multi-gigabyte or database-backed PDFs that must load on demand rather than be held fully in memory

Cross-IDE teams

Teams using Delphi, C++Builder and Lazarus at once — one component set, the same fixtures, the same demos

Security-sensitive deployments

Finance, healthcare and government scenarios with strict control over link / launch actions

Render a page in a few lines

No hand-written C interop — straight native Pascal components:

uses PDFium;

var Pdf: TPdf;
    Bmp: TBitmap;
begin
  Pdf := TPdf.Create(nil);
  try
    Pdf.LoadFromFile('report.pdf');
    Bmp := TBitmap.Create;
    try
      Pdf.RenderPage(0, Bmp, 150 { DPI });
      Bmp.SaveToFile('page0.png');
    finally
      Bmp.Free;
    end;
  finally
    Pdf.Free;
  end;
end;

Next steps

Start with the product overview and Quick Start, browse the full feature catalog and Examples, or read the Release Notes for the latest deliveries