PDFium Delphi Component 總覽
| 產品 | PDFium Delphi Component —— 專為 Delphi、C++Builder 與 Lazarus 打造的專業原始碼級 PDF 應用程式 SDK |
|---|---|
| 適用情境 | 在原生應用程式中推出高效能 PDF 閱讀器、審閱工具、文件工作流程與無障礙閱讀體驗 |
| IDE 支援 | Delphi 與 C++Builder XE5 至 13.1 Florence(Win32、Win64);Lazarus / Free Pascal LCL |
| 引擎職責 | PDFium —— Chromium PDF 顯示背後的開放原始碼引擎家族 —— 負責頁面彩現與文件讀取;V8 / XFA 執行階段 DLL 為選用項目 |
| 應用層 | 55 個單元、115,000 行 Object Pascal,TPdf 有 475 個 public 成員,TPdfView 有 152 個,涵蓋 PDFium 未提供的檢視器、序列化、簽章、加密、標準與無障礙各層 |
| 數位簽章 | PAdES B-B / B-T / B-LT / B-LTA 簽章(ETSI EN 319 142-1)、CMS / CAdES 容器、RFC 3161 時間戳記、Document Security Store |
| 加密 | PDF 2.0 AES-256 寫入支援(ISO 32000-2)、ISO/TS 32003 AES-GCM、ISO/TS 32004 PDF MAC,建置於純 Pascal 的 AES / SHA / HMAC / ASN.1 堆疊之上 |
| 標準 | PDF/A(第 1-4 部分)、PDF/X(至 X-6)、PDF/UA、PDF/E、PDF/VT(至 VT-2s)、PDF/R 驗證器,並附儲存與標記注入輔助方法 |
| PDF 輸出 | 自建序列化器:線性化 Fast Web View、物件流與交互參照流封裝、僅寫入變更物件的增量修訂、經驗證的修復副本 |
| 閱讀器範例 | 34 個可直接執行的專案:專業閱讀器參考實作、互動實驗、無障礙工作台、標準與印前檢查工具、CJK 與 RTL 文字實驗 |
| 大型檔案 | 隨需存取,數 GB 文件無須事先整份載入記憶體;支援平行頁面彩現與有上限的工作儲存區 |
| 原始碼 | 每份授權都包含完整的 Object Pascal 原始碼 |
| 授權 | 免權利金、一次性付費,依級距 $350-$4200;續約為標價的 40% |
| 目前版本 | 3.51.0 (2026-08-16) |
| 評估版 | 免費評估套件下載 |
Delphi 原生 PDF 檢視與文件工作流程
引擎的終點,產品的起點
PDFium 是轉譯器。它繪製頁面、擷取文字、讀取既有結構——就只有這些。它沒有簽章、沒有加密寫入、沒有標準驗證器、沒有線性化、沒有增量修訂寫入器,也不支援 XFDF 或 XMP。單純包裝 PDFium C API 的產品,就完全繼承這些侷限。
PDFium Delphi Component 提供約 115,000 行 Object Pascal,分布在 55 個單元中。其中超過 62,000 行落在 36 個於 PDFium API 中完全找不到對應的單元裡——密碼學、簽章、加密、六套標準驗證器、PDF 序列化器、XFDF、XMP、版面配置與文字塑形。全部以 Pascal 撰寫,對照 ISO、ETSI、IETF 與 FIPS 公開條文查核,並隨每份授權以原始碼交付。
| 能力 | PDFium 引擎 | 由 PDFium Delphi Component 實作 |
|---|---|---|
| 數位簽章 | 只能讀取既有的簽章字典 | PAdES B-B / B-T / B-LT / B-LTA 簽署、符合 RFC 5652 的 CMS / CAdES SignedData、RFC 3161 時戳用戶端、DSS 與 VRI 注入、Windows CNG 金鑰(RSA-PSS、PKCS#1、ECDSA)、私鑰永不離開服務端的遠端 / HSM 簽署,以及憑證鏈信任驗證 |
| 加密 | 可開啟加密檔案,但無法寫入加密 | ISO 32000-2 AES-256(V5 / R6 演算法 2.B 金鑰衍生)、ISO/TS 32003 AES-GCM、ISO/TS 32004 PDF MAC,以及完整的串流與字串加密掃描 |
| 密碼學基本元件 | 未對外提供 | 純 Object Pascal 的 AES-128/256 CBC 與 GCM、SHA-256/384/512、SHA-3、HMAC、ASN.1 DER 讀寫器,並以 FIPS 197 與 FIPS 180-4 測試向量驗證 |
| 標準符合性 | 沒有任何驗證器 | PDF/A 第 1 至 4 部分、PDF/X 至 X-6、PDF/UA-1、PDF/E-1、PDF/VT-1/2/2s、PDF/R-1——條文層級驗證器、標記注入,以及依設定檔而異的儲存輔助函式 |
| PDF 序列化 | 單一循序的整檔儲存 | 含 Annex F 提示表的線性化 Fast Web View、物件串流與 xref 串流封裝、逐位元組保留前綴的髒物件增量修訂,以及經嚴格模式複驗的修復副本 |
| 受損文件 | 靜默復原,不產生報告 | strict、compatible 與 recovery 三種載入策略,並附結構化診斷:重建路徑、毀損位移、衝突修訂與預算狀態 |
| 表單資料交換 | 沒有 XFDF 或 FDF API | XFDF(ISO 19444-1)與 FDF 匯入匯出,涵蓋欄位值與 18 種註解子類型 |
| 中繼資料 | 只讀取傳統的 info 字典 | 具型別容器的 XMP 封包讀寫器,供每一種標準設定檔使用 |
| 網路與規模 | 只有位元組範圍回呼,之上一無所有 | 漸進式文件工作階段、具去重、合併、有限重試與取消機制的優先權位元組範圍排程器、平行頁面轉譯,以及可溢寫至關閉即刪暫存檔的有界工作儲存區 |
| 應用程式層 | C 控制代碼與回呼 | 三個已註冊的 VCL / LCL 元件、475 個公開 TPdf 成員與 TPdfView 上的 152 個成員、檢視器狀態、縮圖、閱讀工作階段,以及 34 個可直接執行的專案 |
團隊不必從零設計檢視器狀態、互動、非同步轉譯、文字對映、表單焦點、頁面導覽、無障礙行為、簽章容器、加密字典與修訂寫入器,而是從經過測試的元件與可運作的閱讀器架構起步,再依產品需求調整隨附的 Object Pascal 原始碼。
大型 PDF 近乎即時開啟:在 2.x GB 範例檔的內部測試中,可定位的隨需存取讓第一個畫面在整份文件讀完之前就已可用;實際結果取決於儲存裝置、文件結構與硬體。
可利用公開的 檢視器範例與大型檔案測試流程,以你自己的 PDF、儲存裝置與目標硬體重現「開啟到首屏」的量測。
當 PDF 體驗應當內嵌在應用程式中,而不是交給外部檢視器時,就適合使用它。套件內包含視覺與非視覺元件、Object Pascal 原始碼、專業閱讀器參考應用程式、聚焦的工作流程範例、PDFium DLL、可選的 V8 / XFA runtime DLL、指令列預檢範例、迴歸測試,以及應用程式層整合與底層 PDF 操作的說明文件。
PDFium Delphi Component 支援 Delphi XE5 到 Delphi 13.1 Florence,以及 C++Builder XE5 到 C++Builder 13.1 Florence,覆蓋 Win32 和 Win64 目標。還包含適用於 LCL 工作流程的 Lazarus / Free Pascal 包和示範。
主要能力
- 高階應用程式 API:直接操作 Delphi 原生的文件與檢視器物件,不必在每個畫面、背景工作、表單流程與清理路徑中反覆接線原始的 PDFium 控制代碼。
- 檢視器 UI:將
TPdfView放到表單上即可取得縮放、旋轉、符合模式、單頁與連續版面配置、封面感知跨頁、頁面陰影、安全連結點選、使用者文字選取、複製到剪貼簿與表單焦點工作流程。 - 縮圖導覽:在檢視器旁加入
TPdfThumbnailView,提供可捲動的頁面縮圖、滑鼠停留回饋、選取醒目提示與點選跳頁。 - 轉譯:將頁面與圖磚轉譯為 bitmap,在可行時使用零複製 DIB 寫入,執行可取消的漸進式轉譯,透過
RenderPagesParallel平行轉譯一組頁面,在已載入的 DLL 有匯出時存取底層 Skia hook,並讓大型頁面保持回應。 - 串流與大型檔案:從磁碟、記憶體、位元組陣列或自訂的可定位串流載入,搭配隨需 PDFium 讀取,讓大型或遠端來源的文件不必預先複製到記憶體。
- 大型檔案啟動:不必等待完整的預先記憶體複製即可開始檢閱數 GB 的 PDF;檢視器採用可定位的隨需 PDFium 存取,依需要讀取文件區塊。
- 文字與搜尋:擷取頁面文字,向前或向後搜尋,醒目提示相符項目,建立全文件搜尋結果清單,並檢查字元矩形、原點、角度、產生字元、字型家族、字重、大小、ascent、descent 與內嵌字型狀態。
- 結構化文字:
GetStructuredText依字元幾何、字型中繼資料、文字物件識別與 Tagged PDF 語意,建立頁、區塊、行與樣式跨距的階層;文件未帶標籤時則回退為實體版面排序。 - 表格擷取:
ExtractTables與ExtractDocumentTables結合單字方框與轉換後的路徑框線,偵測有框線與以空白對齊的表格,保留合併儲存格、評估信賴度、標記跨頁延續,並輸出 CSV 或 JSON。 - 語意重排為 HTML:
BuildReflowDocument把固定版面的 PDF 轉成可重複使用的節點樹,其安全 HTML 輸出保留標題、段落、清單、圖片、頁面區段與表格跨距——適用於自適應顯示、無障礙與內容再利用。 - 表單:處理 AcroForm 欄位、XFA 狀態偵測、可選 V8 / XFA helper 可用性、選取的表單文字、表單 undo / redo、產生的表單外觀、欄位 flags 與 flattening。
- 表單資料交換:匯出與匯入 XFDF(ISO 19444-1)與 FDF(ISO 32000-1 §12.7.11),涵蓋欄位值與 18 種註解子類型——這些格式 PDFium 完全沒有提供 API,全部以 Pascal 在元件自有的註解與欄位模型上實作。
- OCR 接入:把任何辨識引擎接上
IPdfOcrProvider,以既定像素格式接收頁面 bitmap,回傳單字四邊形,再由元件寫入可搜尋文字層,並提供逐頁狀態回報與既有文字略過。 - 註解與連結:建立、刪除、統計與檢查註解;處理頁面連結、網頁連結、書籤目標、文件 JavaScript 動作、URI / Launch 風險面,以及檢視器點選事件。
- 文件組裝:建立文件,新增或刪除頁面,依標籤或實體索引匯入頁面範圍,移動頁面,組合 N-up 頁面,將頁面複用為 Form XObjects,套用浮水印或圖章,更新頁面內容並管理頁面邊界框。
- PDF 輸出與修訂:儲存含頁面位移與共用物件提示表的線性化 Fast Web View 檔案,將物件封裝進物件串流並提供完整的 type-2 xref 覆蓋,附加逐位元組保留前一份輸出的髒物件增量修訂,並產生交付前由獨立嚴格載入複驗過的修復副本。
- 數位簽章:簽署至 PAdES 基準等級 B-B、B-T、B-LT 或 B-LTA;建立帶有該等級所需簽署屬性的 CMS / CAdES SignedData;向 TSA 請求 RFC 3161 時戳權杖;把憑證鏈收進 Document Security Store;加上封存時戳;並可同步或非同步地對任何文件執行條文層級的 PAdES 檢查與憑證鏈信任驗證。
- 遠端與 HSM 簽署:以
PreparePadesRemoteSignature與CompletePadesRemoteSignature把作業拆成兩段——應用程式產生預留位置文件與夾帶 SHA-256 摘要的可攜簽署請求,遠端服務或硬體模組回傳分離式 CMS,再由元件注入。私鑰完全不必進到工作站。 - 加密與完整性:寫入具正確 R6 金鑰衍生與權限區塊的 PDF 2.0 AES-256 加密,必要時採用 ISO/TS 32003 AES-GCM,附加 ISO/TS 32004 PDF MAC 權杖,並使用以 Object Pascal 撰寫、不依賴任何外部 C 程式庫的 AES、SHA-2、SHA-3、HMAC 與 ASN.1 基本元件。
- 內容與安全檢查:擷取影像,轉譯物件 bitmap,檢查物件邊界與透明度,讀取附件、中繼資料、簽章、權限、語言、頁面標籤、頁面模式、檢視器偏好設定、Tagged PDF 結構與檔案識別碼。
TPdfStreamInspector在明確的來源、原始、解碼、膨脹比與串流數量預算下解碼任意串流物件,因此解壓縮炸彈只會回傳結構化狀態,而不會耗盡記憶體。 - 無障礙閱讀:建立句子層級的閱讀單元,把朗讀文字對映回 PDF 內容,驅動單字層級的閱讀醒目提示,導覽表單欄位,檢查標籤結構,並套用低視能 bitmap 轉換以支援輔助閱讀流程。
- 預檢報告:產生以標準為導向的稽核報告,包含 pass、action-required、review、priority、issue category、category-count 與 next-action 欄位;匯出人類可讀的 TXT、HTML 與 Markdown,或機器可讀的 JSON、CSV、SARIF 2.1.0、JUnit XML 與 NDJSON;產生穩定的 SHA-256 報告指紋;執行批次彙總;把報告附加到審閱副本;並以指令列執行器的結束碼把關建置。
- 列印:支援頁面範圍、份數、縮放偏好、N-up 組合、奇偶頁篩選、灰階輸出、檢視器偏好中繼資料,以及用於雙面與紙張處理整合的
SetPdfPrintPaperHandlingDevMode。
合規導向的 PDF 工作流程
PDFium Delphi Component 為需要可預測 PDF 交付、歸檔審查、列印工作流程、無障礙檢查、工程文件、可變資料輸出或 點陣化鎖定 交付的團隊提供以標準為導向的驗證和儲存 API。
| 工作流程 | PDFium Delphi Component 支援 | 應用程式負責事項 |
|---|---|---|
| PDF/A | ValidatePdfA、SaveAsPdfA、PdfAConformance 涵蓋 ISO 19005 第 1 至 4 部分——包含以 PDF 2.0 為基礎的 A-4 base、A-4f 與 A-4e 設定檔——並提供 OutputIntent 檢查、XMP 中繼資料檢查、字型內嵌檢查、RoleMap 與 ParentTree 結構檢查、Annex C 實作上限、加密與 JavaScript 限制,以及依設定檔而異的儲存輔助函式。 | 選擇封存目標,提供正確的文件中繼資料與色彩資料,並在交付前審視所有回報的驗證問題。 |
| PDF/X | ValidatePdfX、SaveAsPdfX、PdfXConformance 自 X-1a 起至以 PDF 2.0 為基礎的 X-6,含 OutputIntent 與 ICC 處理、依設定檔把關的透明度與色彩空間限制、TrimBox / ArtBox / BleedBox 幾何檢查,以及印刷安全設定檔檢查。 | 為目標 PDF/X 設定檔提供適合生產的 output intent 資料、頁面幾何與列印設定。 |
| PDF/UA | ValidatePdfUa、SaveAsPdfUa、PdfUaConformance、語言與標籤檢查、結構樹檢查、marked-content 審視,以及無障礙設定檔驗證。 | 在來源流程中撰寫有意義的閱讀順序、標題、清單、表格語意、替代文字與文件語言。 |
| PDF/E、PDF/VT、PDF/R | ValidatePdfE、ValidatePdfVT、ValidatePdfR、對應的 SaveAs... API,以及工程、可變資料與點陣導向 PDF 設定檔的符合性屬性。PDF/VT 涵蓋 DPart 階層、document-part 中繼資料與 VT-2s 多部分 MIME 串流封裝;PDF/E 注入內嵌的 sRGB output intent;PDF/R 強制每頁單一 strip 影像與允許的編碼清單。 | 把設定檔對應到業務流程,並讓來源內容保持在所選標準允許的功能集內。 |
| PAdES 簽章 | SignPades、SignPadesToStream、SignPadesBytes、SaveAsPadesDss 與 ValidatePadesCompliance 涵蓋 ETSI EN 319 142-1 基準等級 B-B、B-T、B-LT 與 B-LTA,含 RFC 3161 時戳、Document Security Store 注入、ESIC 延伸標記,以及 26 個條文層級驗證碼。SignPadesWithPdfA 把封存轉換與簽署合併為單一流程。 | 提供簽署憑證與其憑證鏈,為需要時戳的等級選定 TSA 端點,並訂定組織的保存與撤銷政策。 |
| 預檢自動化 | FPdfPreflightReport 與 PreflightReportCli 把 PDF/A、PDF/UA、PDF/E、PDF/X、PDF/R 與 PDF/VT 的結果彙整成人類可讀的 TXT、HTML 與 Markdown,或機器可讀的 JSON、CSV、SARIF 2.1.0、JUnit XML 與 NDJSON,並提供確定性排序與穩定的 SHA-256 指紋。 | 決定 pass、action-required、review 或問題計數是否應阻斷 CI、交付或封存匯入。 |
這些 API 旨在讓標準相關工作在程式碼中可見。驗證結果、預檢摘要和儲存輔助功能可幫助應用程式拒絕或修正有問題的輸出,而不是靜默交付一個稍後才在歸檔、列印或無障礙流程中失敗的檔案。內建驗證器聚焦 marker-level 和部分 file-level 檢查;需要正式 content-level 認證的團隊應將其與專用驗證引擎配合使用。
元件架構
TPdf: 非視覺文件元件,用於載入、stream 存取、儲存、轉譯、搜尋、擷取、驗證、表單存取、頁面操作、後設資料、附件、註解、預檢報告和 PDF 設定檔工作流程。TPdfView: 視覺檢視器元件,用於顯示模式、使用者互動、連結、滾動、縮放、選擇、表單焦點、醒目提示、頁面導覽和剪貼簿工作流程。TPdfThumbnailView: 可滾動縮圖側邊欄,用於頁面導覽、當前頁跟蹤、懸停反饋和檢視器配套佈局。- 輔助單元:總計 55 個 Object Pascal 單元。除引擎繫結外,它們分為密碼學(
FPdfAes、FPdfAesGcm、FPdfSha256、FPdfSha512、FPdfSha3、FPdfHmac、FPdfAsn1)、簽署(FPdfPades、FPdfCms、FPdfTsa、FPdfCryptoWin)、標準(FPdfPdfa、FPdfPdfx、FPdfPdfua、FPdfPdfe、FPdfPdfvt、FPdfPdfr、FPdfPreflightReport)、序列化與完整性(FPdfCompress、FPdfEncrypt、FPdfMac、FPdfStreamInspect、FPdfContentNormalize),以及內容服務(FPdfXfdf、FPdfXmp、FPdfLayout、FPdfMeasure、FPdfTextShaping、FPdfStructTree、FPdfAsync、FPdfMatrix)五大分組。
上述每一個單元都是你會收到、也能單步追蹤的原始碼。密碼學基本元件皆以 Object Pascal 撰寫,並對照 FIPS 197 與 FIPS 180-4 公布的測試向量驗證,因此簽署與加密不會替你的部署加上任何外部 C 程式庫,也不會替你的安全審查加上任何第三方二進位檔。
下載 PDFium Delphi Component 示範包
2026-08-16 版本 3.51.0:PDFium Delphi Component 版本資訊 | API 參考。3.51.0 把八個先前無法取用的 TPdf 成員依文件所述公開,並補齊英文參考文件,讓 TPdf 與 TPdfView 的每一個公開成員都有專屬頁面——共有 88 個成員新增頁面——連同公開簽章可觸及的列舉與記錄型別一併補上。
授權與價格
可透過 2Checkout 使用信用卡/簽帳金融卡、PayPal、AliPay 或電匯付款。 每個新的 PDFium Delphi Component 授權均包含 Object Pascal 原始碼、一年更新及一年電子郵件支援。
| 授權 | 開發者 | 價格 | 購買 |
|---|---|---|---|
| Single | 1 名開發者 | $350 | 購買 |
| Small Business | 最多 10 名開發者 | $700 | 購買 |
| Medium Business | 最多 30 名開發者 | $1050 | 購買 |
| Enterprise | 單一國家內同一公司及其子公司的全體開發人員 | $2100 | 購買 |
| Corporate | 全球範圍內同一公司及其子公司的全體開發人員 | $4200 | 購買 |
Enterprise 與 Corporate 原始碼加值內容:PDFium Delphi Component Enterprise 與 Corporate 皆包含專用工具級範例 PDF Intake & Accessibility Review Workbench Pro 的完整原始碼。通常僅用於內部驗證的完整測試套件原始碼可另行索取。
現有客戶續費:全價的 40%,可隨時取消。開啟 PDFium Delphi Component 購買與續費頁面。
包含的示範
套件內包含適用於 Delphi、C++Builder 和 Lazarus 的可直接執行範例,覆蓋多數團隊在生產整合前需要驗證的核心工作流程。
- PdfViewer: 完整檢視器,包含文字選取、搜尋、書籤、頁面導覽、列印、連結和顯示模式。
- ViewerInteractionLab 和 SearchAndSelect: 顯示模式、符合模式、頁面顏色、旋轉、搜尋醒目提示、全頁結果清單、選取文字預覽、複製、清除和座標對映。
- MultiPageViewer: 以文件為導向審閱應用的連續、雙頁、封面感知和多頁檢視器行為。
- SplitView: 同一文件的兩個同步檢視,用於比較和審閱工作流程。
- ContentExtractionLab: 單一工作流程涵蓋後設資料、文字、頁面物件、影像、附件、連結、註解、書籤、字型和字元度量,並支援 TXT / JSON 匯出。
- PDFtoJpg, BatchExport 和 ImageToPDF: 點陣匯出、批次多檔案轉換、串流載入、DPI / 品質控制、密碼輸入、進度和協作式取消。
- MergePDF, SplitPDF, CreatePDF 和 WatermarkStamp: 文件組裝、程式化 PDF 建立、可複用 Form XObject 水印、角標印章和頁碼標籤。
- FormFill, FontProperties 和 Attachment: 表單值編輯和 flattening、索引化字型和字元檢查,以及嵌入檔案擷取或建立。
- SecurityAudit: 只讀檢查許可權、附件、JavaScript、URI / Launch 連結、網頁連結、簽章、XFA 狀態、runtime helper 可用性,以及 TXT / JSON 審計報告。
- XfdfLab 與 XfaLab:透過 XFDF 與 FDF 來回傳遞表單資料與註解,並在可選的 V8 / XFA runtime 下實測 XFA 狀態偵測。
- CJKTextLab 與 RTLTextLab:中文、日文、韓文、阿拉伯文與希伯來文的文字處理——在天真的字元順序假設會失效的書寫系統上,示範擷取、搜尋、選取幾何與塑形行為。
- AnnotationsLab 與 NavigationLab:以四點座標幾何建立與編輯標記註解,以及書籤、目標、具名動作與頁面標籤的導覽模式。
- AccessibilityWorkbenchCli 與 IntakeWorkbenchCli:無視窗的審閱與匯入管線,用於批次無障礙評估與文件收件,適合排程工作與 CI,而非桌面視窗。
- StandardsLab, PreflightReport 和 PreflightReportCli: PDF/A、PDF/UA、PDF/E、PDF/X、PDF/R 和 PDF/VT 驗證與儲存工作流程,報告預覽,TXT / HTML / Markdown / JSON / CSV 匯出,批次資料夾、排序摘要、防止重名的報告、報告附件和以 CI 為導向的
failon=結束行為。
團隊選擇 PDFium Delphi Component 的原因
- 原生 Delphi 整合: 真正的 VCL 元件和 Object Pascal 原始碼,而不是 ActiveX 控制元件或瀏覽器承載的檢視器。
- PDFium 轉譯品質: 使用 Chromium PDF 顯示背後的同一開源 PDF 引擎家族,同時讓整合留在 Delphi 程式碼庫內。
- 檢視器與 API 合一: 將成熟的螢幕 PDF 檢視器與底層文件存取、搜尋、表單、列印、驗證 API 和可指令碼化的預檢報告結合在一個包內。
- 免執行階段版稅: 建立桌面應用時無需按文件或終端使用者支付執行階段費用。
- 現代 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 測試覆蓋主要文件、轉譯、表單、結構、列印、縮圖和檢視器工作流程。
- 簽章與加密不必再找第二家供應商:PAdES B-B 至 B-LTA、RFC 3161 時戳與 PDF 2.0 AES-256 加密都是本函式庫的一部分。多數 Delphi 團隊走到這一步時得再加一套簽署 SDK 或部署 OpenSSL;在這裡只要一個套件、一份授權,而且是你能審查的 Pascal 原始碼。
- 標準工作在程式碼中看得見:六大 ISO 標準系列各有真正的驗證器與條文層級結果碼,不是一個打勾方塊。TXT、HTML、Markdown、JSON 與 CSV 的預檢輸出可直接接進 CI,指令列執行器也會依你選定的條件回傳失敗結束碼。
- 引擎沒有的 PDF 寫入層:線性化 Fast Web View、物件串流封裝,以及逐位元組保留前一份檔案的髒物件增量修訂——正是封存系統、網頁遞送與稽核軌跡實際要求的輸出格式。
- 把敵意輸入當敵意處理:串流解碼、內容正規化與結構掃描全部在明確的來源、輸出、token、巢狀深度與膨脹比預算下執行,因此格式錯誤或蓄意構造的 PDF 只會回傳結構化狀態,而不會拖垮行程。
程式碼範例
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;
procedure TForm1.SignForLongTermArchive(const OutputFile: string);
var
Options: TPadesSignOptions;
begin
Options := TPadesSignOptions.Default;
Options.CertificateThumbprint := SignerThumbprint;
Options.Level := plB_LTA; // 簽章 + TSA 權杖 + DSS + 封存時戳
Options.TsaUrl := 'https://tsa.example.com/tsr';
Options.Reason := 'Approved for release';
if not Pdf.SignPades(OutputFile, Options) then
raise Exception.Create('The document could not be signed.');
end;
procedure TForm1.CheckSignatureLevel;
var
Result: TPadesValidationResult;
begin
Result := Pdf.ValidatePades;
if Result.IsCompliantAt(plB_LTA) and Result.IsCryptographicallyValid then
ShowMessage(Format('%d signature(s), %d archive time-stamp(s), verified.',
[Result.SignatureCount, Result.DocTimeStampCount]))
else
ShowMessage('The document does not reach the required PAdES baseline.');
end;
典型使用場景
- 內嵌 PDF 檢視、搜尋、列印和表單工作流程的文件管理系統。
- 需要 PDF 審閱、擷取、附件處理、歸檔就緒輸出檢查、批次預檢清單和報告附件的會計與發票應用。
- 法律、工程、醫療和政府桌面軟體,使用者必須在不離開應用的情況下檢查、列印、驗證、報告和儲存 PDF 文件。
- 合規與攝取工具,需要在將檔案路由到外部驗證器或歸檔系統前執行可重複的 PDF/A、PDF/X、PDF/UA、PDF/E、PDF/R 或 PDF/VT marker 檢查。
- 受規範產業的簽署文件流程——合約、發票、出貨單與紀錄,必須帶有可信時戳的 PAdES B-T 或 B-LTA 簽章,並在數年內維持可驗證。
- 需要 PDF 2.0 AES-256 加密與明確權限設定的機密文件散發,且加密由應用程式自行寫入,而非事後再用外部工具處理一次。
- 需要快速 PDF 顯示、頁面點陣化、可複製文字和受控列印的報表檢視器與內部業務工具。
何時選擇 PDFium Delphi Component
- 當應用程式必須檢視、驗證、簽署、加密並交付 PDF 文件時,選擇 PDFium Delphi Component:專業閱讀器基礎架構、PAdES 簽署、PDF 2.0 加密、六套標準驗證器、線性化與增量輸出、大型檔案效能、無障礙支援、表單與列印,全部來自同一套附原始碼的套件。
- 當應用程式產生文件,而你寧可完全不隨包散發轉譯引擎時,選擇 HotPDF Component:HotPDF 自帶轉譯器、影像編解碼器、字型引擎、條碼產生、XFA 版面配置與 Factur-X 驗證,並直接編譯進你的執行檔。
- 當單一工具組必須涵蓋整個生命週期,或你需要 OCR、條碼識別、PKCS#11 硬體權杖簽署、歐盟信任清單驗證,或供非 Delphi 呼叫端使用的 DLL / ActiveX / Dylib 介面時,選擇 PDF Library for Delphi。
想比較整個產品家族?請參閱 PDF 開發元件庫總覽,其中並列比較 PDFium Delphi Component、losLab PDF Library 與 HotPDF Component。
常見問題
PDFium Delphi Component 只是 PDFium DLL 的薄封裝嗎?
不是。PDFium 只負責轉譯與讀取;它無法簽署文件、寫入加密、驗證 PDF 標準,也無法產出線性化、物件串流或增量修訂。套件中約 115,000 行 Object Pascal 裡,有超過 62,000 行位於 PDFium API 完全沒有對應的單元,實作的正是這些層:PAdES B-B 至 B-LTA 簽署、純 Pascal 的 AES / SHA / ASN.1 密碼學堆疊、PDF 2.0 AES-256 加密、六套 ISO 標準驗證器、自建的 PDF 序列化器、XFDF、XMP,以及檢視器、閱讀器與無障礙架構。
PDFium Delphi Component 使用什麼引擎?
PDFium Delphi Component 以 PDFium——即 Chromium PDF 顯示背後的同一個開放原始碼引擎家族——負責頁面轉譯與文件讀取。引擎未提供的部分全部由 losLab 以 Object Pascal 實作:元件模型、PDF 序列化與修訂層、數位簽章、加密、標準驗證、閱讀器架構、無障礙層、範例與測試。
PDFium Delphi Component 可以為 PDF 文件加上數位簽章嗎?
可以。它實作 ETSI EN 319 142-1 的 PAdES 基準設定檔 B-B、B-T、B-LT 與 B-LTA:依 RFC 5652 建構 CMS / CAdES SignedData、向 TSA 發出 RFC 3161 時戳請求、把憑證鏈收進 Document Security Store,以及加上封存時戳。簽署金鑰透過 Windows CNG 後端搭配 RSA-PSS、PKCS#1 或 ECDSA 使用。PDFium 本身只能讀取既有的簽章字典。
可以加密 PDF 文件嗎?
可以。SaveAsEncrypted 寫入 ISO 32000-2 AES-256 加密,包含演算法 2.B 的 R6 密碼雜湊衍生、/O /U /OE /UE /Perms 字典項目,以及完整的串流與字串加密。同時支援 ISO/TS 32003 AES-GCM 與 ISO/TS 32004 PDF MAC 權杖。AES、SHA-256/384/512、HMAC 與 ASN.1 基本元件皆為純 Object Pascal,不依賴任何外部 C 程式庫。
支援 Lazarus 和 Free Pascal 嗎?
支援。套件包含 Lazarus / Free Pascal 套件檔和 LCL 示範,也提供 Delphi 與 C++Builder 的 VCL 元件。
開啟超大型 PDF 的速度如何?
閱讀器採用可定位的隨需 PDFium 存取,不會先完整載入檔案。在實際測試中,2.x GB 的 PDF 幾乎可立即開始使用。
可以建立或編輯 PDF 文件嗎?
它支援文件組裝:建立文件、加入和刪除頁面、匯入頁面範圍、移動頁面、N-up 版面、水印、圖章和頁面內容更新。
支援 AcroForm 與 XFA 表單嗎?
支援。它可處理 AcroForm 欄位、焦點和選取文字、復原與重做、產生的外觀、欄位旗標、平面化,並偵測 XFA 狀態。
可以驗證哪些 PDF 標準?
六大標準系列,各自有專屬驗證器與對應的儲存或標記注入輔助函式:PDF/A(ISO 19005 第 1 至 4 部分,含以 PDF 2.0 為基礎的 A-4 base/f/e)、PDF/X(ISO 15930,含 X-6)、PDF/UA(ISO 14289-1)、PDF/E(ISO 24517-1)、PDF/VT(ISO 16612-2,含 VT-2s MIME 串流封裝)與 PDF/R(ISO 23504-1)。PAdES 基準結構則另外對照 ETSI EN 319 142-1 驗證。預檢報告可匯出為 TXT、HTML、Markdown、JSON、CSV、SARIF 2.1.0、JUnit XML 與 NDJSON。驗證器涵蓋標記層級以及持續增加的檔案層級條文;需要正式認證時,請搭配專用驗證引擎使用。
有執行階段權利金或按使用者收費嗎?
沒有。已授權的應用程式可免權利金散發,不收取按文件或最終使用者計算的執行階段費用。
授權包含什麼,續約如何計算?
新授權包含 Object Pascal 原始碼、一年更新和一年電子郵件支援。現有客戶可按完整價格的 40% 續約更新存取權。
發現 Delphi PDF Component & Spreadsheet Development 的更多內容
訂閱產品更新
訂閱後,最新消息會寄到你的電子郵件。
