Delphi HotPDF Hello World: Your First PDF Program
A first HotPDF program in Delphi takes four steps: properties, BeginDoc, SetFont with TextOut, then EndDoc. This Hello World also explains the top-left origin
Software Development Blog
HotPDF Delphi Component tutorials, tips, and Delphi code examples for generating and editing PDFs
A first HotPDF program in Delphi takes four steps: properties, BeginDoc, SetFont with TextOut, then EndDoc. This Hello World also explains the top-left origin
One THotPDF instance can write many PDFs in Delphi: how the BeginDoc and EndDoc cycle resets state, when to load a file instead, and how to avoid file locks
Create AcroForm text fields, checkboxes, radio groups, and submit or JavaScript actions in Delphi with HotPDF, and avoid export-value mismatches in form intake
A Delphi Single cannot hold every 32-bit integer, so the AcroForm /Ff mask $8000FFFF rounds to $80010000. How HotPDF reads field flags from exact integer tokens
Attach Acrobat AF format, validate and calculate scripts to a loaded AcroForm in Delphi with HotPDF, so PDF form fields auto-sum totals and format dates
How HotPDF resolves inherited /FT, /Ff, /V and /DV on loaded AcroForm fields in Delphi, keeps named child fields addressable and resets them to typed defaults
Add Text, CheckBox, ComboBox, ListBox, PushButton and Signature fields to an existing PDF in Delphi with HotPDF, and why /NeedAppearances is mandatory
Set up AES-256 PDF encryption in Delphi with HotPDF: user and owner passwords, permission flags, R5 vs R6 revisions, and the property order that silently fails
Keep Delphi PDF viewers responsive with HotPDF background rendering: queue page renders off the UI thread, cancel pending pages, and cache bitmaps
Draw linear barcodes into a PDF from Delphi with HotPDF: the symbologies it supports, how module width and quiet zone decide whether a scanner can read it
HotPDF adds bookmarks and named destinations to existing PDFs in Delphi via AddLoadedOutline, where outline /Count means visible descendants, not all entries
How the HotPDF built-in template-matching OCR works in Delphi: DIB row order, Otsu binarization, 16x24 glyph templates and case from height clustering
HotPDF draws vector paths in Delphi from a top-left origin like TCanvas: MoveTo and LineTo paths, stroke and fill, RGB colors and line widths, in points
How HotPDF decodes CCITTFaxDecode images in Delphi: T.4 and T.6 uncompressed mode, the 2D EOFB trap, and DamagedRowsBeforeError recovery for damaged fax rows
HotPDF signs PDFs with Windows certificate store keys. CNG and legacy CryptoAPI return RSA signatures in opposite byte orders; C++Builder also needs crypt32.lib
Encrypt a PDF for named certificate holders in Delphi with HotPDF: RSA-OAEP and ECDH recipients, X25519 and X448, recipient order and private-key loading
HotPDF converts CFF2 variable fonts into CID-keyed CFF1 programs so Delphi apps can embed them in PDF with exact glyph IDs, widths and ToUnicode mappings
HotPDF draws bar, line, area and pie charts with DrawChart in Delphi; for custom layouts, the same coordinate math works with Rectangle, LineTo and Pie
How HotPDF CloseIndirectObjects frees a shared, cyclic PDF object graph in Delphi exactly once: collect owning edges, detach them, then free every node once
Decode untrusted DCTDecode, JPXDecode and JBIG2Decode images in crash-isolated worker processes with HotPDF, using CodecIsolationMode, timeouts and memory caps
How HotPDF for Delphi draws COLR v0, COLR v1, SVG, CBDT and sbix color emoji glyphs into PDF with palettes, blend modes, bitmap strikes and a raster fallback
HotPDF paints COLRv1 repeat and reflect gradients as vector PDF shadings in Delphi with whole-cycle geometry, per-cycle functions and linear-light color
What HotPDF shapes in Delphi PDFs: bidi reordering, Arabic joining, script coverage from Hebrew to Thai and Devanagari, and how to verify the shaped output
Go past Hello World with HotPDF TextOut in Delphi: set font size and style, rotate by angle, place coordinates exactly, and tune character and word spacing
Lay out CJK vertical text in PDF from Delphi with HotPDF: use IsVertical in SetFont, stack glyphs downward, fix U+30FC, and arrange columns right to left
HotPDF CompressDocument shrinks Delphi PDFs with maximum Flate, object streams and compact font subsets via CIDToGIDMap. A sample went from about 10 MB to 20 KB
HotPDF visits every operator in a PDF content stream from Delphi and lets you keep, delete or replace each one, with byte-identical output when nothing changes
How the HotPDF Delphi PDF component implements ISO 32000 crypt filters: StmF, StrF and EFF policies, per-stream Crypt overrides and object stream keying
HotPDF signs PDFs from Delphi with keys held by a Cloud Signature Consortium service; the app owns HTTP transport and OAuth, and signHash timeouts retry safely
How HotPDF splits a Delphi PDF viewer into a headless THPDFViewerModel and a TScrollBox-based view, keeping zoom, search, and navigation logic unit-testable
Why CMYK and YCCK JPEGs in a PDF render inverted or washed out, and how HotPDF for Delphi honors DCTDecode ColorTransform and stage-aligned DecodeParms
HotPDF DeletePage prunes named destinations, bookmark actions, structure tree, ParentTree, OBJR and link annotations when deleting a loaded PDF page in Delphi
HotPDF writes diagnostic PDFs you can edit in a text editor and repairs them afterward in Delphi, rebuilding lengths, xref and trailer without reserializing
Sign PDFs in Delphi with HotPDF: PFX one-call signing, ByteRange reservation for external signers, PAdES baseline fields, and document timestamps
Process huge PDFs in Delphi without loading them into memory: HotPDF Direct File API handles, encrypted copy, page counts, and incremental updates
How the HotPDF RenderCacheFolder disk page cache identifies a PDF source, when entries are invalidated, and why encrypted files and junctions are skipped
Classify every incremental PDF revision after signing with HotPDF AnalyzeLoadedSignatureRevisions and grade the result against DocMDP and FieldMDP in Delphi
HotPDF TXFAWidgetRuntime keeps dynamic XFA forms live in Delphi: a failed edit restores a snapshot, calculate and reflow passes are bounded, the host paints
Convert CMS DER ECDSA signatures to IEEE P1363 for BCryptVerifySignature in Delphi: strict r and s decoding, curve provider names, and CMS signer matching
Edit Title, Author, XMP, PageMode and bookmarks on an already-loaded PDF with HotPDF in Delphi, then save in place without rebuilding the xref or object graph
The HotPDF EMF and WMF interpreter maps GDI gradient fills to PDF axial shading and hatch brushes to tiling patterns, keeping Delphi vector output real
HotPDF runs the official Factur-X Schematron rules on MSXML in Delphi, translating XPath 2.0 tests so every EN 16931 check runs or the rule file is refused
Font subsetting that runs after serialization yields full fonts and no error. See why EndDoc finalization order matters and how to verify the subset output
Decode images out of a loaded PDF in Delphi with HotPDF ExtractLoadedImage: Flate, LZW, JPEG, JPEG 2000, Indexed, CMYK, CCITT and JBIG2 filters to a TBitmap
Copied PDF text turns to gibberish when a font lacks a Unicode map. HotPDF ExtractLoadedPageText returns Unicode text from loaded PDFs, with decode fallbacks
HotPDF removes duplicate characters left by fake bold and overprinted logos when extracting PDF text in Delphi, and handles unsorted CID width arrays too
HotPDF Component applies FDF Differences in Delphi as one bounded append, bound to the base PDF length and SHA-256 and admitted by DocMDP and FieldMDP checks
HotPDF FlattenLoadedPageRotation bakes clockwise /Rotate into Delphi PDF pages, rewrites MediaBox, CropBox and TrimBox, and keeps annotations and links aligned
Shaped Arabic and Indic glyphs render as .notdef when subset closure ignores GSUB output. How HotPDF unions shaping glyph IDs into the Delphi font subset
What changes when HotPDF compiles under Free Pascal and Lazarus: Pascal deflate and AES backends, a checked native codec DLL and the porting traps behind them
HotPDF builds on Free Pascal 3.2.2 and Lazarus 4.6 for Win64: the Delphi mode gate, why native codec objects will not link, and the serial render fallback
Free Pascal on Win32 decorates cdecl imports with a leading underscore but exports public names verbatim, and HotPDF bridges both without breaking Delphi
PDF Function Type 0 is a multi-dimensional interpolation table. See how HotPDF wraps it for 3D color LUTs and spot-color tint transforms in Delphi
How HotPDF evaluates PDF Type 2 exponential, Type 3 stitching, and Type 4 PostScript calculator functions in Delphi, including the roll and rounding pitfalls
How HotPDF lays out CSS multi-column HTML on PDF pages from Delphi: column count rules, balanced columns, column-fill, column-span and column rules
HotPDF renders HTML tables with occupancy grids for rowspan, measured row heights and repeated headers across page breaks, with two documented refusals
HotPDF converts HTML5 to PDF in Delphi with a real CSS cascade, tables and page breaks, refusing network fetches and metering parser and layout budgets
Word and Excel export hybrid-reference PDFs that load fine yet fail on resave. See how HotPDF reads the /XRefStm table and resolves them safely in Delphi
HotPDF Delphi hyperlinks: PrintHyperlink URI links, AddURILink hotspots, AddGoToLink internal page navigation, multi-line link labels, and PDF/UA notes
Bicubic and Lanczos3 downsampling in HotPDF reads more pixels as the ratio grows; pick a kernel per batch and add Floyd-Steinberg dithering for 1-bit output
How HotPDF normalizes Indexed PDF palettes from Gray, CMYK, Lab and ICCBased bases in Delphi, and guards against indirect reference cycles with a depth cap
A grayscale image can appear inverted when its PDF Decode array is overlooked. Inspect inline image samples and color spaces with HotPDF in Delphi
Why a decimal comma locale breaks PDF content streams in Delphi, and how HotPDF pins invariant number formatting across Type 1 fonts, SVG and FPC builds
JBIG2 gives scanned black-and-white pages the smallest PDF size. See how HotPDF writes JBIG2Decode streams and plugs in encoder backends in Delphi
HotPDF merges JBIG2 symbol dictionaries across pages into one /JBIG2Globals stream in Delphi PDFs, cutting repeat glyph storage on multi-page scans
JPEG 2000 brings high bit-depth and wavelet compression to PDF images. See how HotPDF decodes JPXDecode streams and embeds JP2 and J2K pictures in Delphi
HotPDF builds paginated PDF documents from a declarative layout tree in Delphi and emits the PDF/UA structure tree automatically across page breaks
HotPDF loads PDF object stream members lazily in Delphi: why a full rewrite must expand them first, how decrypt quarantine blocks bad saves, how numbers hold
How HotPDF writes linearized PDF output for Fast Web View in Delphi: page partitioning, hint tables, layout convergence and the 4 GiB offset limit
Upgrade a freshly signed PDF from B-B to B-LT with one HotPDF call, complete the chain over AIA caIssuers, and enforce the seed values a field declares
How HotPDF decodes PDF DecodeParms in Delphi: PNG predictor row tags 10 to 15, TIFF Predictor 2 sample differencing, and LZW EarlyChange code widths
How HotPDF verifies ML-DSA, Ed25519 and Ed448 CMS signatures in Delphi and signs through callback, remote or PKCS#11 providers that hold the private key
How HotPDF keeps multi-select list box values as arrays through FDF and XFDF export and import in Delphi, checking each value against /Opt and rebuilding /I
HotPDF runs RapidOCR ONNX models inside a native DLL to build searchable PDF in Delphi without Python, with C ABI rules, model ownership and cooperative cancel
Write ISO 32000-2 NChannel color spaces in Delphi with HotPDF: DeviceN five-element form, per-spot Separation tints, and PDF/X-6n colorant table checks
Why per-filter limits miss nested PDF decode bombs, and how the HotPDF DecodeBudgetBytes ceiling bounds every stage of one filter chain in Delphi
How HotPDF implements P-256, P-384, P-521, X25519 and X448 in pure Pascal, and why one borrow comparison in Montgomery reduction is the trap to test first
HotPDF adds a highlight review layer in Delphi that keeps marker rectangles in memory, never rewrites the PDF, and stays aligned through zoom and rotation
Attribute loaded PDF memory to the objects that retain it using HotPDF dependency graphs, dominator retained bytes, parser arena and string intern counters
Cut Delphi PDF size with object streams and xref streams, then append changes as incremental updates with HotPDF while keeping earlier revisions intact
Why OCR text layers, barcode bounds and face redaction boxes drift on cropped PDF pages, and how HotPDF and your Delphi code map pixels through the CropBox
Stylistic sets and alternates live in a font's GSUB table. See how HotPDF resolves salt and ss01 to ss20 substitutions without HarfBuzz, in pure Delphi
HotPDF renders loaded PDF pages to bitmaps, printer HDCs or metafiles through one device API, and its bitmap proof simulates CMYK and spot ink overprint
HotPDF converts any loaded PDF page into standalone SVG from Delphi, preserving text matrices, page rotation, image flips, dash patterns and hairline strokes
How HotPDF rebuilds word spaces and line breaks when extracting PDF page text in Delphi, drops text outside the crop box and reads Form XObject text
HotPDF renders PDF pages across worker threads in Delphi with ordered delivery, output backpressure and a memory budget that caps peak bitmap footprint
A parser branch that consumes no bytes turns a 40-byte malformed PDF into an endless loop. How HotPDF guards its tokenizers in Delphi and how to verify yours
How HotPDF validates an ISO/TS 32004 PDF MAC revision chain in Delphi: per-revision prefix streams, signature ordering and authenticated permission bits
PDF/A-4 drops the conformance letter and PDF/UA-2 custom roles need a RoleMapNS target. HotPDF writes both from Delphi and checks the tree at EndDoc
Generate PDF/A, PDF/X, and PDF/UA compliant files from Delphi with HotPDF: output intents, tagged structure, ICC profiles, and veraPDF verification steps
How HotPDF validates PDF/X-1a content color at EndDoc in Delphi, rejecting DeviceRGB, CalRGB and ICC RGB, and how to draw CMYK and spot colors that pass
HotPDF reuses TrueType and OpenType subsets from a persistent disk cache across runs, with content-addressed keys, LRU eviction and readable statistics
A certificate parser is attack surface. See two PKCS#12 and ASN.1 traps, an integer wraparound and a PBKDF2 denial of service, and how HotPDF guards them
Build an automated PDF preflight gate in Delphi: generate standards-clean files with HotPDF, then verify them with veraPDF and Acrobat before release
A page rendered at a fixed DPI shrinks on a 600 DPI printer. HotPDF PrintLoadedDocument fits pages to TPrinter, renders into any HDC and copies EMF pages
Remote PDFs crawl over HTTP because the parser issues hundreds of tiny reads. HotPDF caches them as blocks and reads ahead only while access stays sequential
Chinese, Cyrillic or Arabic OCR in Delphi turns to nonsense when model and dictionary drift apart. HotPDF RapidOCR presets pin each pair and verify CTC order
Cover regions and build N-up layouts on loaded PDFs in Delphi with HotPDF content-stream operators, plus the redaction security boundary you must respect
How a reversed Reed-Solomon generator polynomial breaks QR, Data Matrix, PDF417 and Aztec check words in Delphi, and how to test encoders against ISO vectors
HotPDF renders PDF axial and radial shadings via the sh operator in Delphi, discretizing each gradient into color bands evaluated by its function engine
How HotPDF renders embedded PDF fonts in Delphi without installing them: TrueType glyf outlines, CFF Type 2 charstrings, Type 3 glyphs, and encoding maps
How HotPDF renders non-embedded PDF fonts in Delphi: font name decoding, installed family lookup, standard 14 widths, descriptor flags and code page traps
Subset fonts turn PDF thumbnails into empty boxes under system-font substitution. HotPDF renders pages to Delphi TBitmap with embedded glyphs and a page cache
Spot inks that render black, gray or white usually trace back to cs and scn handling. How HotPDF resolves Separation and DeviceN tint transforms in Delphi
Four silent traps that make a Delphi PDF renderer draw nothing: slash-prefixed name operands, array references, reversed cm order and off-by-one operand indexes
Practical HotPDF guide to Delphi PDF reports: TextOut coordinates, Unicode font embedding, JPEG and PNG image placement, and drawing primitives that scale
Byte-identical HotPDF saves in Delphi: ReproducibleOutput pins the creation date, trailer ID, AES-CBC key material and dictionary order, and where it stops
HotPDF Resolution makes coordinates, SetFont sizes and TextWidth use 1/Resolution inch, yet Page Width stays in points. Use UserWidth and avoid two traps
Mirrored or sideways QR labels in scanned PDF pages decode in HotPDF for Delphi, which tries all eight D4 orientations of the sampled module grid
PDF pages store glyph codes, not text. How Delphi code finds and rewrites strings in an existing PDF with HotPDF, and where an embedded font subset limits it
A checkbox that keeps its old tick, a combo that shows nothing: why filled AcroForm fields disagree and how HotPDF SetFormFieldValue syncs /AS, /I and /AP
Arabic or Hebrew comb fields break when cells follow UTF-16 units or logical order. HotPDF for Delphi counts Unicode scalars and runs bidi before filling cells
A signed PDF can hide forged objects in the unsigned ByteRange gap. HotPDF for Delphi checks every gap byte and appends a second signature as a clean revision
Three costs slow a signed AES-256 R6 PDF load in Delphi: unbuffered parsing, a duplicated password KDF and a slow R6 AES loop, and how HotPDF avoids each
HotPDF compares two PDF files in Delphi by walking the object graph from the catalog and by diffing rendered pages, with budgets bounding both passes
How HotPDF reads tagged PDF text in authoring order by walking the structure tree and reassembling glyphs by MCID, with a safe fallback for untagged pages
HotPDF imports SVG artwork into PDF as a reusable Form XObject in Delphi, keeping vector gradients, clipping and links while refusing scripts and external refs
HotPDF bakes PDF annotations that have no /AP stream in Delphi, synthesizing widget and markup appearances so NeedAppearances form values survive flattening
Draw dataset rows as a real PDF table in Delphi: compute column widths, align cell text, draw grid lines, and repeat the header when the table spans pages
HotPDF calls the Tesseract C API in-process from Delphi to build searchable PDF, with an opaque monitor, a one-byte C bool callback and cooperative timeouts
Tesseract writes word boxes as TSV, and HotPDF turns them into a searchable PDF in Delphi: strict row parsing, a two-handle child process, all pages or none
Justified PDF text needs script-aware spacing and fast width measurement. See how HotPDF justifies Latin and CJK lines and cuts GDI round-trips in Delphi
How the HotPDF renderer computes glyph advance in text space per ISO 32000-1 9.4.4 and restores GDI clip regions on Q lazily without losing parallel speed
How HotPDF renders PDF tiling patterns in Delphi: pattern state across q and Q, clipped fill and stroke paths, visible tile ranges, and hard tile budgets
How HotPDF renders PDF transparency groups painted with Multiply and other blend modes, recovers group alpha, and decides how luminosity soft masks read color
Why accents vanish when PDF fonts render in Delphi: TrueType composite glyph matrix order, CFF seac form of endchar, and composite glyph subsetting in HotPDF
How HotPDF ExtractLoadedTypedTables rebuilds tables from a loaded PDF in Delphi: column tolerance merging, conservative cross-page continuation, typed values
HotPDF can record every code point that would render as tofu while the page is being drawn, then route the gap through per-script font fallback chains
A variable font can look right in a PDF but carry misleading weight or width metadata. Follow the axis mapping and static font workflow with HotPDF in Delphi
HotPDF turns OpenType variable fonts into static PDF-embeddable instances in Delphi, baking axis values into outlines, metrics and rebuilt sfnt tables
A signed PDF can still verify after edits or a self-made re-sign. HotPDF for Delphi checks ByteRange bytes, RSA, ECDSA and EdDSA signatures, and trust chains
Lossless WebP into a PDF from Delphi: HotPDF decodes VP8L in pure Object Pascal so AddImage takes .webp with no DLL, plus the RFC 9649 bit-order traps behind it
Five Win64-only Delphi traps in numeric and loop code: Power binding to Single, a stale TList.Count loop, Int64 bounds, FPC float digits and NativeInt asserts
Convert dynamic XFA forms to native AcroForm in Delphi with HotPDF FlattenLoadedXFA, review flatten warnings, and handle archival and PDF/A limits
An XFA binding filter can choose among repeated data records. Trace candidate order, form values, and saved XML with HotPDF in a Delphi application
XFA forms store rich text as an HTML subset. See how HotPDF flattens exData runs and turns their a-href links into native PDF Link annotations in Delphi
A blank-looking XFA value can contain meaningful spaces or line breaks. Preserve and inspect form text through a PDF round trip with HotPDF in Delphi
XFDF keeps colors as #RRGGBB and skips elements without a rect: how HotPDF exports and imports PDF annotations as ISO 19444-1 XFDF in Delphi and C++Builder
XPS pages use 96-DPI top-left units and PDF uses 72-DPI bottom-left; HotPDF bridges them in Delphi with one page matrix, Form XObjects and tiling patterns
ZUGFeRD 2.5 invoices still declare Factur-X version 1.0 in XMP. HotPDF embeds factur-x.xml in PDF/A-3 from Delphi, detects hybrid PDFs and runs EN 16931 rules
Add PDF annotations in Delphi with HotPDF: text notes, free text, squares, and stamps. How a rect places each one and how they differ from AcroForm fields
HotPDF RtLTextOut reference for Delphi: signature, parameters, charset 178/177 setup, RegisterUnicodeTTF, a working example, and common RTL errors fixed