|
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, protecting the final document with passwords and permissions, and loading RC4-40 / RC4-128 Standard encrypted PDFs with a password for unencrypted loaded-document output.
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 behaviour.
- Improved font embedding, Unicode text output, and right-to-left text rendering.
- PDF/A Level A output enables Tagged PDF basics for archival conformance while keeping PDF/UA-1 identification as an explicit PDFUACompliance opt-in.
- PDF/A-1, PDF/A-2, PDF/A-3, PDF/X-1a, PDF/X-3, PDF/X-4, and PDF/UA-1 workflows include profile-aware producer gates, metadata generation, OutputIntent support where applicable, and smoke coverage for PDF/A-2A / PDF/A-3A validated with veraPDF.
- Updated demo applications for ViewerPreferences and embedded-font validation.
Standards conformance positioning
- PDF/A support is exposed through PDFACompliance. HotPDF supplies the PDF/A metadata, profile restrictions, font-embedding enforcement, OutputIntent hooks, and validation smoke coverage; the application still provides valid ICC profiles, title/language values, fonts, and profile-appropriate content.
- PDF/UA support is exposed through PDFUACompliance and the Tagged PDF APIs. HotPDF supplies the document-level wrapper, structure-tree machinery, role mapping, marked-content helpers, ParentTree wiring, and alternate-text / ActualText helpers; the application still owns the real semantic structure and reading order.
- PDF/A Level A and PDF/UA-1 are separate claims. Level A enables the Tagged PDF foundation required for archival conformance, while the PDF/UA-1 XMP identity is emitted only when PDFUACompliance is enabled explicitly.
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.
|