HotPDF Component Description

 

Top  Next

HotPDF is a VCL component library for Delphi and C++Builder that generates PDF documents without requiring an external PDF DLL. The main entry point is the THotPDF class, which manages document creation, page access, compression, metadata, security, and output streams.

 

Typical workflows include drawing text and vector graphics, embedding bitmap and metafile content, importing TIFF and JPEG2000 images, attaching files, configuring viewer preferences, and protecting the final document with passwords and permissions.

 

Current highlights

  • Expanded image support for TIFF, JPEG2000, JBIG2, WMF, and EMF workflows.
  • Built-in LZW support, zlib-ng based Flate compression in zlib-compatible mode, 64-bit zlib-ng runtime SIMD dispatch, and libjpeg-turbo 3.1.90 backed standard JPEG handling with NASM SIMD object acceleration.
  • Shared C runtime bridging in HPDFCLibs.pas for Win32 bcc32c/bcc32 OMF objects, Win64 COFF64 objects, and zlib-ng Win64x COFF objects, including 32-byte aligned C allocation.
  • Expanded viewer and print preferences, including document direction, print scaling, duplex mode, page boundaries, and initial zoom behavior.
  • Improved font embedding, Unicode text output, and right-to-left text rendering.
  • Updated demo applications for ViewerPreferences and embedded-font validation.

Build and platform notes

  • Win32 builds link bcc32c-generated zlib-ng OMF objects and bcc32-generated JPEG/TIFF OMF objects stored in Lib\thirdparty\Win32.
  • Win64 builds link COFF64 objects stored in Lib\thirdparty\Win64; the zlib-ng backend currently links the bcc64x-generated COFF objects stored in Lib\thirdparty\Win64x.
  • Native object rebuild validation passes from clean outputs: 206 Win32 objects, 205 Win64x objects, and 206 MSVC Win64 objects.
  • The HPDFOpenJpeg.pas unit currently serves as an interface layer and extension point; it should not be treated as a complete native OpenJPEG runtime binding.

Diagnostics

  • General library diagnostics are controlled by withDEBUG in HotPDF.inc, which writes HotPDF-Debug.log when enabled.
  • Page-content merge tracing is controlled separately by PAGECONTENT_DEBUG_FILE, which writes PageContent_Debug.txt only when explicitly enabled.

Automated validation

  • The DUnitX Delphi regression suite passes 20 tests on Win32 and 20 tests on Win64 through Tests\Delphi\Run-HotPDFDelphiTests.bat.
  • The GoogleTest C++Builder regression suite passes 17 tests on Win32 and 17 tests on Win64x through Tests\C++Builder\Run-HotPDFCBuilderTests.bat.
  • The automated coverage exercises generated metadata, Unicode and RTL text, annotations, attachments, standard JPEG image placement, image and TIFF import, zlib-ng Flate compression, barcode output, memory-stream output, page setup, encryption, hyperlinks, paragraphs, copy/merge/edit workflows, tables, charts, numeric output, metafiles, and structured reports.

HotPDF is suited for report generation, technical documentation, imaging workflows, and other applications that need direct programmatic control over PDF output.