HotPDF Delphi 组件说明

 

顶部  下一页

HotPDF 是面向 Delphi 和 C++Builder 的 VCL 组件库,可在不依赖外部 PDF DLL 的情况下生成 PDF 文档。主要入口是 THotPDF 类,用于管理文档创建、页面访问、压缩、元数据、安全设置和输出流

 

典型工作流包括绘制文本和矢量图形、嵌入位图和图元文件内容、导入 TIFF 和 JPEG2000 图像、附加文件、配置查看器首选项、使用密码和权限保护最终文档,以及用密码加载 RC4-40 / RC4-128 Standard 加密 PDF 以输出未加密的已加载文档

 

当前亮点

  • 扩展了对 TIFF、JPEG2000、WMF、EMF 以及 JBIG2Decode 过滤器识别工作流的图像支持
  • 内置 LZW 支持、基于 zlib-ng 且兼容 zlib 模式的 Flate 压缩、64 位 zlib-ng 运行时 SIMD 调度,以及由 libjpeg-turbo 3.1.90 支撑并带 NASM SIMD 对象加速的标准 JPEG 处理
  • Win32 和 Win64 的 C 运行时共享桥接由 HPDFCLibs.pas 实现,涉及 Win32 bcc32c/bcc32 OMF 对象、Win64 COFF64 对象以及 zlib-ng Win64x COFF 对象,包含 32 字节对齐的 C 内存分配
  • 扩展了查看器和打印首选项,包括文档方向、打印缩放、双面模式、页面边界和初始缩放行为
  • 改进了字体嵌入、Unicode 文本输出和从右到左文本渲染
  • PDF/A Level A 输出为归档合规启用带标记 PDF 基础,同时将 PDF/UA-1 标识保持为显式的 PDFUACompliance 选项
  • PDF/A-1、PDF/A-2、PDF/A-3、PDF/X-1a、PDF/X-3、PDF/X-4 和 PDF/UA-1 工作流包含 profile-aware producer gates、metadata generation、适用时的 OutputIntent 支持,以及经 veraPDF 验证的 PDF/A-2A / PDF/A-3A smoke coverage
  • 更新了用于 ViewerPreferences 和嵌入字体验证的演示应用

核心能力地图

  • AcroForm 字段与表单动作:text field、check box、radio button、combo box、list box、push button 和 signature field,支持 SubmitForm、ResetForm、JavaScript 以及文档级动作
  • 注释、链接与附件:text/link/file attachment 注释输出、嵌入文件名树、URI action 与 GoTo action 链接,以及页面级交互输出
  • 安全与签名:Standard security handler 的密码与权限,最高到带 revision 6 权限的 AES-256,另有 signature fields、CMS 与 PAdES/PFX 签名以及 PFX 证书加载
  • 标准:在同一个合规模型上提供 profile-aware 的 PDF/A、PDF/X 和 PDF/UA 输出,含 producer gates、metadata、OutputIntent、Tagged PDF 辅助和验证冒烟测试
  • Optional Content 图层:可见性分组、显示或隐藏已导入页面、分组资源以及查看器控制的图层导航
  • 图形:平铺 pattern、shading、可复用的 Form XObject 资源、soft mask 和透明度分组,以及 canvas 辅助
  • 图像:JPEG、TIFF、CCITT 传真式双值图像、JPEG2000,以及由 AddImage 写入、从已加载文档解码的 JBIG2Decode 图像
  • 文本:带 ToUnicode CMap 的 Unicode Type 0 字体、CJK 字体工作流、RTL 文本、竖排文本、CFF/OpenType 子集化以及 GSUB/GPOS OpenType shaping
  • 大文件:Direct File API、大文件基准测试,以及面向对象替换、页面重排和复制、合并、编辑工作流的已加载文档重写
  • 流:OutputStream、LoadFromStream 和内存流生成,支持调用方自有的流和无临时文件的服务端输出

标准符合性定位

  • PDFACompliance 公开 PDF/A 支持。HotPDF 提供 PDF/A 元数据、profile 限制、字体嵌入强制、OutputIntent 钩子和验证冒烟覆盖;应用程序仍需提供有效的 ICC profile、标题 / 语言值、字体以及符合 profile 的内容。
  • PDFUACompliance 与 Tagged PDF API 公开 PDF/UA 支持。HotPDF 提供文档级包装、结构树机制、角色映射、标记内容辅助、ParentTree 接线以及替代文本 / ActualText 辅助;真实语义结构与阅读顺序仍由应用负责。
  • PDF/A Level A 与 PDF/UA-1 是两个独立声明。Level A 启用存档合规所需的 Tagged PDF 基础;PDF/UA-1 XMP 身份只有在显式启用 PDFUACompliance 时才输出。

构建和平台说明

  • Win32 构建链接 bcc32c 生成的 zlib-ng OMF 目标文件和 bcc32 生成的 JPEG/TIFF OMF 目标文件,存放于 Lib\thirdparty\Win32。
  • Win64 构建链接存放于 Lib\thirdparty\Win64 的 COFF64 目标文件;zlib-ng 后端当前链接 Lib\thirdparty\Win64x 中 bcc64x 生成的 COFF 目标文件。
  • 原生对象重建验证从干净输出通过:Win32 对象 206 个、Win64x 对象 205 个、MSVC Win64 对象 206 个。
  • HPDFOpenJpeg.pas 单元当前作为接口层和扩展点;不应视为完整的原生 OpenJPEG 运行时绑定。

诊断

  • 库的通用诊断由 HotPDF.inc 中的 withDEBUG 控制,启用后会写出 HotPDF-Debug.log。
  • 页面内容合并跟踪由 PAGECONTENT_DEBUG_FILE 单独控制,仅在显式启用时写出 PageContent_Debug.txt。

自动化验证

  • DUnitX Delphi 回归套件经 Tests\Delphi\Run-HotPDFDelphiTests.bat 在 Win32 与 Win64 上各通过 20 项测试。
  • GoogleTest C++Builder 回归套件经 Tests\C++Builder\Run-HotPDFCBuilderTests.bat 在 Win32 与 Win64x 上各通过 17 项测试。
  • 自动化覆盖练习生成的元数据、Unicode 与 RTL 文本、注释、附件、标准 JPEG 图像放置、图像与 TIFF 导入、zlib-ng Flate 压缩、条码输出、内存流输出、页面设置、加密、超链接、段落、复制 / 合并 / 编辑工作流、表格、图表、数值输出、图元文件与结构化报告。

HotPDF 适用于报表生成、技术文档、图像处理工作流,以及其他需要以程序方式直接控制 PDF 输出的应用