Software Development Blog

English (UK) Articles

Browse PDF, Delphi, and document software engineering notes from losLab

Software Development Blog

Delphi HotPDF Component Hello World Sample

Delphi HotPDF Component Hello World Sample. Hello World from Delphi HotPDF Component Welcome to the comprehensive guide for the Delphi HotPDF Component

Software Development Blog

Fix the HotPDF component reuse issue

Discover how to solve the “Please load the document before using BeginDoc” error while usingHotPDF Delphi Componentand eliminate PDF file access conflicts through strategic state management and…

Software Development Blog

Comprehensive Guide to PDF Barcode Generation

In today’s digital world, barcodes serve as the backbone of inventory management, retail operations, and data tracking systems. The ability to generate professional PDF documents containing various…

Software Development Blog

HotPDF Canvas Draw

This HotPDF Component sample demonstrates how to create vector-style PDF drawings with the same TCanvas workflow Delphi developers already use in VCL applications. Instead of treating PDF output as a…

Software Development Blog

HotPDF Chart Sample

This HotPDF Component example exports a Delphi TeeChart chart into a PDF document. The sample demonstrates a practical bridge between interactive VCL charting and distributable PDF reports: users can…

Software Development Blog

Arabic and RTL Text Shaping in Delphi PDFs with HotPDF

Take the Arabic phraseيوضح ملف PDF, pass it toTextOut, and open the output: the letters run in the wrong direction and every one of them sits in its isolated form, disconnected from its neighbors. An…

Software Development Blog

HotPDF Component Delphi TextOut Sample Project

This comprehensiveHotPDF componentTextOut sample demonstrates advanced font handling, character set support, text scaling, spacing adjustments, and rendering modes. The sample generates detailed font…

Software Development Blog

PDF Digital Signatures and PAdES in Delphi with HotPDF

Before a viewer shows the green tick on a signed PDF, it does three mechanical things: it reads the/ByteRangearray from the signature dictionary, hashes exactly the two byte spans that array…

Software Development Blog

Processing Large PDFs in Delphi: HotPDF Direct File API

The job was unremarkable: a nightly Delphi service that takes scanned mortgage archives, counts pages, and routes each file to the right processing queue. It ran silently for months — until a 1.4 GB…

Software Development Blog

The EndDoc Bug That Silently Disabled Font Subsetting

Generate a report, embed a TrueType font, and the output opens correctly in every viewer you try. The glyphs are right, the text is selectable, the file is valid. The only thing wrong is the size. A…

Software Development Blog

3D Colour LUTs in PDF With Type 0 Sampled Functions

PDF Functions are one of the quieter corners of the spec. Most developers meet them once, as the thing a Type 2 axial shading needs in order to fade between two colours, and never look again. That is…

Software Development Blog

Add clickable hyperlinks to PDF files with HotPDF

This HotPDF sample shows how to place clickable hyperlinks in a generated PDF document. Hyperlinks are a small feature, but they matter in invoices, reports, product sheets, documentation exports,…

Software Development Blog

OpenType GSUB Stylistic Alternates in Pure Delphi

A designer picks a font with a single-storeyafor headings, or a slashed zero for tables, or a set of swash capitals for a cover. Those glyphs are in the font already. They are simply not the default.…

Software Development Blog

PDF/A, PDF/X, and PDF/UA Output in Delphi: HotPDF Guide

A government archive once bounced an entire deposit of 1,400 invoices generated by a customer's Delphi billing system. Every file opened perfectly in every viewer the customer tried; veraPDF rejected…

Software Development Blog

Hardening a Delphi PDF Signer Against Malicious PKCS#12

When you sign a PDF, you usually think of the signing key as something you control. It lives in a.pfxfile you generated, protected by a password you chose. The code that reads that file feels like…

Software Development Blog

Automating PDF Preflight Checks in Delphi with HotPDF

The monthly statement run looked correct on every developer's screen, so it shipped. The print bureau returned the whole batch two days later: RGB images in a CMYK job and no/Trappeddeclaration. The…

Software Development Blog

Delphi PDF Reports with HotPDF: TextOut, Fonts, Images

The first invoice almost every team renders with a PDF library comes out wrong in the same way: the header text sits along the bottom edge of the page, and each subsequent line climbs upward. Nothing…

Software Development Blog

HotPDF Table To PDF

This HotPDF Component sample converts database records into a paginated PDF table. It is a compact report-generation pattern: read rows from a dataset, draw the table header, print each row at a…

Software Development Blog

XFA to AcroForm Flattening in Delphi Using HotPDF

"Please wait... If this message is not eventually replaced by the proper contents of the document, your PDF viewer may not be able to display this type of document." If your document pipeline has…

Software Development Blog

Mastering PDF Annotations with HotPDF Delphi Component

PDF annotations are one of the most powerful features for creating interactive and collaborative documents. They allow users to add comments, highlights, stamps, and multimedia content directly to…

Software Development Blog

RtLTextOut Function in HotPDF Component

Right-to-Left (RTL) languages represent a significant portion of the world’s written communication systems, serving over 400 million people globally. These languages include Arabic, Hebrew, Persian…

Software Development Blog

Auditing PDF Security Risks With PDFium in Delphi

A PDF is not just paper. It is a container that can carry scripts that run when the file opens, links that start external programs, links that reach out to web servers, files nested inside files, and…

Software Development Blog

N-up Imposition and Page Reordering With PDFium

Merge and split are the two page operations everyone reaches for first, and they cover a lot of ground. They do not cover everything. There is a separate family of work that rearranges pages rather…

Software Development Blog

Build an Accessible PDF Reader in Delphi with PDFium

Point NVDA at a freshly built Delphi PDF viewer and you typically get one of two outcomes: silence, or text spoken in whatever order the content stream happens to store it — page footer first, then…

Software Development Blog

Delphi PDF Annotation Review with PDFium Component

A reviewer opens the same contract in your Delphi viewer and in Adobe Acrobat. Acrobat's comment pane lists fourteen items; your review panel shows eleven. Nothing is wrong with your loop. The…

Software Development Blog

PDF Form Field Navigation in Delphi (PDFium Component)

The bug report comes with a screenshot: "Your tool filled the form, but every field in Acrobat is blank. When I click into a field, the value suddenly appears." The data is in the file — the…

Software Development Blog

PDF Viewer for Lazarus and Free Pascal with PDFium

The port looked finished on Friday. A Delphi PDF viewer, moved to Lazarus over two days: a handful of unit-name changes, a few{$IFDEF FPC}blocks, and the project compiled clean. Monday's test run…

Software Development Blog

Low-Vision PDF Colour Filters in Delphi with PDFium

The feature request read simply: 'White pages are painful to read — please add a dark mode.' The first implementation inverted every pixel of the rendered page, shipped in a week, and generated a…

Software Development Blog

Secure PDF Preview in Delphi Apps with PDFium Component

A service-desk team I supported previewed customer attachments in an embedded PDF pane. One crafted 'invoice' carried a link whose visible text saidhttps://portal.example.combut whose action pointed…

Software Development Blog

Word-by-Word TTS Highlighting in Delphi PDFium Viewers

The first demo of our read-aloud feature for a literacy app went fine for two paragraphs. Then the page hit a drop cap, the voice said 'Chapter' whilst the highlight sat on the previous line, and by…

Software Development Blog

Printing PDF Documents with PDFium Component in Delphi

Printing PDF documents with accurate rendering and proper scaling is a common requirement. ThePrint PDFdemo shows how to implement professional PDF printing with preview, page selection, and quality…

Software Development Blog

Reusable Page Stamps via Form XObjects With PDFium

Stamping a watermark or a logo onto every page of a document looks like a five-minute job until you open the result in a file-size inspector. The obvious approach is to walk the pages and, on each…

Software Development Blog

Streaming Huge PDFs on Demand With PDFium in Delphi

A scanned archive can run to several gigabytes in a single PDF. A viewer that opens such a file usually wants to show one page, maybe the table of contents, maybe a page the user jumped to from a…

Software Development Blog

Validating Compressed PDFs: Object and XRef Streams

You write a small validator. It opens a PDF, seeks to the end, findsstartxref, reads the offset, and expects to land on the keywordxrefwith a fixed-width cross-reference table beneath it. From that…

Software Development Blog

Barcodes in PDF With Delphi: QR, PDF417, DataMatrix

A barcode on a shipping label or an invoice has one job, which is to be read by a scanner on the first pass. Whether it survives that pass is decided long before the package reaches the dock. It is…

Software Development Blog

Interactive PDF Forms in Delphi: Actions and JavaScript

A PDF form field on its own is just a box that holds a value. What makes a form behave like a small application is the action attached to it: a click that hides a section, pulls saved values back…

Software Development Blog

PDF Layers in Delphi: Optional Content Groups (OCG)

A surveyor opens a site plan and wants the contours hidden while the utilities stay on. A reviewer wants the redline annotations visible on screen and gone from the printout. A product sheet ships in…

Software Development Blog

Hardening a Pascal PDF Parser Against Malicious Files

A PDF is not a document you open. It is a small programme you run. Every embedded font is a stack-based interpreter waiting for charstrings, every image is a decoder fed width, height, and bit-depth…

Software Development Blog

Vector Graphics in PDF With Delphi: Paths and Gradients

Most Delphi code that touches PDF treats the format as a container for two things: runs of text and a few placed bitmaps. That view is correct as far as it goes, and it leaves the most capable part…

Software Development Blog

Writing BIFF8 PivotTables in Delphi: SXDB and SXLI

Almost every part of the legacy Excel binary format is a single record with a clean two-byte type and a two-byte length. A cell is aLABELSSTor aNUMBER. A merged region is aMERGEDCELLS. You can read…

Software Development Blog

HotXLS Charts and Images: Excel Drawings in Delphi

The support ticket said the chart was missing. A Delphi service generated a monthly .xls report, created a chart sheet for the revenue trend, and then tried to write a data caption onto that same…

Software Development Blog

Excel Comments and Hyperlinks in Delphi with HotXLS

A reconciliation workbook leaves the finance system every night with two kinds of metadata stitched into it: cell comments explaining why a figure was adjusted, and hyperlinks pointing reviewers at…

Software Development Blog

HotXLS Conditional Formatting and Rich Text in Delphi

The rule was there. Excel listed it under Manage Rules, the range was right, the formula was right — and not a single cell was highlighted. This is the most common first contact with programmatic…

Software Development Blog

Export Excel to CSV, TSV, and HTML in Delphi (HotXLS)

The downstream ERP rejected the nightly feed with a parse error in the totals column. The CSV looked correct in a text editor until row 42, where the amount field read=SUM(D2:D41)— the formula…

Software Development Blog

HotXLS Data Validation, AutoFilter and Tables in Delphi

A batch service applied an AutoFilter to drop rejected rows from an order workbook, then handed the file to a second stage that read it back and exported the 'filtered' data. Every rejected row came…

Software Development Blog

Exporting Delphi Datasets to Excel Reports with HotXLS

A finance user opens last night's order export, selects the Amount column, and Excel's status bar shows a count but no sum. Every value in the column is text. The export code calledAsStringon every…

Software Development Blog

Excel Date Serials in Delphi: 1900 vs 1904 and numFmt

Open a spreadsheet, click a cell that shows2026-06-19, and the formula bar still reads a date. Read the same cell from Delphi and you get the number46192. Both views are correct, because Excel never…

Software Development Blog

HotXLS Formula Engine and Custom Functions in Delphi

A reporting service writesSUM(B2:B501)into a totals cell, saves the workbook, then exports the same sheet to CSV for a downstream importer. The .xlsx opens perfectly in Excel, totals and all — yet…

Software Development Blog

Large Excel Workbook Performance in Delphi with HotXLS

When a 300,000-row export blows through its memory budget, the row count typically gets the blame — and the row count is typically innocent. The expensive parts of a big workbook are the ones created…

Software Development Blog

HotXLS Merged Cells and Report Template Layout in Delphi

The bug report said the invoice title had vanished. The generator mergedA1:F1correctly, styled it correctly — and wrote the title into B1. In both XLS and XLSX, a merged range displays the content of…

Software Development Blog

Open and Save ODS Files in Delphi with HotXLS

A Delphi reporting back-end that has produced .xlsx files for years gets a new requirement: a public-sector customer's procurement rules mandate OpenDocument Spreadsheet output, and that customer's…

Software Development Blog

Why Excel Rejects Your Encrypted Workbook: ECB and RC4

You write a workbook, encrypt it with a password, hand the file to a colleague, and the colleague opens it in Excel. Excel asks for the password. The colleague types it, and Excel accepts it. So far…

Software Development Blog

Generate Excel Files in Delphi Without Office Automation

The pager goes off at 02:10. The nightly report job has stalled, and Task Manager on the server shows eleven EXCEL.EXE processes owned by the service account, each waiting on a dialogue box that no…

Software Development Blog

HotXLS Streaming Writes for Delphi Server Batch Jobs

Profile a Delphi service whilst it saves a 400,000-row workbook and the surprise is rarely the cell-filling loop - it is theSaveAscall. With the default writer, each worksheet is serialised into one…

Software Development Blog

Unicode-Safe Spreadsheet Export in Delphi: RTF and HTML

A spreadsheet holds a column of customer names. Some are in Chinese, some in Cyrillic, a few carry German umlauts or a French accent. You export it to CSV and open the result, and every character is…

Software Development Blog

HotXLS: Preserve VBA Macros and External Links in Delphi

'After your service updates the monthly workbook, our macros are gone.' That support ticket typically has nothing to do with macro code at all. Somewhere in the pipeline a macro-enabled workbook was…

Software Development Blog

HotXLS: Workbook Audit and Format Conversion in Delphi

A document migration hands you forty thousand spreadsheet files accumulated since 2003: BIFF-era.xls, modern.xlsx, a scattering of.odsfrom a LibreOffice pilot, a few files nobody can open because the…

Software Development Blog

Setting Excel Document Properties in Delphi with HotXLS

Right-click any workbook your application ships, open Properties, and read the Details tab. If the Title says 'Q1 template — DO NOT USE' and the Author is an analyst who left the company in 2019,…

Software Development Blog

Encrypt XLSX Files with AES in Delphi using HotXLS

Try this experiment on any 'password-protected' workbook produced by your application: rename the.xlsxto.zip, open it in any archive tool, and look atxl/worksheets/sheet1.xml. If the cell values are…

Software Development Blog

Building a Simple PDF Document from Scratch

Building a Simple PDF Document from Scratch. Building a PDF Document using Notepad Master the art of creating PDF files manually and understand the

Software Development Blog

In-depth exploration of PDF document structure

Welcome to the fascinating world of PDF internals!Have you ever wondered what makes a PDF file tick? Beyond the familiar documents we view daily lies a sophisticated architecture that has…

Software Development Blog

Understanding PDF File Structure: A Technical Overview

The Portable Document Format (PDF) has become the de facto standard for document exchange and archival. Understanding its internal structure is essential for developers, system administrators, and…

Software Development Blog

Understanding PDF Page Trees: Why Page Order Matters

PDF documents might look simple on the surface, but their internal structure can be surprisingly complex. One area that often trips up developers is understanding how PDF page ordering actually…

Software Development Blog

Understanding PDF: The Universal Document Format

Every day, millions of people open PDF files without giving it a second thought. But this ubiquitous format revolutionized how we share documents, ensuring that what you see on your screen matches…

Software Development Blog

Debugging Range Check Errors in Delphi PDF Libraries

When working withPDF manipulation libraries in Delphi, range check errors can be particularly frustrating because they often occur deep within complex document structures. These errors are especially…

Software Development Blog

Set TDateTimePicker format in Delphi 5

While adding Delphi 5 compatibility to an older VCL sample, the project failed on a line that is perfectly normal in newer Delphi versions. The code tried to assign a custom date pattern directly to…

Software Development Blog

Port Delphi _ftol inline assembly to 64-bit builds

Older Delphi code sometimes included a small_ftolhelper to convert a floating-point value to an integer. In 32-bit projects it was common to write this kind of helper with inline assembler,…

Software Development Blog

PDF electronic signature workflow with DigiSigner

Electronic signature tools are useful when a PDF needs approval without printing, scanning, and emailing copies back and forth. A signing service such as DigiSigner can handle simple document signing…

Software Development Blog

Automated PDF Preflight and Risk Auditing with PDFium

In enterprise printing, archiving, and document compliance workflows, a PDF file cannot simply be "rendered." It must be audited. A PDF might contain unflattened transparency groups that crash legacy…

Software Development Blog

losLab PDF Library: A Comprehensive Feature Guide

losLab PDF Library is a robust PDF Software Development Kit (SDK)that provides an extensive range of functionalities for handling PDF files. This guide will explore the myriad features offered by our…

Software Development Blog

Transforming RTF Files into PDF: A Guide for Developers

In the world of document processing, converting Rich Text Format (RTF) files to Portable Document Format (PDF) is a common task. This conversion ensures the document’s layout remains consistent…