Reading PDF Font Properties with PDFium Component in Delphi
Inspect the fonts inside a PDF from Delphi with PDFium Component: read a glyph's family name, base name, weight, italic angle, and embedding state
Software Development Blog
PDFium Component tutorials for rendering, viewing, and processing PDFs in Delphi
Inspect the fonts inside a PDF from Delphi with PDFium Component: read a glyph's family name, base name, weight, italic angle, and embedding state
Before you trust a PDF, enumerate its risk surface. See how PDFium reads document JavaScript, launch actions and signature permissions for an audit in Delphi
Assemble a working PDF viewer in Delphi with PDFium Component: wire TPdf to TPdfView, load and render a document, then add paging, zoom, and fit-mode
A working Delphi recipe for merging a folder of scanned pages into one PDF with PDFium Component: create the document, add a page per image, scale to fit, and
Rasterise PDF pages to JPEG in Delphi with PDFium Component: convert DPI to pixel size, render each page to a bitmap, then encode with TJPEGImage at chosen
Build a PDF from nothing in Delphi with PDFium Component: CreateDocument, AddPage, AddText, and CreatePath, plus the coordinate and font embedding rules that
Create highlight and underline annotations with PDFium in Delphi: QuadPoints order, why FPDFAnnot_SetAttachmentPoints returns false, and the Append fix
Diagnose pdfium.dll load failures in Delphi: fix the 32/64-bit ERROR_BAD_EXE_FORMAT 193, spot a stale DLL, and load the PDFium Component safely across threads
Detect XFA forms in Delphi and extract the template, datasets and config packets as raw XML with PDFium Component — static packet reading needs no V8 runtime
Export and import XFDF form data and annotations in Delphi with PDFium Component: ISO 19444-1 round-trip, 18 annotation subtypes, and locale-safe numbers
Extract embedded images from PDF in Delphi with PDFium Component: read BitmapCount, fetch each Bitmap[], handle silent open failure, and save output as JPEG or
Extract PDF text in Delphi with PDFium Component: raw glyph access via Character[], paragraph structure via ReadablePageContent, plus the Active silent-failure
Wrapping a C library in Pascal hides sharp edges. See real defects in a PDFium binding, from cdecl callbacks to FPC Win64 pointer-width truncation, and their
Read PDF signatures with the PDFium Component in Delphi and Lazarus: inspect SubFilter, ByteRange and CMS, then detect PAdES B-B to B-LTA baseline levels
Add long-term PAdES signatures in Delphi with the PDFium Component: RFC 3161 timestamps, DSS validation stores and DocTimeStamps for B-T, B-LT and B-LTA
Merge PDF files in Delphi with PDFium Component: ImportPages, page range strings, insertion position, silent failure on bad files, and form field behaviour
Lay several PDF pages onto one sheet, reorder pages in place, or pull a subset. See PDFium's imposition and page-move APIs in Delphi, plus their handles
Why substring key lookups corrupt PDF dictionary parsing in Delphi: whole name token matching per ISO 32000-1 and resource caps against hostile PDFs
Make a Delphi PDF viewer work with screen readers: tagged reading order extraction, word-level TTS highlighting, and honest fallbacks for untagged PDFs
Build a PDF annotation review panel in Delphi: index markup by page, survive appearance-stream vetoes, and recolour or delete annotations without ghosts
Long PDF renders belong off the UI thread. See how a PDFium binding runs work on background threads with cancellable futures in Delphi. Rendering a page in
A slow page render should not freeze the UI or run to the end. See how PDFium's progressive rendering becomes cancellable via IFSDK_PAUSE in Delphi
Checkboxes flatten unchecked in PDFium Component when /V is read from the widget annotation, because /V belongs to the parent field dictionary per ISO 32000-1
Four hidden gaps between Delphi and FPC/Lazarus hit the same PDFium code: record temporary lifetime, range checks, E2010 TBytes casts, and AnsiString byte loss
FPDFText_GetUnicode returns a full 32-bit code point, but WideChar holds 16 bits, so PDFium Component in Delphi can corrupt emoji and rare CJK ideographs
The PDFium Component in Delphi refuses to patch an encrypted PDF with plaintext markers or PAdES signatures, per ISO 32000-1 7.5.6 on incremental updates
PDFiumPas resolves the active xref revision chain and Adobe Extension Level to save Delphi PDFs at an exact version from 1.3 to 1.7 without breaking conformance
How WaitForIdle and padSynchronize replies deadlock the Delphi main thread in PDFium Component, plus queue capacity, shutdown order and TPdf ownership limits
FillChar on a Delphi or FPC function result zeroes a managed record without releasing its strings, leaking memory each time the routine runs in a loop
Why filled PDF forms look blank in Acrobat and how to fix it: FormFill setup, keyboard field traversal, and GenerateFormAppearances in Delphi viewers
A three-layer print loop in a Delphi and FPC PDF viewer keeps rendering after Cancel is clicked because Free Pascal locks the for loop bound at entry
Port a Delphi PDF viewer to Lazarus and Free Pascal: string encoding traps, runtime form construction, PDFium binary loading, and TTS beyond Windows
Add dark mode and low-vision reading modes to a Delphi PDF viewer: post-render inversion, two kinds of greyscale, and overlay colours that stay visible
How the PDF row-vector convention makes Multiply append and PreMultiply prepend in Delphi, why PreTranslate needs the linear part, and how pivot helpers compose
Learn why FlateDecode alone leaves PDF object streams differenced instead of raw, and how PDFiumPas applies PNG and TIFF Predictor reconstruction in Delphi
Triage incoming PDFs in Delphi with PDFium Component: check Info dictionary and XMP metadata, spot encryption, JavaScript, and XFA, and route risky files early
Build verifiable PDF/A archives in Delphi with PDFium Component, from SaveAsPdfA and XMP insertion to ICC OutputIntent handling, conformance downgrades, and
Build a PDF/A preflight checker in Delphi with PDFium Component. It token-scans 29 validation issues, honours part-aware rules, and skips full content parsing
Walk the live PDF tag tree with PDFium VCL to catch PDF/UA content errors a byte-level scan misses: Figure Alt, Formula text, and unique Note IDs
Create and validate PDF/VT-1 variable-data print files in Delphi with the PDFium VCL, from DPart trees and PDF/X-4 pairing to ISO 16612-2 pitfalls
Automate PDF/A and PDF/UA preflight in Delphi with PDFium Component: batch loops, exit codes, JSON and HTML reports, and why empty findings are not a pass
Keep zoom and scrolling smooth in Delphi PDF viewers with PDFium: correct cache keys, bitmap ownership, progressive rendering, and high-DPI memory budgets
PDFiumPas render lock protects rasterisation from concurrent UnloadPage or ReloadPage, but six TPdf and TPdfView calls skipped it until v2.26.0
Harden a Delphi PDF preview pane with PDFium Component: disable JavaScript at load, intercept link clicks, filter attachments, and read encryption permissions
Laying out PDF text needs string widths before you draw. See how a PDFium binding measures text without touching the page, for word wrap in Delphi
PDFium keeps a cached FPDF_TEXTPAGE handle in Delphi; after AddText, SetText, or AddPath edits it turns stale unless reloaded before the next text query
Fix double-rotated PDF thumbnails in Delphi with PDFium: why the render rotate parameter is additive and how fit-zoom swaps width and height for 90/270 pages
How PDFium Component separates form field index from annotation index in Delphi: filter Widget subtypes, map at the native edge, fix headless form focus
Sync text-to-speech with on-page word highlights in Delphi using PDFium word boxes: TrackReadingWordAt, render ordering, auto-scroll, and Unicode pitfalls
PDFium Component writes XFA field edits into an in-memory buffer only, so Delphi apps lose the value on save: AcroForm persists it, XFA does not
Print PDFs from Delphi with PDFium Component: render pages with RenderPage and rePrinting, send bitmaps to TPrinter via StretchDIBits, fit to paper, handle
Draw a watermark or logo once, place it on every page. See how PDFium's Form XObjects make reusable page stamps in Delphi, with a simple lifetime rule
Run AcroForm JavaScript in Delphi with PDFium Component: why field calculations stay silent, V8 DLL requirements, and host events that veto risky PDF actions
Add a PAdES B-B digital signature to a PDF in Delphi with the PDFium Component: self-built SHA-256, CMS, and a Windows CNG backend for byte-level signing
How to split a PDF by page, range, or bookmark with PDFium Component in Delphi: TPdf.ImportPages, CreateDocument, SaveAs result checking, and the Active flag
A multi-gigabyte PDF need not load whole. See how a TStream adapter feeds PDFium's on-demand FPDF_FILEACCESS callback and why a 4 GiB limit needs a guard in
Build a side-by-side PDF viewer in Delphi with PDFium Component: two or three independent panels, per-view zoom via TPdfView.Zoom, and synchronized page
Modern PDFs hide structure in compressed object and xref streams. See how a Delphi validator expands ObjStm and reads xref-stream trailers with PDFium
Validate print-ready PDF/X files in Delphi: PDFium Component's ValidatePdfX runs ISO 15930 checks for TrimBox, Trapped, OPI, LZW, and font embedding
Why PDF validators reject PAdES signatures: zero ByteRange fields, missing D: date prefix, and lost /Encrypt after incremental updates, with PDFium Component
How PDFium Component handles PDF file attachments in Delphi: AttachmentCount, Attachment, CreateAttachment, DeleteAttachment, path sanitisation, and in-place