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 whether the face is embedded.
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 whether the face is embedded.
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 PDF viewer in Delphi with PDFium Component: connect TPdf to TPdfView, load and render a document, then add paging, zoom, and fit navigation
Merge a folder of scanned images into one PDF with PDFium Component in Delphi: create the document, add one page per image, scale each image, and save
Render PDF pages as JPEG images in Delphi with PDFium Component: convert DPI to pixel dimensions, draw each page to a bitmap, and encode it with TJPEGImage
Create a PDF from scratch in Delphi with PDFium Component using CreateDocument, AddPage, AddText, and CreatePath while handling coordinates and embedded fonts
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 PDF images in Delphi with PDFium Component: read BitmapCount, fetch each Bitmap[], handle silent open failures, and save JPEG or BMP output
Extract PDF text in Delphi with PDFium Component using raw Character[] glyph access, structured ReadablePageContent, and a guard for silent Active failures
Harden a PDFium Component binding in Pascal by fixing cdecl callbacks, FPC Win64 pointer truncation, ownership errors, and other ABI and memory-safety defects
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 behavior.
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 and the handle they return.
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 recolor or delete annotations without ghosts.
Move long PDF renders off the UI thread with cancellable futures in Delphi, while managing worker lifetime, cancellation, completion, and safe UI updates
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 grayscale, and overlay colors 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
Produce veraPDF-valid PDF/A archives in Delphi with PDFium Component: SaveAsPdfA, XMP and ICC OutputIntent injection, a/b/u conformance, and the pitfalls.
Build a PDF/A preflight checker in Delphi with PDFium Component: token-scan 29 validation issues, part-aware gating, object streams, no full content parse.
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.
Produce and validate PDF/VT-1 variable-data print files in Delphi with PDFium VCL: DPart trees, the mandatory PDF/X-4 pairing, and 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 rasterization 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 with RenderPage and rePrinting, send bitmaps through StretchDIBits, fit pages, and handle rotation
Draw a watermark or logo once, place it on every page. See how PDFium's Form XObjects make reusable page stamps in Delphi, and the handle 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
Split a PDF by page, range, or bookmark with PDFium Component in Delphi using TPdf.ImportPages, CreateDocument, checked SaveAs results, and Active resets
Stream multi-gigabyte PDFs on demand in Delphi with a TStream adapter for PDFium's FPDF_FILEACCESS callback, while enforcing its 4 GiB file-size limit
Build a side-by-side PDF viewer in Delphi with PDFium Component using independent panels, per-view TPdfView.Zoom, and synchronized page navigation
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
Manage PDF attachments in Delphi with PDFium Component using AttachmentCount, Attachment, CreateAttachment, DeleteAttachment, safe paths, and in-place saves