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
How PDFiumPas grafts AcroForm fields between PDF documents in Delphi: GraftPdfAcroForm, widget page remapping, graft map transactions and fail closed limits
PDFiumPas picks box, bilinear, bicubic or Lanczos kernels when downsampling PDF images in Delphi, with alpha-aware math and a strict working-memory budget
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
How the PDFium Delphi component renders huge pages in horizontal bands, why a negative Y offset preserves full-page geometry, and how PNG and TIFF stream out
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
PDFium Component writes glyph-level text with a CID Type 2 font in Delphi, generating CID-to-GID and ToUnicode maps so shaped text stays extractable
PDFium Component sorts signedAttrs as a DER SET OF because X.690 11.6 requires it, and self-verification never catches what third-party validators reject
The ordered search chain the PDFium component uses to find its native library, and how one capital letter in a target macro broke the entire lookup on Linux
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
PDFium Component adds document-level undo, redo and crash recovery to PDF editing in Delphi using verified snapshots and compact bidirectional deltas
How PDFium Component loads an embedded PDF straight from a TBytes byte range in Delphi, with overflow safe bounds checks and borrowed buffer lifetime rules
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
How the PDFium component authenticates a European trusted list before parsing it, and records qualified status separately from ordinary chain trust
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
A non-ASCII PDF title becomes invalid UTF-8 inside the XMP packet on Free Pascal. Here is the string codepage rule behind it and the SetCodePage fix in PDFium
Write ISO/TS 32003 AESV4-GCM encrypted PDFs in Delphi with PDFiumPas: R7 key derivation, standalone PDF MAC integrity tokens and ValidatePdfMac status checks
Port a Delphi PDF viewer to Lazarus and Free Pascal: string encoding traps, runtime form construction, PDFium binary loading, and TTS beyond Windows
PDFium VCL posts RFC 3161 timestamp queries through libcurl on non-Windows targets, with eight bound symbols and two settings that decide whether it hangs
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
PDFium VCL binds Security framework symbols at runtime so a macOS Keychain signing backend compiles everywhere and names every symbol it could not resolve
Marked content is the BDC and EMC pair behind tagged PDF. How PDFium Component reads mark names, typed property lists and MCIDs from ordinary Delphi code
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
How PDFium Component rebuilds ISO 32000 name trees and number trees in Delphi: balanced nodes, correct /Limits, stable root identity and verified saves
Learn why FlateDecode alone leaves PDF object streams differenced instead of raw, and how PDFiumPas applies PNG and TIFF Predictor reconstruction in Delphi
PDFium Component adds an invisible OCR text layer to scanned PDFs from Delphi, mapping word quads through device-to-page transforms without touching images
PDFium VCL plugs an OpenSSL CMS verifier into PAdES validation, and three OpenSSL behaviors will silently produce a wrong verdict if you do not handle them
How PDFiumPas SaveAsRedacted splits partially covered text, rectangular paths and axis-aligned images at operator level, then prunes unreferenced resources
When pdfium.dll is older than the binding, one missing export can kill the load. How PDFium Component gates optional exports in Delphi and degrades safely
How PDFiumPas rewrites PDF outline items in Delphi after pages move or disappear: signed Count, sibling chains, ApplyPageMap and verified incremental saves
Why PDFium page object handles read old coordinates after FPDFPage_TransFormWithClip in Delphi, plus the reload order and getter sentinels that fix it
Bound every PDF parser in Delphi with one snapshot policy: PDFium Component centralizes recursion, token, object, byte, ratio and deadline limits
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
Why a PDF/A file fails on Annex C container limits or a symbolic TrueType /Encoding entry, and how PDFium Component reports both from Delphi without the DLL
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
PDFDocEncoding puts its special block at $80, not $7F, and one shifted row makes an FDF import in PDFium Component decode every symbol as its table neighbor
PDF/R keeps a scan to one strip image per page with no text and no fonts. How PDFium Component validates ISO 23504-1 in Delphi and what each rejection means
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
PDFiumPas signs PAdES through a PKCS#11 token in Delphi. CK_ULONG is 4 bytes on Windows and 8 on LP64, and the function table shifts when packing differs
How the PDFium component routes every shaping call through one installable backend, with Uniscribe on Windows and a run-time bound HarfBuzz for FPC
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
PDFium Component builds a semantic reflow model from PDF pages in Delphi and exports self-contained HTML with headings, lists and detected tables
Sign PDFs with an HSM or cloud key from Delphi using PDFiumPas PreparePadesRemoteSignature and CompletePadesRemoteSignature with persistent signing sessions
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
How PDFiumPas reads a single PDF object without loading the file: sparse xref section descriptors, lazy object streams, hybrid XRefStm and 1 MiB read windows
Extract PDF text as blocks, lines and styled spans in Delphi with PDFiumPas GetStructuredText: reading order choices, tagged enrichment and a fail-closed budget
PDFium Component lets a Delphi application supply its own font bytes for non-embedded PDF fonts, replacing host font mapping with a deterministic provider
PDFium Component detects ruled and whitespace-aligned tables in PDF pages from Delphi, resolves merged cells and spans, and exports rows as CSV or JSON
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
Why porting PDF text layout off Windows means implementing UAX #9 yourself, and the two mistakes that corrupt astral characters or skip reordering entirely
A PDF text page has no line objects. See how PDFium Component builds visual lines from FPDFText_GetCharBox geometry and shares one helper across selection paths
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
How the PDFium Delphi Component verifies PDF signatures on macOS through CMSDecoder and SecTrust: joined byte ranges, status mapping and CFRelease rules
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