PDFium Delphi Component 文件

PAdES 签名 · PDF 2.0 加密 · 六项 ISO 标准 · Delphi / C++Builder / Lazarus

渲染引擎做不到的一切,用 Object Pascal 写就

引擎负责绘制页面和读取结构。它无法签署文档、写入加密、验证 PDF 标准,也无法生成线性化或增量修订。PDFium Delphi Component 在 PDFium 之上实现了所有这些能力:分布在 36 个单元中的超过 62,000 行代码在引擎 API 中没有对应物,外加查看器与无障碍阅读器架构——而且每一行都以源代码形式交付

阅读完整概述 浏览功能目录

引擎之外您还能得到什么

以下每一点都是已交付的能力,您可以在 API 参考和示例中加以验证

数字签名,而不只是读取签名

引擎只能报告签名字典存在。本库则能创建签名:符合 ETSI EN 319 142-1 的 PAdES 基线 B-B、B-T、B-LT 和 B-LTA,符合 RFC 5652 的 CMS / CAdES SignedData,RFC 3161 时间戳请求,Document Security Store 注入,归档时间戳,以及证书链信任验证。远程签名与 HSM 签名将操作拆分,私钥无需到达工作站

SignPades / ValidatePadesTrust / PreparePadesRemoteSignature

可以写入的加密,而不只是打开加密

ISO 32000-2 AES-256,含算法 2.B 的 R6 密钥派生、完整的流与字符串加密覆盖、ISO/TS 32003 AES-GCM 以及 ISO/TS 32004 PDF MAC 令牌。AES、SHA-2、SHA-3、HMAC 和 ASN.1 基元均为纯 Object Pascal,并已对照公开的 FIPS 测试向量验证——没有任何外部 C 库进入您的部署或安全审查

SaveAsEncrypted; FPdfAes / FPdfSha512 / FPdfAsn1

引擎不具备的 PDF 写入器

引擎只提供一种顺序整文件保存。本库在此基础上写出自己的修订:带 Annex F 提示表的线性化 Fast Web View、对象流与 xref 流打包,以及逐字节保留前一次输出的脏对象增量修订。受损文件可获得严格、兼容和恢复三种加载策略及结构化诊断,而不是静默修复

SaveAsLinearized / SaveAsObjectStream / BeginIncrementalSave / SaveAsRepaired

超越纯文本的内容提取

GetStructuredText 依据字符几何和 Tagged PDF 语义构建页面 / 块 / 行 / 样式跨度的层级结构。ExtractTables 检测有边框和空白对齐的表格,保留合并跨度并输出 CSV 或 JSON。BuildReflowDocument 将固定版式 PDF 转换为语义化 HTML。XFDF 和 FDF 可交换表单数据和 18 种注释子类型——这些格式引擎完全没有公开 API

ExtractTables / BuildReflowDocument / ExportXFDF

同类中最广的 IDE 覆盖

Delphi / C++Builder(RAD Studio XE5 到 13.1 Florence)加上 Lazarus / Free Pascal 3.8+,Win32 和 Win64。三大 IDE 家族共享相同的夹具 PDF 和回归套件

1257 个 Pascal + 515 个 C++ 测试用例,按字节对齐

完整的 PDF 标准谱系

PDF/A-1b 输出(SaveAsPdfA)+ 验证(ValidatePdfA),外加带条款级结果码、标记注入和版本合规把关的 PDF/UA、PDF/E、PDF/X、PDF/R 和 PDF/VT 验证器。PDF/A 覆盖 ISO 19005 第 1 至 4 部分,PDF/X 达到 X-6,PDF/VT 包含 VT-2s 流打包

专用单元 FPdfPdfa/Pdfua/Pdfe/Pdfx/Pdfr/Pdfvt.pas

无障碍朗读 / 低视力

TPdfReadingSession 为宿主 TTS 引擎编排朗读(句子级阅读单元、词级高亮、朗读文本映射);加上 InvertPdfBitmap、GrayscalePdfBitmap、DuotonePdfBitmap 低视力变换以及实时夜间双色调查看

大多数封装完全缺失的无障碍层

零拷贝 + 可取消的渐进式渲染

渲染路径将 PDFium 输出直接写入目标 TBitmap DIB 缓冲区,跳过每帧的全页像素拷贝;RenderPageProgressive 在迭代之间轮询取消令牌,并可在渲染中途被中断

在高 DPI 下每帧节省一次宽×高×4 字节的拷贝

多 GB PDF 的按需流式加载

通过 LoadCustomDocument 的按需 TStream 适配器,PDFium 按块读取——多 GB、远程或数据库支撑的文档加载时无需内存副本,几乎可以立即获得可用的首屏视图

2.x GB 文档:近乎即时的首屏视图

三个组件 + 33 个共享演示

TPdf(文档引擎)、TPdfView(交互式查看器)、TPdfThumbnailView(缩略图导航);33 个 COMMON 演示在三大 IDE 间共享,涵盖查看、搜索、表单填写、合并/拆分、批量导出、打印、安全审计、预检报告等

PDFViewer / PreflightReport / SecurityAudit / StandardsLab 等

安全优先的默认设置

链接动作允许列表(LinkOptions)、默认禁用启动动作,以及用于审计风险面的 SecurityAudit 演示——开箱即安全,而不是默认开启危险动作

适用于对安全敏感的金融 / 医疗部署

含源代码 · 免版税 · 长期支持

随附 Pascal 源代码,无运行时版税,长期维护。捆绑 Win32/Win64 pdfium.dll 和 pdfium.v8.dll(启用 V8/XFA),并提供可选的 Skia 渲染钩子

无按部署计费

实力佐证

3IDE 家族:Delphi / C++Builder / Lazarus
6+PDF 标准:A / UA / E / X / R / VT
33三大 IDE 共享的 COMMON 演示
1770+Pascal + C++ 回归测试用例

谁适合选择 PDFium Delphi Component

文档查看器 / 阅读器

需要生产级渲染质量与交互(文本选择、搜索高亮、链接、缩放、连续双页)的嵌入式 PDF 查看器

无障碍 / 辅助技术

面向视障用户的朗读编排和低视力变换——大多数 PDF 封装完全没有的这一层

合规 / 预检工具链

需要 PDF/A 生成与验证、PDF/UA 无障碍、版本把关以及 CI 友好的预检报告

超大 / 远程文档

必须按需加载而非完整驻留内存的多 GB 或数据库支撑的 PDF

跨 IDE 团队

同时使用 Delphi、C++Builder 和 Lazarus 的团队——一套组件,相同的夹具,相同的演示

对安全敏感的部署

对链接 / 启动动作实施严格控制的金融、医疗和政府场景

用几行代码渲染页面

无需手写 C 互操作——直接使用原生 Pascal 组件:

uses PDFium;

var
  Pdf: TPdf;
  Bmp: TBitmap;
begin
  Pdf := TPdf.Create(nil);
  try
    Pdf.FileName := 'report.pdf';
    Pdf.Active := True;
    Pdf.PageNumber := 0;              // pages are zero-based

    Bmp := Pdf.RenderPage(0, 0,
      Round(PointsToPixels(Pdf.PageWidth, 150)),
      Round(PointsToPixels(Pdf.PageHeight, 150)));
    try
      Bmp.SaveToFile('page1.bmp');
    finally
      Bmp.Free;
    end;
  finally
    Pdf.Free;
  end;
end;

后续步骤

从产品概述和快速开始入手, 浏览完整功能目录和示例, 或阅读发布说明了解最新交付内容