源码级 PDFium SDK

面向 Delphi、C++Builder 和 Lazarus 的 PDFium Component

在 Delphi 和 C++Builder 应用中嵌入 PDFium VCL Component 工作流,或在 Lazarus/FPC 中嵌入 PDFium LCL Component 工作流,通过源码组件实现查看、渲染、表单、打印、预检报告和面向标准的验证。

PDFium Component Delphi PDF viewer component

Delphi 原生 PDF 查看与文档工作流

PDFium Component 是面向 Delphi、C++Builder 和 Lazarus 应用的源码级 PDFium 组件集,适合需要在原生 Windows 桌面界面内实现快速 PDF 显示、页面光栅化、stream 加载、文本选择、搜索、表单、注释、打印、预检 报告和文档检查的项目。

当 PDF 体验应当内嵌在应用中,而不是交给外部查看器时,可以使用它。包内包含可视与非可视组件、Object Pascal 源码、演示工程、PDFium DLL、可选的 V8 / XFA runtime DLL、命令行 预检 示例、回归测试,以及查看器集成和底层 PDF 操作的文档。

PDFium Component 支持 Delphi XE5 到 Delphi 13.1 Florence,以及 C++Builder XE5 到 C++Builder 13.1 Florence,覆盖 Win32 和 Win64 目标。还包含面向 LCL 工作流的 Lazarus / Free Pascal 包和演示。

主要能力

  • 查看器 UI:TPdfView 放到窗体上即可获得缩放、旋转、适配模式、单页与连续布局、封面感知双页、页面阴影、安全链接点击、用户文本选择、复制到剪贴板和表单焦点工作流。
  • 缩略图导航: 在查看器旁加入 TPdfThumbnailView,提供可滚动页面缩略图、悬停反馈、选中高亮和点击跳转。
  • 渲染: 将页面和切片渲染为 bitmap,在可行时使用零拷贝 DIB 写入,执行可取消的渐进渲染,在已加载 DLL 导出相关入口时访问底层 Skia hook,并让大页面保持响应。
  • Streams 与大文件: 从磁盘、内存、byte array 或自定义 seekable stream 加载,通过按需 PDFium 读取避免对大型或远程文档进行预先内存复制。
  • 文本与搜索: 提取页面文本,向前或向后搜索,高亮匹配,构建全页结果列表,并检查字符矩形、原点、角度、生成字符、字体族、字重、大小、ascent、descent 和嵌入字体状态。
  • 表单: 处理 AcroForm 字段、XFA 状态检测、可选 V8 / XFA helper 可用性、选中文本、表单 undo / redo、生成的表单外观、字段 flags 和 flattening。
  • 注释与链接: 创建、删除、统计和检查注释;处理页面链接、web links、书签目标、文档 JavaScript 动作、URI / Launch 风险面以及查看器点击事件。
  • 文档组装: 创建文档,添加或删除页面,按标签或物理索引导入页面范围,移动页面,组合 N-up 页面,将页面复用为 Form XObjects,应用水印或印章,更新页面内容并管理页面 boxes。
  • 内容与安全检查: 提取图像,渲染对象 bitmap,检查对象边界和透明度,读取附件、元数据、签名、权限、语言、页面标签、页面模式、查看器首选项、Tagged PDF 结构和文件标识符。
  • 预检 报告: 生成面向标准的审计报告,包含 pass、action-required、review、priority、issue category、category-count 和 next-action 字段;导出 TXT / HTML / Markdown / JSON / CSV,运行批量汇总,并将报告附加到审核副本。
  • 打印: 支持页面范围、份数、缩放偏好、N-up 组合、奇偶页过滤、灰度输出、查看器首选项元数据,以及用于双面和纸张处理集成的 SetPdfPrintPaperHandlingDevMode

面向合规的 PDF 工作流

PDFium Component 为需要可预测 PDF 交付、归档审查、打印工作流、可访问性检查、工程文档、可变数据输出或 光栅-locked 交付的团队提供面向标准的验证和保存 API。

工作流PDFium Component 支持应用负责事项
PDF/AValidatePdfASaveAsPdfAPdfAConformance、OutputIntent 检查、XMP 元数据检查、字体嵌入检查、加密和 JavaScript 限制,以及按配置文件感知的保存 helper。选择归档目标,提供正确的文档元数据和颜色数据,并在交付前审查所有验证问题。
PDF/XValidatePdfXSaveAsPdfXPdfXConformance、OutputIntent 处理、面向印前的限制、页面 box 感知和打印安全配置文件检查。为目标 PDF/X 配置文件提供适合生产的 output intent 数据、页面几何和打印设置。
PDF/UAValidatePdfUaSaveAsPdfUaPdfUaConformance、语言与 tagging 检查、结构树检查、marked-content 审查和可访问性配置文件验证。在源工作流中编写有意义的阅读顺序、标题、列表、表格语义、替代文本和文档语言。
PDF/E, PDF/VT, PDF/RValidatePdfEValidatePdfVTValidatePdfR、对应的 SaveAs... API,以及面向工程、可变数据和 光栅 PDF 配置文件的符合性属性。将配置文件匹配到业务工作流,并让源内容保持在所选标准允许的功能集内。
预检 自动化FPdf预检Report预检ReportCli 为 PDF/A、PDF/UA、PDF/E、PDF/X、PDF/R 和 PDF/VT 检查生成面向人和机器的摘要。决定 pass、action-required、review 或问题计数是否应阻断 CI、交付或归档摄取。

这些 API 旨在让标准相关工作在代码中可见。验证结果、预检 摘要和保存 helper 可帮助应用拒绝或修正有问题的输出,而不是静默交付一个稍后才在归档、打印或可访问性流程中失败的文件。内置验证器聚焦 marker-level 和部分 file-level 检查;需要正式 content-level 认证的团队应将其与专用验证引擎配合使用。

组件架构

  • TPdf: 非可视文档组件,用于加载、stream 访问、保存、渲染、搜索、提取、验证、表单访问、页面操作、元数据、附件、注释、预检 报告和 PDF 配置文件工作流。
  • TPdfView: 可视查看器组件,用于显示模式、用户交互、链接、滚动、缩放、选择、表单焦点、高亮、页面导航和剪贴板工作流。
  • TPdfThumbnailView: 可滚动缩略图侧边栏,用于页面导航、当前页跟踪、悬停反馈和查看器配套布局。
  • 辅助单元: FPdfAsyncFPdfMatrixFPdf预检Report 覆盖协作式取消、仿射变换、可复用报告生成和适合自动化的输出。

下载 PDFium Component 演示包 (25.7 MB)

2026-05-26 Version 1.39.51:PDFium Component changelog | API参考

通过 FastSpring 使用信用卡/借记卡、PayPal、AliPay 或电汇付款:
新客户首次购买全价:

PDFium Component Single License ($499)
PDFium Component Team/SME License ($999)
PDFium Component Enterprise License ($1999)

现有客户续费:全价的 40%,可随时取消。打开 PDFium Component 购买与续费页面

包含的演示

包内包含面向 Delphi、C++Builder 和 Lazarus 的可直接运行示例,覆盖多数团队在生产集成前需要验证的核心工作流。

  • PdfViewer: 完整查看器,包含文本选择、搜索、书签、页面导航、打印、链接和显示模式。
  • ViewerInteractionLab 和 SearchAndSelect: 显示模式、适配模式、页面颜色、旋转、搜索高亮、全页结果列表、选中文本预览、复制、清除和坐标映射。
  • MultiPageViewer: 面向文档审阅应用的连续、双页、封面感知和多页查看器行为。
  • SplitView: 同一文档的两个同步视图,用于比较和审阅工作流。
  • ContentExtractionLab: 一个工作流覆盖元数据、文本、页面对象、图像、附件、链接、注释、书签、字体和字符度量,并支持 TXT / JSON 导出。
  • PDFtoJpg, BatchExport 和 ImageToPDF: 光栅 导出、批量多文件转换、stream 加载、DPI / 质量控制、密码输入、进度和协作式取消。
  • MergePDF, SplitPDF, CreatePDF 和 WatermarkStamp: 文档组装、程序化 PDF 创建、可复用 Form XObject 水印、角标印章和页码标签。
  • FormFill, FontProperties 和 Attachment: 表单值编辑和 flattening、索引化字体和字符检查,以及嵌入文件提取或创建。
  • SecurityAudit: 只读检查权限、附件、JavaScript、URI / Launch 链接、web links、签名、XFA 状态、runtime helper 可用性,以及 TXT / JSON 审计报告。
  • StandardsLab, 预检Report 和 预检ReportCli: PDF/A、PDF/UA、PDF/E、PDF/X、PDF/R 和 PDF/VT 验证与保存工作流,报告预览,TXT / HTML / Markdown / JSON / CSV 导出,批量文件夹、排序摘要、防重名报告、报告附件和面向 CI 的 failon= 退出行为。

团队选择 PDFium Component 的原因

  • 原生 Delphi 集成: 真正的 VCL 组件和 Object Pascal 源码,而不是 ActiveX 控件或浏览器承载的查看器。
  • PDFium 渲染质量: 使用 Chromium PDF 显示背后的同一开源 PDF 引擎家族,同时让集成留在 Delphi 代码库内。
  • 查看器与 API 合一: 将成熟的屏幕 PDF 查看器与底层文档访问、搜索、表单、打印、验证 API 和可脚本化 预检 报告结合在一个包内。
  • 无 runtime 版税: 构建桌面应用时无需按文档或最终用户支付 runtime 费用。
  • 现代 IDE 支持: 支持 Delphi XE5 到 Delphi 13.1 Florence、C++Builder XE5 到 C++Builder 13.1 Florence,以及 Lazarus / Free Pascal 工作流,覆盖 Win32 和 Win64。
  • 持续维护的测试覆盖: Delphi DUnitX、C++Builder GoogleTest 和 Lazarus FPCUnit 测试覆盖主要文档、渲染、表单、结构、打印、缩略图和查看器工作流。

PDFium Component 在线文档

代码示例

procedure TForm1.OpenPdf(const FileName: string);
begin
  Pdf.FileName := FileName;
  PdfView.Pdf := Pdf;
  PdfThumbnailView.Pdf := Pdf;
  PdfView.DisplayMode := dmSingleContinuous;
  PdfView.FitMode := pfmFitWidth;
  PdfView.AllowUserTextSelection := True;
  PdfView.Active := True;
end;

procedure TForm1.HighlightInvoiceNumber;
begin
  Pdf.PageNumber := PdfView.PageNumber;
  if Pdf.FindFirst('Invoice', []) >= 0 then
    PdfView.HighlightSearchText('Invoice', False, False);
end;

procedure TForm1.SaveArchiveCopy(const OutputFile: string);
begin
  if not Pdf.SaveAsPdfA(OutputFile, pac1b) then
    raise Exception.Create('The PDF/A archive copy could not be saved.');
end;

典型使用场景

  • 内嵌 PDF 查看、搜索、打印和表单工作流的文档管理系统。
  • 需要 PDF 审阅、提取、附件处理、归档就绪输出检查、批量 预检 清单和报告附件的会计与发票应用。
  • 法律、工程、医疗和政府桌面软件,用户必须在不离开应用的情况下检查、打印、验证、报告和保存 PDF 文档。
  • 合规与摄取工具,需要在将文件路由到外部验证器或归档系统前执行可重复的 PDF/A、PDF/X、PDF/UA、PDF/E、PDF/R 或 PDF/VT marker 检查。
  • 需要快速 PDF 显示、页面 光栅ization、可复制文本和受控打印的报表查看器与内部业务工具。


发现 Delphi PDF Component & Spreadsheet Development 的更多内容

订阅产品更新

订阅后可通过电子邮件接收最新文章。