PDFium Delphi Component Docs

PDFium VCL API 參考

Windows 使用 VCL 或 Lazarus Windows Widget Set。原生 Free Pascal/LCL 建置則使用 Linux Qt6 或 macOS Cocoa,並搭配相符的 PDFium 共用程式庫;工具鏈與執行環境需求請參閱原生 LCL 設定。VCL Delphi/C++Builder 包裝元件仍走 Windows 路徑;原生 Delphi macOS 加密與時間戳記輔助功能的驗收,和視覺包裝元件分開進行

輔助單元

單元說明
FPdfAsync為回應靈敏的背景 PDF 工作提供結構化取消、可組態的 future,以及有界優先權 worker 集區
FPdfMatrix為 PDFium 頁面物件 API 提供仿射組合、診斷、貼合矩形映射、反算幾何、分解,以及批次點與矩形變換
FPdfMeasure加入 TPdf.MeasureText、MeasureTextWidth 與 WrapText 輔助方法,以 PDF 使用者單位進行文字版面配置
FPdfLayout建置分頁、標籤式、網格、Markdown、HTML、表格、影像、連結與可重複使用節點的版面
FPdfTextShaping將雙向 Unicode 文字塑形為有界的視覺字形段,具備可擴充的塑形器介面與 Windows Uniscribe 實作
FPdfProduction提供有界的色彩、字型、SVG、取代、XFA、條碼、Portfolio 與 RichMedia 正式環境工作流程
FPdfDiff有資源上限的頁面對齊、Unicode 文字差異與連通視覺區域
FPdfMerge以交易方式合併大綱、具名目的地與頁內連結,並獨立重新開啟驗證
FPdfOcrTesseract可選用的 Tesseract OCR 提供者,明確設定相依項目與辨識上限
FPdfFormMerge以交易方式合併 AcroForm 欄位,明確指定名稱衝突處理策略
FPdfBarcodeZXing可選用的原生條碼產生與辨識功能
FPdfStyledEdit經過驗證的 PDF 樣式文字取代,支援預覽與復原
FPdfSemanticDiff依穩定識別名稱比較註解與表單語意,提供變更前後的疊圖座標
FPdfColourLittleCms可選用的原生 ICC 轉換,直接處理原始 Gray、RGB 與 CMYK 樣本
FPdfDocumentColour有資源上限的 PDF 文件色彩轉換,明確回報不支援的物件
FPdfRedaction以交易方式遮除內容時,處理巢狀 Form、填色路徑與仿射影像幾何
FPdfStandardsExecution執行量測、GeoPDF、PDF/A 修復、PDF/UA、PDF/X、PAdES 證據、PDF/VT、PDF/E 與 PDF/R 工作流程
FPdfAsn1對有界 ASN.1 DER 資料進行編碼、導覽、解碼與驗證,支援高標籤識別碼、具型別值、規範檢查與資源上限
FPdfPreflightReport建立可查詢的標準報告、PDF/A 修復計畫、PDF/X 生產預檢、宣告式規則、資源預算、隔離的平行驗證、彙總與機器可讀匯出
FPdfBenchmark以載入、首頁、算繪、儲存、記憶體、語意、像素與獨立重開等關卡執行有界的效能與一致性測試集
FPdfXmp讀取、編輯並增量寫入具命名空間感知的有界 XMP 封包,支援具型別的 RDF 值並保留未知命名空間
FPdf standards helpers獨立的關聯檔案、PAdES、PDF/A、PDF/E、PDF/R、PDF/UA、PDF/VT 與 PDF/X 驗證及儲存 API
FPdfThumbnail提供 TPdfThumbnailView 可捲動縮圖導覽控制項
FPdfCompressTPdf 儲存管線使用的串流級 FlateDecode 壓縮、預設開啟動作注入、儲存後正規化與 PDF 版本檢查
FPdfContentNormalize掃描並正規化 PDF 內容序列,包含有界的行內影像處理
FPdfXfdf不需載入 pdfium.dll 的獨立 XFDF 表單欄位與註解匯入匯出
FPdfEditPDFium 頁面物件編輯繫結,外加獨立的 ARGB 顏色輔助函式
FPdfPdfvtMime建置並驗證單檔 PDF/VT-2s MIME 部件串流,內含行內 PDF/VT 文件、可重複使用附件與 ICC 描述檔
FPdfIccProfile執行有界的 ICC 標頭與標籤表驗證,支援 MD5、SHA-256、描述檔中繼資料與多語系描述比對
FPdfEncrypt寫入 AESV3-CBC 或 ISO/TS 32003 AESV4-GCM 加密 PDF,並驗證 AESV4 相容解密
FPdfAes純 Pascal 的 AES-128 與 AES-256 區塊加密,含金鑰擴展與 AES-256-CBC 串流包裝
FPdfHmac純 Pascal 的 HMAC-SHA256、HKDF-SHA256、常數時間位元組比較與安全位元組清除
FPdfMac建置並驗證 ISO/TS 32004 獨立 CMS AuthenticatedData 權杖
FPdfAesGcm純 Pascal 的 AES-GCM 認證加密,適用 AES-128 與 AES-256 金鑰
FPdfSha256純 Pascal 的 SHA-256 雜湊,含增量與單次輔助函式
FPdfSha512純 Pascal 的 SHA-512 與 SHA-384 雜湊,共用單一 context 型別
FPdfSha3純 Pascal 的 SHA3-256、SHA3-384、SHA3-512 與串流 SHAKE256 雜湊,用於 PDF 2.x 密碼學擴充
FPdfCms從分離式摘要與 ICmsSigner 密碼學後端建置 RFC 5652 CMS 與 CAdES SignedData
FPdfTsa適用 PAdES B-T 與 B-LTA 設定檔的 RFC 3161 時間戳授權伺服器用戶端
FPdfTsaWinRFC 3161 要求的 Windows WinHttp 時間戳傳輸後端
FPdfTsaFpc在 Linux 與 macOS 上以 libcurl 傳送 RFC 3161 時間戳請求的傳輸實作
FPdfTsaPosix原生 Delphi POSIX HTTP 傳輸,處理有資源上限的 RFC 3161 時間戳記請求
FPdfCrypto作用中密碼學後端之上的 PAdES 簽署者解析外觀層
FPdfTrustedList歐洲信任清單的驗證式剖析、快取、更新、信任錨點與合格服務評估
FPdfCryptoWinCNG 簽署、分離式 CMS 驗證、簽署者憑證擷取與僅快取系統信任評估的 Windows 後端
FPdfCryptoMacmacOS 後端:以 Keychain 身分簽章,並透過 CMSDecoder 與 SecTrust 驗證 CMS
FPdfCryptoSsl明確指定 OpenSSL 簽署憑證資料、獨立 CMS 驗證、有上限的 OCSP/CRL 證據,以及個別簽署者診斷;未實際檢查 OCSP 回應或回應者時,保留先前的 CRL 判定
FPdfCryptoOcsp在原生回應者驗證之前,先進行有上限的 OCSP DER 與時效預篩選
FPdfPkcs11PKCS#11 權杖簽章後端,在所有平台上都把私密金鑰留在權杖內部
FPdfSha1純 Pascal 實作的 SHA-1,僅用於按指紋比對憑證,絕不用作簽章摘要
FPdfBidiUnicode 雙向演算法(UAX #9)解析與視覺重排,不依賴任何平台
FPdfTextShapingHb面向沒有 Uniscribe 的平台的 HarfBuzz 文字整形後端

TPdf 元件方法

文件管理

方法說明
CreateDocument建立新的空白 PDF 文件
LoadDocument(Data: TMemoryStream; Buffered: Boolean = True)從記憶體串流載入 PDF 文件
LoadDocument(Data: Pointer; Size: Integer; Buffered: Boolean = True)從記憶體緩衝區載入 PDF 文件
LoadDocument從 FileName 載入 PDF 文件
LoadDocument(const Data: TBytes; Buffered: Boolean = True)從 TBytes 載入 PDF 文件
LoadCustomDocument(AStream: TStream; AOwnsStream: Boolean = False)透過 FPDF_LoadCustomDocument 從任意 TStream 串流讀取 PDF 文件;PDFium 依需求拉取區塊,而不是將整個檔案複製到記憶體。AOwnsStream = True 會將串流的生命週期移交給 TPdf 執行個體
TPdfLoadOptions, TPdfLoadReport, LastLoadReport選擇相容、嚴格或復原模式的載入方式,並檢視有界的 xref 稽核證據
SaveAsRepaired寫入完整的單一修訂版副本,並在交付前獨立執行嚴格載入驗證
TPdfRandomAccessStore具備定位 I/O 的執行緒安全可搜尋儲存區,並支援從有界記憶體單向溢寫至私有的刪除即關閉(delete-on-close)暫存儲存區
SaveMemoryLimit, SaveTemporaryDirectory, LastSaveSpillCount, LastSaveLargestMemoryBuffer設定並量測 TPdf 儲存暫存所使用的有界工作儲存區
SaveAs(Stream: TStream; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown): Boolean將文件儲存至串流,可選壓縮並執行明確的 PDF 1.3 至 PDF 1.7 一致性檢查;加密輸出搭配明確版本,以及 pv13 搭配 saIncremental,會引發 EPdfError
SaveAs(const FileName: string; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown): Boolean以原子方式將文件儲存至檔案,可選壓縮並執行明確的 PDF 1.3 至 PDF 1.7 一致性檢查;正規化或驗證失敗時,既有目標檔案維持不變
SaveAsLinearized(Stream: TStream; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown): Boolean寫入附錄 F Fast Web View 輸出,含首頁分組與已驗證的頁面位移與共用物件提示表
SaveAsLinearized(const FileName: string; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown): Boolean透過同目錄暫存檔以原子方式寫入 Fast Web View 輸出
SaveAsObjectStream(Stream: TStream; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown; MaxObjectsPerStream: Integer = 100; MaxDecodedBytesPerStream: Integer = 65536): Boolean寫入有界的 PDF 1.5+ 物件串流,附完整的 type-2 xref 串流
SaveAsObjectStream(const FileName: string; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown; MaxObjectsPerStream: Integer = 100; MaxDecodedBytesPerStream: Integer = 65536): Boolean透過同目錄暫存檔以原子方式寫入新版物件串流輸出
SaveAsNormalizedContent(Stream: TStream; out Report: TPdfContentNormalizeReport; const Options: TPdfContentNormalizeOptions; SaveOption: TSaveOption = saNoIncremental; PdfVersion: TPdfVersion = pvUnknown): Boolean寫入正規化並合併的邏輯頁面內容,附有界的語法驗證
SaveAsNormalizedContent(const FileName: string; out Report: TPdfContentNormalizeReport; const Options: TPdfContentNormalizeOptions; SaveOption: TSaveOption = saNoIncremental; PdfVersion: TPdfVersion = pvUnknown): Boolean透過同目錄暫存檔以原子方式寫入正規化內容輸出
SaveAsReachable(Stream: TStream; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean將文件重寫為單一乾淨修訂版,僅保留可從 catalog 與 trailer /Info 抵達的物件
SaveAsReachable(const FileName: string; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean透過同目錄暫存檔以原子方式寫入刪減後的單一修訂版副本
SaveAsDeduplicated(Stream: TStream; out Report: TPdfDedupReport; AllowSignedDocument: Boolean = False): Boolean重寫文件,掃除不可抵達的物件,並將相容的字型、影像與表單 XObjects 合併到單一代表物件
SaveAsDeduplicated(const FileName: string; out Report: TPdfDedupReport; AllowSignedDocument: Boolean = False): Boolean透過同目錄暫存檔以原子方式寫入去重後的單一修訂版副本
SaveAsFlateRecompressed(Stream: TStream; const Options: TPdfFlateRecompressOptions; out Report: TPdfFlateRecompressReport; AllowSignedDocument: Boolean = False): Boolean重寫文件,當節省空間超過呼叫端門檻時,以最高壓縮率重新編碼 FlateDecode 串流
SaveAsFlateRecompressed(const FileName: string; const Options: TPdfFlateRecompressOptions; out Report: TPdfFlateRecompressReport; AllowSignedDocument: Boolean = False): Boolean透過同目錄暫存檔以原子方式寫入 Flate 重新壓縮的副本
SaveAsInlineImagesExternalised(Stream: TStream; const Options: TPdfInlineImageExternaliseOptions; out Report: TPdfInlineImageExternaliseReport; AllowSignedDocument: Boolean = False): Boolean重寫文件,將 BI/ID/EI 行內影像擷取為可重複使用的 XObjects,並以 Do 運算子取代行內區塊
SaveAsInlineImagesExternalised(const FileName: string; const Options: TPdfInlineImageExternaliseOptions; out Report: TPdfInlineImageExternaliseReport; AllowSignedDocument: Boolean = False): Boolean透過同目錄暫存檔以原子方式寫入外部化後的副本
SaveAsReproducible(Stream: TStream; out Report: TPdfReproducibleReport; AllowSignedDocument: Boolean = False): Boolean重寫文件,移除非決定性的時間戳與 /ID,讓重複儲存產生位元組完全相同的結果
SaveAsReproducible(const FileName: string; out Report: TPdfReproducibleReport; AllowSignedDocument: Boolean = False): Boolean透過同目錄暫存檔以原子方式寫入可重現副本
ExportObjectGraph(Stream: TStream; const Options: TPdfObjectGraphInspectOptions; out Report: TPdfObjectGraphReport): Boolean以有界的具型別 JSON 匯出作用中的直接值與物件串流值,可選編碼串流的 SHA-256 摘要
SaveAsObjectGraphPatched(Stream: TStream; const Operations: TPdfObjectPatchOperations; out Report: TPdfObjectGraphReport; AllowSignedDocument: Boolean = False): Boolean套用交易式的具型別頂層字典修補,並在交付前對暫存結果執行嚴格載入驗證
SaveAsObjectGraphPatched(const FileName: string; const Operations: TPdfObjectPatchOperations; out Report: TPdfObjectGraphReport; AllowSignedDocument: Boolean = False): Boolean在完整物件圖修補交易成功後,以原子方式取代檔案
ExportObjectGraph / SaveAsObjectGraphPatched object-graph envelope兩個方法共用的物件圖檢查與修補模型頁,涵蓋帶版本的 pdf-object-graph-v1 信封與經嚴格載入驗證的交易式修補
InspectOptionalContent(out Inventory: TPdfOptionalContentInventory; Usage: TPdfOptionalContentUsage = ocuView; ConfigurationIndex: Integer = -1): Boolean讀取可選內容模型與生效的原生算繪狀態
SaveAsOptionalContentConfigured(Stream: TStream; const Changes: TPdfOptionalContentStateChanges; const Options: TPdfOptionalContentConfigureOptions; out Report: TPdfOptionalContentConfigureReport; AllowSignedDocument: Boolean = False): Boolean寫入並嚴格驗證呼叫端選擇的可選內容狀態
BeginEditTransaction(const LabelText: WString = ''; AllowSignedDocument: Boolean = False)從可重現的原生快照開始原子文件編輯交易
CommitEditTransaction: Boolean將變更後的交易儲存為有界、SHA-256 鏈結的雙向差異
RollbackEditTransaction還原交易前的文件,不加入復原項目
BeginPageObjectEditTransaction(AllowSignedDocument: Boolean = False)開始原子性的頁面範圍原生物件變更批次
CommitPageObjectEditTransaction: Boolean產生一次頁面內容,並提交所有成功的原生變更
RollbackPageObjectEditTransaction還原已驗證的批次前文件快照
PageObjectEditTransactionStatus: TPdfPageObjectEditTransactionStatus回報交易狀態、頁面、變更數與內容產生數
BeginPageObjectEditTransaction / CommitPageObjectEditTransaction / RollbackPageObjectEditTransaction / PageObjectEditTransactionStatus原子性的頁面範圍編輯交易模型,涵蓋有界快照、批次原生變更、單次內容重新產生與復原
UndoEdit: Boolean在目前日誌位置套用並驗證反向差異
RedoEdit: Boolean在目前日誌位置之後套用並驗證正向差異
EditCanUndo: Boolean回報已提交的文件交易是否可復原
EditCanRedo: Boolean回報已復原的文件交易是否可重做
ClearEditJournal釋放已提交的編輯歷程,同時保留目前文件狀態
ConfigureEditJournal(const Options: TPdfEditJournalOptions)設定項目、已儲存差異與快照上限
GetEditJournalInfo: TPdfEditJournalInfo讀取日誌位置、標籤、指紋、上限用量與復原或重做的可用性
ExportEditJournal(Stream: TStream)寫入可攜的有界日誌格式
ImportEditJournal(Stream: TStream; ApplyRecordedPosition: Boolean = True; AllowSignedDocument: Boolean = False)僅對其根指紋或已記錄指紋進行驗證並重播日誌
SaveRecoverySnapshot寫入含來源指紋與已驗證編輯日誌的核對和復原套件
RestoreRecoverySnapshot僅在核對和、來源、日誌與結果驗證通過後還原復原套件
InspectRecoverySnapshot讀取復原中繼資料並驗證套件,不套用編輯
EnableRecoveryAutosave(const FileName: string)在提交、復原或重做後,以原子方式重新整理明確指定的復原檔案
DisableRecoveryAutosave停止由提交驅動的復原寫入,但不刪除既有套件
RecoveryAutosaveFileName: string讀取復原自動儲存的絕對路徑,停用時為空字串
ValidatePagePlan(const Plan: TPdfPagePlan; ImportedSource: TPdf = nil; AllowSignedDocument: Boolean = False): TPdfPagePlanValidationReport將頁面操作編譯為精確的舊到新映射,並回報導覽、標籤、表單、結構、匯入功能與簽章影響,不變更任一份文件
GenerateLayout(Layout: TPdfLayoutDocument; out Plan: TPdfLayoutPlan; AllowSignedDocument: Boolean = False): Boolean先量測與分頁,再以原子方式附加原生文字、線條、表格框線、影像、頁面與可重複使用的頁面 XObjects,頁數總計穩定
GeneratePagedLayout(Layout: TPdfLayoutDocument; PagedPlan: TPdfLayoutPagedPlan; out Plan: TPdfLayoutPlan; AllowSignedDocument: Boolean = False): Boolean將命令串流至可搜尋儲存區,一次具體化一個有界頁面陣列,並依序附加 PDFium 頁面
GenerateTaggedLayout(Layout: TPdfLayoutDocument; out Plan: TPdfLayoutPlan; const Language: string = 'en-US'): Boolean產生新的語意版面文件,含原生 MCIDs、完整結構與父樹、替代文字、表格表頭關聯與標籤式連結
TPdfLayoutDocument.AddLink / AddSemanticNode / SetLastItemSemantics為版面項目附加 URI 連結、非視覺語意容器,以及角色、父節點、ID、語言、替代文字、清單與表格中繼資料
TPdfLayoutDocument.AddTable(Table: TPdfLayoutTable)快照並分頁表格,支援標題、重複表頭、可分割列、合併儲存格、連結、框線與連續標籤式語意
TPdfLayoutDocument.AddCachedNode(Node: TPdfLayoutCachedNode; Height: Single = 0; Width: Single = 0)建置惰性節點一次並快取其量測計畫,從單一原生 Form XObject 範本發出重複的放置
BeginIncrementalSave(AllowSignedDocument: Boolean = False)從穩定的語意快照開始變更物件修訂版工作階段,同時保留完全一致的加密或未加密來源前置資料
CommitIncrementalSave(Stream: TStream; out Info: TPdfIncrementalCommitInfo): Boolean只附加變更或新增的間接物件,繼承加密安全性參數,並驗證完整修訂鏈
CommitIncrementalSave(const FileName: string; out Info: TPdfIncrementalCommitInfo): Boolean持久清寫、重新開啟、驗證並透過同目錄側檔以原子方式取代,失敗時回復工作階段狀態
EndIncrementalSave釋放基準線與累積的修訂狀態
SaveAsEncrypted(const FileName: string; const Options: TPdfEncryptOptions): Boolean以 AESV3-CBC 或 ISO/TS 32003 AESV4-GCM 加密儲存作用中的 PDF
SaveAsEncryptedToStream(Stream: TStream; const Options: TPdfEncryptOptions): Boolean將加密的 PDF 輸出寫入任何可搜尋的 TStream,不經磁碟暫存
ValidatePdfMac(const Password: AnsiString): TPdfMacValidationResult對原始載入的來源位元組驗證 ISO/TS 32004 獨立 PDF MAC
SaveAsWithAssociateFiles(const FileName: string; const Options: TAssocFilesOptions): Boolean將作用中的 PDF 儲存至檔案路徑,同時依照 ISO 32000-2 §7.11.4 將關聯檔案注入 catalog 或頁面
SaveAsWithAssociateFilesToStream(Stream: TStream; const Options: TAssocFilesOptions): Boolean將含注入關聯檔案的 PDF 輸出寫入任何可搜尋的 TStream,不經磁碟暫存
CompareWith(Other: TPdf; const Options: TPdfDocumentDiffOptions; out Report: TPdfDocumentDiffReport): Boolean比較頁數、幾何、旋轉、擷取文字與容差感知的算繪像素
ImportImposed(const Options: TPdfImpositionOptions; out Plan: TPdfImpositionPlan; out Report: TPdfImpositionExecutionReport): TPdf透過批次原生 PDFium 組合建置 N-up 或騎馬釘輸出,並回報執行計數
ImportPages(Pdf: TPdf; const Range: string; PageNumber: Integer = 1): Boolean從另一份 PDF 文件匯入頁面。範圍格式:'1,3,5-7'
ImportPreferences(Pdf: TPdf): Boolean從另一份 PDF 匯入檢視器偏好設定

頁面操作

方法說明
AddPage(PageNumber: Integer; Width, Height: Double)在指定的 1 起算位置新增頁面,並使用給定尺寸(以點(point)為單位,72 點 = 1 英吋)。傳入 0 會視為相容別名,用於插入第一頁,插入的頁面會成為目前頁面
DeletePage(PageNumber: Integer)刪除指定索引的頁面
ExtractThumbnail(PageNumber: Integer): TBitmap解碼任一 1 起算頁面的內嵌縮圖,不變更目前頁面
GetPageBox(Box: TPdfPageBox): TPdfRectangle讀取目前頁面所選的頁面字典框
RemoveObject(Index: Integer; DestroyObject: Boolean = True)從目前頁面移除頁面物件並重新產生頁面內容
ReloadPage重新載入目前頁面
SetPageBox(Box: TPdfPageBox; const Rectangle: TPdfRectangle)在目前頁面設定所選的頁面字典框
UpdatePage將擱置的變更套用至目前頁面(呼叫 FPDFPage_GenerateContent)

文字操作

方法說明
Text(StartIndex: Integer = 0; Count: Integer = MaxInt): WString從目前頁面擷取文字
TextInRectangle(Left, Top, Right, Bottom: Double): WString從矩形區域擷取文字(頁面座標)
TextInRectangle(Rectangle: TPdfRectangle): WString從矩形擷取文字
ReadTextPageSnapshot(PageNumber: Integer; const Options: TPdfTextSnapshotOptions; out Status: TPdfTextSnapshotStatus): TPdfTextPageSnapshot在單次明確有界的原生處理中擷取文字、Unicode、幾何、樣式與正規化的文字物件中繼資料
TextPageSnapshot[PageNumber: Integer]: TPdfTextPageSnapshot從具修訂版感知的文字快照 LRU 回傳深層複本,由呼叫端持有,不變更目前頁面
TextSnapshotCacheCapacity, TextSnapshotCacheCount, TextSnapshotCacheHitCount, TextSnapshotCacheMissCount設定有界的保留量,並回報快取占用、命中與未命中
TPdfTextPageSnapshot / TPdfTextSnapshotStatus由呼叫端持有的文字快照記錄與有界讀取狀態模型,以及具修訂版感知的 LRU 快取行為
ReadPageObjectsSnapshot(PageNumber: Integer; const Options: TPdfPageObjectSnapshotOptions; out Status: TPdfPageObjectSnapshotStatus): TPdfPageObjectsSnapshot在明確預算下擷取不可變的頁面物件幾何、樣式、標記、裁剪、影像事實與文字事實
PageObjectsSnapshot[PageNumber: Integer]: TPdfPageObjectsSnapshot從具修訂版感知的頁面物件快照 LRU 回傳深層複本,由呼叫端持有
PageObjectSnapshotCacheCapacity, PageObjectSnapshotCacheCount, PageObjectSnapshotCacheHitCount, PageObjectSnapshotCacheMissCount設定有界的頁面物件保留量,並回報快取占用、命中與未命中
TPdfPageObjectsSnapshot / TPdfPageObjectSnapshotStatus由呼叫端持有的頁面物件快照記錄與有界讀取狀態模型,以及具修訂版感知的 LRU 快取行為
GetStructuredText(const Options: TPdfStructuredTextOptions): TPdfStructuredTextPage建置有界的頁面、區塊、行與樣式跨度模型,含原生字元幾何與可選的語意強化
ExtractTables(const Options: TPdfTableExtractionOptions): TPdfTables偵測目前頁面上的框線對齊與空白對齊表格,支援合併儲存格、信賴度、CSV 與 JSON 輸出
ExtractDocumentTables(const Options: TPdfTableExtractionOptions): TPdfTables跨每一頁擷取有界表格,並標記相符的跨頁延續鏈
BuildReflowDocument(const Options: TPdfReflowOptions; const CancellationToken: IPdfCancellationToken = nil): TPdfReflowDocument建置有界的語意頁面樹,並輸出回應式、已跳脫的 HTML,含標題、段落、清單、圖形與跨度感知表格
ApplyOcrSearchLayer(Provider, Options, Report, CancellationToken): Boolean透過 PDFium 算繪所選頁面,加入經信賴度篩選的隱形 OCR 文字,不重新編碼頁面影像
AddText(const Text, Font: WString; FontSize: Single; X, Y: Double; Color: TColor = clBlack; Alpha: Byte = $FF; Angle: Double = 0.0)在指定位置加入文字,可指定字型、顏色、透明度與旋轉角度
SetText(ObjectIndex: Integer; const Text: WString)設定既有文字物件的文字(未公開的 PDFium API,可能造成格式問題)
SetTextPositions(ObjectIndex: Integer; const Positions: TPdfSingleArray)設定既有文字物件的逐字元位置。位置從第二個字元開始,並相對於文字物件原點
FindFirst(const Text: WString; Options: TSearchOptions = []; StartIndex: Integer = 0; DirectionUp: Boolean = True): Integer開始文字搜尋,回傳字元索引,找不到時回傳 -1
FindNext: Integer向前繼續文字搜尋,回傳字元索引或 -1
FindPrevious: Integer向後繼續文字搜尋,回傳字元索引或 -1
CreateDocumentSearch(Text, Options, StartPage, Direction, CancellationToken): TPdfDocumentSearch建立惰性的正向或反向全文件搜尋,保留單頁原生控制代碼,支援取消與每個相符項的幾何資訊
CharacterIndexAtPos(X, Y, ToleranceX, ToleranceY: Double): Integer取得頁面位置上的字元索引
RectangleCount(StartIndex: Integer = 0; Count: Integer = MaxInt): Integer取得字元範圍的文字矩形數量
ReadingUnits: TPdfReadingUnits回傳句子層級的閱讀單元,供輔助聆聽閱讀與語意導覽使用
DocumentReadingUnits: TPdfReadingUnits為整份文件的可讀內容串流建置句子層級的 TPdfReadingUnit 記錄
PageWordBoxes: TPdfWordBoxes回傳含 FTextPage 範圍與頁面空間矩形的單字框,用於逐字高亮
SetReadingWord(const Word: TPdfWordBox)在 TPdfView 上將一個 TPdfWordBox 高亮為目前朗讀單字
ClearReadingWord清除 TPdfView 上目前的單字層級閱讀游標覆蓋
TrackReadingWordAt(PageNumber, CharIndex: Integer): Integer將頁面字元位移映射到包含它的 TPdfWordBox,予以高亮並回傳單字索引
SelectWordBox(const Word: TPdfWordBox): Boolean選取一個 TPdfWordBox 所代表的檢視器文字範圍
SelectWordSpan(const Words: TPdfWordBoxes; StartIndex, EndIndex: Integer): Boolean將同一頁的 TPdfWordBox 記錄範圍選取為單一檢視器文字選取範圍
BuildReadingUnits(Fragments)將 TPdfContentFragments 轉換為句子層級的 TPdfReadingUnit 記錄,不需載入 pdfium.dll
NextReadingUnitOfKind(Units, CurrentIndex, Kind, GoForward)找出 Kind 符合所要求 TPdfContentFragmentKind 的下一個或上一個 TPdfReadingUnit
BuildWordBoxes(PageText)將頁面文字分割為 TPdfWordBox 記錄,含單字文字與 FTextPage 字元範圍
WordBoxIndexAtCharIndex(Words, CharIndex)將字元索引映射回包含它的以零起始 TPdfWordBox 索引
SpokenTextAppend(var Spoken: TPdfSpokenText; const SpokenPart: WString; Page, StartIndex: Integer; SourceCount: Integer = -1)將一段映射後的朗讀文字加入 TPdfSpokenText
BuildSpokenTextFromWords(Words, FirstWord, LastWord)從連續的 TPdfWordBox 範圍建置 TPdfSpokenText
SpokenToPageChar(Spoken, SpokenOffset, Page, CharIndex)將語音引擎的字元位移轉換回 PDF 頁面字元
EstimateSpokenWordIndex(Words, ElapsedMs, WordsPerMinute)當語音引擎未回報單字位置時,估計朗讀單字索引

註解操作

方法說明
CreateAnnotation(const Annotation: TPdfAnnotation)在目前頁面建立新註解
DeleteAnnotation(Index: Integer)刪除指定索引的註解

表單扁平化

方法說明
GenerateFormAppearances為每一頁的每個表單元件重新產生 /AP 外觀串流(FPDF_FFLDraw)。請在 FormField[] 指定之後、SaveAs / FlattenPage / FlattenAllPages 之前呼叫
FlattenPage(nFlag: Integer = FLAT_NORMALDISPLAY): Integer將目前頁面的註解與表單元件扁平化為靜態內容。回傳 FLATTEN_SUCCESS、FLATTEN_NOTHINGTODO 或 FLATTEN_FAIL
FlattenAllPages(nFlag: Integer = FLAT_NORMALDISPLAY): Boolean扁平化文件中的每一頁。全部頁面成功時回傳 True
SetFormFieldFlags(Index: Integer; const Flags: TPdfFormFieldFlags)為目前頁面上指定註解索引處的表單欄位設定 AcroForm 欄位旗標
SetFormFieldFlagsAt(X, Y: Single; const Flags: TPdfFormFieldFlags)為指定頁面座標上的表單欄位設定 AcroForm 欄位旗標

XFA 操作

v3.125.3 的一般 Windows 程式庫會把最終緩衝寫入失敗回報為儲存失敗,與 v3.125.2 的 V8 修復一致。Windows V8 程式庫在 packet 陣列與支援的單一串流 XDP 儲存中會保留編輯過的文字,包括原始空白與增補 Unicode。在 v3.126.0 中,支援的單一串流 XDP 還會保留被取代的作用中 datasets 與表單封包以外的註解與處理指令,包括 UTF-8 與帶 BOM 的 UTF-16 輸入;無效的輸入編碼、不完整的標籤、無效的實體參照、格式錯誤的處理指令、被取代封包內的註解與處理指令、DTD 宣告與 XMLDSig 都會被拒絕。這些是有界的儲存防護,不是完整的 XML 驗證器。其他受支援的封包與根命名空間以語意方式保留;任意外部格式的完整性與逐位元組相同的 XML 序列化仍不在驗證範圍內

Windows 檢視器的複製、剪下與表單貼上在 v3.126.0 使用有界的 100ms 剪貼簿開啟重試額度,且不泵送 UI 訊息;剪貼簿仍無法存取時照樣回傳失敗,而失敗的剪下會保留欄位的原始文字與選取範圍

在 v3.126.1 中,動態 XFA 頁面的新增與移除會以已完成版面配置的實際總頁數更新 TPdf.PageCount 與 OnXfaPageCountChanged,不再把原生事件的差值當成總數

在 v3.126.2 中,完整 XFA 檢視保住了預設文字選取設定的安全性,鍵盤輸入時會取代選取的欄位文字,並在動態版面配置回呼返回後重新整理頁面控制代碼;唯讀欄位與 AllowFormEvents 的輸入限制維持不變

v3.126.2 的 Windows V8 儲存防護會在變更單一串流 XDP 之前驗證屬性語法、重複屬性、限定名稱、命名空間範圍與 XML 宣告;XML schema、DTD、XMLDSig、XML 1.1 與增補平面名稱仍不在支援範圍內

AnalyzeSignatureRevisions 會把頁面擁有權與 widget 導覽連結分開,並為共用的外觀承載保留頁面內容脈絡,避免之後的頁面編輯被當成允許的表單或註解更新

v3.126.1 的 Windows V8 程式庫還會在動態版面配置搬移欄位時重新整理已載入輸入 widget 的幾何資訊,讓文字與原生輸入命中區域對齊新位置。必要的儲存庫測試資料透過原生事件驗證實例的新增、移除與高度變更;任意外部表單與前景檢視器輸入仍屬於另行驗收的工作

方法說明
GetXfaConfig從 PDF 文件擷取 XFA config 封包的原始 XML 位元組
GetXfaDatasets從 PDF 文件擷取原始 XFA datasets XML 位元組
GetXfaFormPackets將所有內嵌的 XFA 封包快照至 TXfaPacketList 集合
GetXfaPacketByName回傳依名稱識別的 XFA 封包原始內容位元組
GetXfaPacketContent回傳指定以零起始索引的 XFA 封包原始內容位元組
GetXfaPacketCount回傳文件中內嵌的 XFA 封包數量
GetXfaPacketName回傳指定以零起始索引的 XFA 封包名稱
GetXfaTemplate從 PDF 文件擷取 XFA template 封包的原始 XML 位元組

附件操作

方法說明
CreateAttachment(const Name: WString): Boolean建立新的空白附件
DeleteAttachment(Index: Integer): Boolean刪除指定索引的附件

影像操作

方法說明
AddJpegImage(JpegImage: TStream; X, Y, Width, Height: Double): Boolean在指定位置與大小從串流加入 JPEG 影像
AddPicture(Picture: TPicture; X, Y: Double)在指定位置加入圖片(原始大小)
AddPicture(Picture: TPicture; X, Y, Width, Height: Double)在指定位置以指定大小加入圖片
AddImage(const FileName: string; X, Y, Width, Height: Double)直接插入影像檔(經由暫存 TPicture 委派給 AddPicture);接受任何已向 VCL 或 LCL 圖形單元註冊的影像格式
AddImage(Bitmap: TBitmap; X, Y, Width, Height: Double)直接插入 pf32bit TBitmap,不經 TPicture 中介;nil 點陣圖會引發 EPdfError

繪製操作

方法說明
CreatePath(X, Y: Single; FillMode; FillColor; FillAlpha; Stroke; StrokeColor; StrokeAlpha; StrokeWidth; LineCap; LineJoin; BlendMode)建立從位置(X, Y)開始的路徑
CreatePath(X, Y, Width, Height: Single; ...)建立具給定邊界的矩形路徑
MoveTo(X, Y: Single)將目前點移至(X, Y)
LineTo(X, Y: Single)從目前點畫線至(X, Y)
BezierTo(X1, Y1, X2, Y2, X3, Y3: Single)繪製具兩個控制點與一個端點的貝茲曲線
ClosePath關閉目前的子路徑
AddPath將完成的路徑加入目前頁面

算繪

方法說明
RenderPage(DeviceContext: HDC; Left, Top, Width, Height: Integer; Rotation; Options)將頁面算繪至裝置內容(HDC)
RenderPage(Left, Top, Width, Height: Integer; Rotation; Options; Color): TBitmap將頁面算繪至新的點陣圖
RenderPage(Bitmap: TBitmap; Left, Top, Width, Height: Integer; Rotation; Options; Color)將頁面算繪至既有點陣圖
RenderPageByIndex(PageNumber, Width, Height: Integer; Rotation; Options; Color): TBitmap以精確大小算繪任一頁面,不變更目前頁面,並重複使用已剖析的頁面場景
RenderPageSkia(Canvas, Width, Height, DrawFormOverlay)當載入的 PDFium 模組支援 Skia 時,將目前頁面與可選表單覆蓋層算繪至呼叫端持有的 SkCanvas
RenderPageSkiaByIndex(Canvas, PageNumber, Width, Height, DrawFormOverlay)透過有界的已剖析頁面場景快取,將任一頁面算繪至 Skia,不變更目前頁面
SpotPlates / RenderSpotPlate / PageUsesOverprint / RenderOverprintPreview透過能力閘控的可選列印輸出 ABI,列舉並算繪精確的印刷色版或疊印預覽
GetSkiaRenderCapabilities / GetPrintOutputCapabilities探測可選的原生算繪匯出函式,而不將其列為 PDFium DLL 載入需求
RenderPageThumbnail(PageIndex, MaxWidth, MaxHeight, Rotation, Options, Background, ColorScheme): TBitmap將任一 1 起算頁面算繪為呼叫端持有的縮圖點陣圖,可選旋轉、旗標、背景與低視力色彩,不變更 PageNumber
ThumbnailCacheMaxEntries / ThumbnailCacheMaxBytes / ThumbnailCacheStatistics / ClearThumbnailCache以項目數與像素位元組上限約束內嵌與算繪縮圖的保留量,並檢視 LRU 遙測
ClearPageSceneCache釋放所有未使用的已剖析頁面場景,並在算繪完成時淘汰進行中的項目
RenderPagesParallel(PageNumbers; Options; CancellationToken): TPdfParallelRenderReport透過共用單一不可變記憶體、映射檔或原生隨機存取來源的隔離 worker 文件,並行算繪多個 1 起算頁面請求
RenderPageBandedToEncoder(Width, Height, BandHeight; Encoder): TPdfBandedImageReport將正確裁剪的頁面條帶餵給呼叫端編碼器,不需組合整頁點陣圖
RenderPageBandedToStream(Stream, Width, Height, StreamOptions): TPdfBandedImageReport寫入僅向前的 PNG 或 TIFF 輸出,具備有界的條帶記憶體與可選的輸出位元組上限
RenderDiffOverlay(Other: TPdf; const Difference: TPdfPageDifference; const Options: TPdfDocumentDiffOptions): TBitmap將 CompareWith 回傳的單一 TPdfPageDifference 算繪成由呼叫端持有的疊加點陣圖
RenderTile(Left, Top, Width, Height, PageWidth, PageHeight: Integer; ...): TBitmap將頁面的磚形區域(部分)算繪至新的點陣圖
RenderTile(Bitmap: TBitmap; Left, Top, Width, Height, PageWidth, PageHeight: Integer; ...)將磚形區域算繪至既有點陣圖
InvertPdfBitmap(Bitmap)就地反轉已算繪 32 位元 TBitmap 的 RGB 色版,適合深色模式或高對比檢視
GrayscalePdfBitmap(Bitmap)就地將已算繪的 32 位元 TBitmap 轉換為亮度灰階
DuotonePdfBitmap(Bitmap, DarkColor, LightColor)就地將已算繪點陣圖的亮度映射到呼叫端選擇的深色與淺色

座標轉換

方法說明
DeviceToPage(X, Y, Left, Top, Width, Height: Integer; Rotation: TRotation; out PageX, PageY: Double): Boolean將裝置座標轉換為頁面座標
PageToDevice(PageX, PageY: Double; Left, Top, Width, Height: Integer; Rotation: TRotation; out X, Y: Integer): Boolean將頁面座標轉換為裝置座標

PAdES 數位簽章

方法說明
PadesCryptoAvailable指示簽章密碼學後端在系統上是否可用
AnalyzeSignatureRevisions依每個簽章的 DocMDP 與 FieldMDP 權限,分類後續的原始位元組修訂版
BuildPadesEvidenceReport(Options)將原生簽章事實、信任、時間戳、原則、DSS/VRI 涵蓋範圍與後續修訂版關聯為有界的 JSON 或 CSV 證據
PreparePadesRemoteSignature(Prepared; Options; out Request)為 HSM、雲端或中斷工作流程準備綁定指紋的分離式簽章預留位置,可選 seed value、憑證、FieldMDP 與 DocMDP 約束
CompletePadesRemoteSignature(Prepared; Dest; Request; CmsDer)驗證並以回傳的分離式 CMS 值填入已保存的遠端簽章工作階段
SavePadesRemoteSigningRequest(Stream; Request)序列化具版本控制的遠端簽章要求,供稍後恢復
LoadPadesRemoteSigningRequest(Stream)載入並驗證已保存的遠端簽章要求
RenewPadesArchiveTimestamp(FileName; Options; out Report)附加新的封存文件時間戳,不修改先前的已簽署修訂版
RenewPadesArchiveTimestampToStream(Stream; Options; out Report)在完整驗證後,將續簽的 B-LTA 鏈寫入串流
SaveAsPadesDss(const FileName: string; const Options: TPadesDssOptions)以去重的 PAdES DSS 材料與簽章專屬 VRI 字典儲存作用中的 PDF
SaveAsPadesDssToStream(Stream: TStream; const Options: TPadesDssOptions)以去重的 PAdES DSS 材料與簽章專屬 VRI 字典,將作用中的 PDF 儲存至串流
SignPades(const FileName: string; const Options: TPadesSignOptions)使用本機憑證存放區附加受約束的核准或認證 PAdES 簽章
SignPadesToStream(Stream: TStream; const Options: TPadesSignOptions)將受約束的核准或認證 PAdES 簽章更新寫入串流
SignPadesWithPdfA(const FileName: string; const Options; PdfAOptions)儲存符合 PDF/A 封存標準的已簽署 PAdES PDF 文件
ValidatePades檢查原始位元組的 PAdES 結構,拒絕含糊的必要鍵值,證明精確的 Contents token 排除範圍,並回報涵蓋的修訂版、密碼學狀態、ISO/TS 32002 演算法設定檔、基線層級與結構問題
ValidatePadesTrust(Options)驗證原始位元組簽章完整性、目前系統信任、可選的撤銷證據與 RFC 3161 時間戳權杖
ValidatePadesTrustAsync(Options; Reply)在 worker 執行緒上執行分階段的信任驗證,支援進度與取消

TPdf 元件屬性

已發佈屬性(設計期)

屬性類型說明
Aboutstring元件版本資訊(stored False)
ActiveBoolean設為 True 以載入或啟用文件,設為 False 以關閉
FileNamestring要載入的 PDF 檔案路徑
FormFillBoolean啟用支援 JavaScript 的互動式表單填寫(預設 True)
PageNumberInteger目前頁碼(1 起算,未載入文件時為 0)
Passwordstring開啟加密 PDF 文件的密碼

文件屬性

屬性類型讀/寫說明
AuthorWStringR文件作者
CompressedBoolean讀/寫為 True 時(預設),SaveAs 會後處理輸出,確保所有串流都以 FlateDecode 壓縮
CreationDateWStringR文件建立日期中繼資料
CreatorWStringR建立文件的應用程式
DocumentFPDF_DOCUMENTR低階 PDFium 文件控制代碼
FileIdentifier[IDType: TPdfFileIdentifierType]TBytesR永久或變更 trailer 檔案識別碼位元組,不含 PDFium 終止位元組
FormTypeTPdfFormTypeR表單類型:ftNone、ftAcroForm、ftXFAFull、ftXFAForeground
IsTaggedBooleanR文件為標籤式 PDF 時為 True
JavaScriptAction[Index]TPdfJavaScriptActionR依以零起始索引取得文件層級 JavaScript 名稱樹動作
JavaScriptActionCountIntegerR文件層級 JavaScript 名稱樹動作的數量
JavaScriptActionsTPdfJavaScriptActionsR所有文件層級 JavaScript 名稱樹動作
KeywordsWStringR文件關鍵字
LanguageWString讀/寫文件 catalog 語言(/Lang)
StructureElementsTPdfStructureElementsR透過共用快照快取取得目前頁面的扁平化邏輯結構元素
StructureElementsForPage[PageNumber]TPdfStructureElementsR任一 1 起算頁面的呼叫端持有快取結構快照,不變更目前頁面
StructureCacheCapacityInteger讀/寫LRU 快取保留的完整頁面結構快照數量上限
StructureCacheCountIntegerR目前快取的頁面結構快照數量
StructureCacheHitCount / StructureCacheMissCountInt64R此元件執行個體的累計結構快照快取遙測
MetaText[const Tag: string]WStringR依標籤名稱取得任意中繼資料值
MetadataTPdfDocumentMetadataR單一快照,包含八個標準 Info 字典中繼資料欄位
ModifiedDateWStringR最後修改日期中繼資料
PageCountIntegerR頁面總數
PdfVersionTPdfVersionR生效的 PDF 版本,包含存在時的有效 catalog /Version 覆寫
PermissionsLongWordR文件權限旗標
GrantedPermissionsTPdfPermissionsR從 Permissions 解碼的具型別擁有者密碼權限集合
PrintCopiesIntegerR指定的列印份數
PrintPageRangesTPdfPrintPageRangesR來自檢視器偏好的 1 起算列印頁面範圍
PrintPaperHandlingTPrintPaperHandlingR紙張處理偏好
PrintScalingBooleanR是否啟用列印縮放
ProducerWStringRPDF 產生器應用程式
SubjectWStringR文件主旨
TitleWStringR文件標題
UserPermissionsLongWordR使用者層級權限
UserGrantedPermissionsTPdfPermissionsR從 UserPermissions 解碼的具型別使用者密碼權限集合
ViewerPreference[const Key: string]WStringR依鍵值取得檢視器偏好設定值
XFABooleanR文件包含 XFA 表單時為 True

頁面屬性

屬性類型讀/寫說明
PageFPDF_PAGER低階 PDFium 頁面控制代碼
PageBoundsTPdfRectangleR目前頁面的邊界矩形
PageComplexityTPdfPageComplexityR目前頁面的原生物件、線段、影像像素與透明度事實
PageBox[Box: TPdfPageBox]TPdfRectangle讀/寫目前頁面的 MediaBox、CropBox、BleedBox、TrimBox 或 ArtBox
PageHeightDoubleR目前頁面高度(以點(point)為單位)
PageLabel[PageNumber: Integer]WStringR指定頁碼的頁面標籤
PageModeTPageModeR文件開啟時的顯示方式
PageRotationTRotation讀/寫目前頁面的旋轉(ro0、ro90、ro180、ro270)
PageWidthDoubleR目前頁面寬度(以點(point)為單位)
ThumbnailTBitmapR目前頁面的縮圖點陣圖
TransparentBooleanR目前頁面含透明內容時為 True

文字與字元屬性

屬性類型說明
Character[Index]WideChar指定索引處的 Unicode 字元
CharacterAngle[Index]Single字元旋轉角度(弧度)
CharacterCountInteger目前頁面的字元數
CharacterFontSize[Index]Double索引處字元的字型大小;FontSize[Index] 仍作為相容別名保留
CharacterFontWeight[Index]Integer索引處字元的字型粗細
CharacterGenerated[Index]Boolean字元為產生(而非來自原始內容)時為 True
CharacterIsHyphen[Index]Boolean字元為連字號時為 True
CharacterMapError[Index]Boolean字元有映射錯誤時為 True
CharacterOrigin[Index]TPdfPoint字元的原點
CharacterRectangle[Index]TPdfRectangle字元的邊界矩形
Charcode[Index]WideChar指定索引處的字元代碼
FindFPDF_SCHHANDLE低階 PDFium 搜尋控制代碼
Rectangle[Index]TPdfRectangle上次 RectangleCount 呼叫的文字矩形
TextPageFPDF_TEXTPAGE低階 PDFium 文字頁面控制代碼

字型屬性

屬性類型說明
FontAscent[Index; FontSize]Single索引處文字物件所用字型的上伸高度
FontBaseName[Index]WString索引處文字物件的基礎字型名稱
FontData[Index]TBytes索引處文字物件的原始字型資料
FontDescent[Index; FontSize]Single索引處文字物件所用字型的下伸高度
FontFamilyName[Index]WString索引處文字物件的字型家族名稱
FontHandle[Index]FPDF_FONT索引處文字物件的低階 PDFium 字型控制代碼
FontIsEmbedded[Index]Boolean若文字物件的字型已內嵌於 PDF 則為 True
FontItalicAngle[Index]Integer文字物件字型的斜體角度
FontSize[Index]DoubleCharacterFontSize[Index] 的回溯相容別名
FontWeight[Index]Integer文字物件字型的粗細(例如 400 = 一般,700 = 粗體)

物件屬性

屬性類型說明
ObjectCountInteger頁面物件數量
ObjectType[Index]TObjectType類型:otUnknown、otText、otPath、otImage、otShading、otForm
ObjectBounds[Index]TPdfRectangle物件的邊界矩形
ObjectBitmap[Index]TBitmap物件的點陣圖表示
ObjectHandle[Index]Pointer低階物件控制代碼
ObjectTransparent[Index]Boolean物件為透明時為 True

影像屬性

屬性類型說明
Bitmap[Index]TBitmap指定索引處頁面物件的點陣圖
BitmapCountInteger頁面上的點陣圖物件數量
Image[Index]TPdfImage指定索引處的影像資料(Width、Height、Data)
ImageInfo[Index]TPdfImageInfo輕量化的尺寸、濾器、DPI、位元深度、色彩空間、marked-content ID 與 ICC 事實,不複製酬載位元組
ImageCountInteger頁面上的影像數量

註解屬性

屬性類型讀/寫說明
Annotation[Index]TPdfAnnotation讀/寫取得或設定指定索引的註解
AnnotationCountIntegerR目前頁面的註解數量

表單屬性

屬性類型讀/寫說明
FormField[Index]WString讀/寫依索引取得或設定表單欄位值
FormFieldAt[X, Y: Single]WString讀/寫取得或設定頁面位置上的表單欄位值
FormFieldCountIntegerR目前頁面的表單欄位數量
FormFieldInfo[Index]TPdfFormFieldInfoR依索引取得表單欄位資訊
FormFieldInfoAt[X, Y: Single]TPdfFormFieldInfoR頁面位置上的表單欄位資訊
FormFieldTypeAtPoint(X, Y: Double; out FieldType)BooleanR回傳頁面點位上的原生欄位類型,不配置註解控制代碼
FocusedFormFieldValue()WStringR依 FocusedFormFieldIndex 回傳目前的邏輯表單欄位值,不依賴互動式游標
FocusedFormFieldName()WStringR回傳目前邏輯表單欄位的顯示名稱,優先使用 AlternateName,其次退回 Name
FocusedFormFieldDetails()TPdfFormFieldInfoR回傳目前邏輯表單欄位的 TPdfFormFieldInfo
FormHandleFPDF_FORMHANDLER低階表單填寫控制代碼
HasFormFieldAt[X, Y: Single]BooleanR位置上存在表單欄位時為 True

附件屬性

屬性類型讀/寫說明
Attachment[Index]TBytes讀/寫依索引取得或設定附件資料
AttachmentCountIntegerR附件數量
AttachmentName[Index]WStringR依索引取得附件檔案名稱
AttachmentType[Index]WStringR依索引取得附件 MIME 子類型

導覽屬性

屬性類型說明
Bookmark[const Title: WString]TBookmark依標題尋找書籤,含目的地、動作、開啟狀態、子節點數、路徑與色彩中繼資料
BookmarkChildren[const Bookmark: TBookmark]TBookmarks書籤的子書籤
BookmarkFrom[Handle: FPDF_BOOKMARK]TBookmark從控制代碼取得書籤資料
BookmarksTBookmarks頂層書籤陣列
Destination[Index]TDestination依索引取得具名目的地,含檢視模式與原始檢視參數
DestinationByName[const Name: WString]TDestination依名稱取得具名目的地
DestinationCountInteger具名目的地數量
HasBookmarkChildren[const Bookmark: TBookmark]Boolean書籤有子節點時為 True
LinkAnnotation[PageNumber, Index]TLinkAnnotation指定頁面上的連結註解
LinkAnnotationCount[PageNumber]Integer頁面上的連結註解數量
WebLink[PageNumber, Index]TWebLink指定頁面上的網頁連結(URL)
WebLinkCount[PageNumber]Integer頁面上的網頁連結數量

數位簽章屬性

屬性類型說明
Signature[Index]TPdfSignature指定索引處的數位簽章資訊
SignatureCountInteger文件中的數位簽章數量
SignaturesTPdfSignatures每個原生數位簽章的呼叫端持有快照

TPdf 事件

事件類型說明
OnFormFieldEnterTPdfFormFieldEnterEvent當表單欄位被進入時觸發。參數:Sender: TObject; const Text: WString
OnFormFieldExitTNotifyEvent當焦點離開表單欄位時觸發
OnJavaScriptAlertTPdfJavaScriptAlertEvent當 PDF 內嵌 JavaScript 呼叫 app.alert 顯示訊息方塊時觸發
OnJavaScriptBeepTPdfJavaScriptBeepEvent當 PDF 內嵌 JavaScript 呼叫 app.beep 播放系統音效時觸發
OnJavaScriptMailTPdfJavaScriptMailEvent當 PDF 內嵌 JavaScript 呼叫 mailDoc 或 app.mailMsg 撰寫郵件訊息時觸發
OnJavaScriptPrintTPdfJavaScriptPrintEvent當 PDF 內嵌 JavaScript 呼叫 print 啟動列印工作時觸發
OnJavaScriptResponseTPdfJavaScriptResponseEvent當 PDF 內嵌 JavaScript 動作要求使用者互動時觸發
OnJavaScriptSubmitFormTPdfJavaScriptSubmitFormEvent當 PDF 內嵌 JavaScript 將表單提交至 URL 時觸發
OnNamedActionTPdfNamedActionEvent當文件引發具名動作時觸發;設定 Handled 即可接管四個標準導覽名稱
OnPageChangeTNotifyEvent當目前頁面變更時觸發
OnUnsupportedFeatureTPdfUnsupportedFeatureEvent當 PDF 含不支援的功能時觸發
OnXfaEmailTPdfXfaEmailEvent當動態 XFA 表單要求電子郵件動作時觸發
OnXfaFocusChangeTPdfXfaFocusChangeEvent當動態 XFA 表單內的焦點欄位變更時觸發
OnXfaGotoUrlTPdfXfaGotoUrlEvent在動態 XFA 表單內導覽連結 URL 時觸發
OnXfaHttpRequestTPdfXfaHttpRequestEvent當動態 XFA 表單發出 HTTP 要求時觸發
OnXfaOpenFileTPdfXfaOpenFileEvent當動態 XFA 表單要求開啟外部檔案時觸發
OnXfaPageCountChangedTPdfXfaPageCountChangedEvent當動態 XFA 表單的頁數在執行階段變更時觸發
OnXfaRuntimeMissingTNotifyEvent當開啟 XFA 文件但 XFA 執行階段無法使用時觸發
OnXfaUriActionTPdfXfaUriActionEvent當連結 URI 動作在動態 XFA 環境中觸發時引發
OnFormCursorTPdfFormCursorEvent當表單欄位要求游標形狀時觸發;設定 Handled 可覆寫原生游標
OnFormValueChangeTPdfFormValueChangeEvent當焦點表單欄位的值變更後觸發
OnFormUriActionTPdfFormUriActionEvent當表單欄位引發 URI 動作時觸發;設定 Handled 可隱藏原生導覽
OnFormGoToActionTPdfFormGoToActionEvent當表單欄位引發含頁面、縮放模式與位置的跳至動作時觸發;設定 Handled 可自行導覽
OnFormSelectionRectTPdfFormSelectionRectEvent當表單層回報焦點欄位的單一選取矩形時觸發

其他公開方法與屬性

API說明
function AnalyzeSignatureRevisions: TPadesRevisionAnalysisReport重建原始修訂鏈,並為每個內嵌簽章分類後續的物件變更
function BuildPadesEvidenceReport(const Options: TPadesEvidenceReportOptions): TPadesEvidenceReport從單一保留的原始位元組擷取,建置可匯出的多簽章證據
property About: string回報 TPdf 的 PDFium Delphi Component 元件版本資訊
Active開啟或關閉所選的 PDF 文件
function AddAnnotationFileAttachment(AnnotIndex: Integer; const Name: WString; const FileData: TBytes): Boolean將內嵌檔案附加到既有註解,並在單一呼叫中寫入其內容
procedure AddImage(const FileName: string; X, Y, Width, Height: Double)從檔案插入影像至目前 PDF 頁面。內部使用 TPicture.LoadFromFile,因此接受任何已向 VCL 或 LCL 圖形單元註冊的影像格式(透過 Vcl.Imaging.PngImage / LCL TPortableNetworkGraphic 的 BMP、PNG、JPG 等)。座標位於 PDF 使用者空間(原點在頁面左下);Width 與 Height 是以使用者單位表示的放置大小,而非來源影像的像素尺寸
function AddJpegImage(JpegImage: TStream; X, Y, Width, Height: Double): Boolean使用指定座標將 JPEG 影像加入目前 PDF 頁面
procedure AddPage(PageNumber: Integer; Width, Height: Double)以給定的點(point)尺寸建立新的空白頁面
AddPath將累積的 MoveTo/LineTo/BezierTo 路徑提交為具所要求繪製樣式的新頁面物件
procedure AddPathToAnnotation(Index: Integer)將暫存的 CreatePath 路徑交給墨跡或圖章註解,而不是頁面內容
procedure AddPicture(Picture: TPicture; X, Y: Double)使用指定座標將圖片加入目前 PDF 頁面
function AddPageObjectMark(Index: Integer; const Name: AnsiString; const Params: TPdfContentMarkParams): Integer為頁面物件加入 marked-content 項目及其初始具型別屬性清單
PageObjectInfo / AnnotationObjectInfo / PageObjectMarks / PathInfo / TransformPageObject / RenderPageWithMatrix單一總覽頁面上的進階頁面內容與註解物件檢查、標記、路徑、變換與文字度量
function SharePageObjectMark(TargetIndex, SourceIndex, SourceMarkIndex: Integer): Boolean在另一個頁面物件上重複使用一個原生 marked-content 屬性標記
function AddShapedText(const Text, Font: WString; FontSize: Single; X, Y: Double; out Shaped: TPdfShapedText; Direction: TPdfTextDirection = ptdAuto; Color: TColor = clBlack; Alpha: Byte = $FF): Boolean將雙向與複雜文字指令碼段落塑形為定位的 CID Type 2 字形,具備 ToUnicode 與邏輯 ActualText 語意
procedure AddStandardFontText(const Text: WString; StandardFont: TPdfStandardFont; FontSize: Single; X, Y: Double; Color: TColor; Alpha: Byte; Angle: Double = 0.0)使用 14 種標準 PDF 字型之一繪製文字,不內嵌任何字型程式
function AddCidType2Text(const FontData: TBytes; const Glyphs: TPdfCidGlyphs; FontSize: Single; X, Y: Double; const Options: TPdfCidFontOptions; out Report: TPdfCidFontReport; Color: TColor = clBlack; Alpha: Byte = $FF): Boolean內嵌定位的 CID Type 2 字形,具備明確的 Unicode 映射、可選的 TrueType 子集化、受控的後備與擷取驗證
procedure AddText(const Text, Font: WString; FontSize: Single; X, Y: Double; Color: TColor = clBlack; Alpha: Byte = $FF; Angle: Double = 0.0)在指定位置將文字加入目前 PDF 頁面
Annotation索引屬性 — 回傳目前頁面上指定索引處的註解記錄(子類型、矩形、顏色、內容等)
AnnotationCount附加至目前作用中頁面的註解物件數量
function AnnotationObjectCount(Index: Integer): Integer計算墨跡或圖章註解自身繪製所用的頁面物件數
function AnnotationObjectInfo(Index, ObjectIndex: Integer): TPdfPageObjectInfo讀取註解所擁有的單一頁面物件的類型、邊界、矩陣、顏色與線條樣式
property Attachment[Index: Integer]: TBytes讀取或取代指定以零起始索引的文件層級內嵌檔案原始位元組酬載。每個位置對應 PDF 1.7 規格第 7.11 節定義的 PDF EmbeddedFiles 名稱樹中的一個項目
AttachmentCount文件中宣告的內嵌檔案附件數量
property AttachmentDescription[Index: Integer]: WString讀取或寫入文件層級內嵌檔案的 /Desc 描述
function AttachmentHasKey(Index: Integer; const Key: WString): Boolean測試內嵌附件是否帶有指定的檔案規格鍵值
AttachmentName回傳文件 EmbeddedFiles 名稱樹中指定以零起始索引之內嵌檔案註冊的 Unicode 檔案名稱
property AttachmentRelationship[Index: Integer]: WString回傳文件層級內嵌檔案的 /AFRelationship 名稱(ISO 32000-2 Table 43),沒有該項目時回傳空字串
AttachmentType回傳指定以零起始索引之內嵌檔案註冊的 MIME / 子類型字串。值取自 PDF 第 7.11.3 節定義的檔案規格字典 /Subtype 項目
Author回傳 PDF 文件資訊字典中 /Author 項目的值
BezierTo從目前點經過控制點(X1,Y1)與(X2,Y2)附加三次貝茲曲線至(X3,Y3)
Bitmap回傳新解碼的 VCL TBitmap,持有目前頁面上指定影像物件的點陣資料。點陣圖在每次呼叫時重新配置,由呼叫端持有並負責呼叫 Free
BitmapCount作用中頁面上可作為 VCL TBitmap 存取的影像頁面物件數量
Bookmark依標題字串尋找書籤,並從 PDF 第 12.3.3 節定義的文件大綱樹回傳符合的 TBookmark 記錄
BookmarkChildren索引屬性 — 回傳指定父書籤節點的直接子書籤
BookmarkFrom透過讀取該大綱節點的標題、目的地頁面與動作中繼資料,將原始 FPDF_BOOKMARK 控制代碼轉換為完整填入的 TBookmark 記錄
Bookmarks索引屬性 — 回傳文件的完整頂層大綱(書籤)項目清單
Character唯讀索引存取指定索引處字元的 UTF-16 字串形式(通常為一個碼元,代理對則為兩個)
CharacterAngle唯讀索引存取字元的旋轉角度(弧度),並將頁面 CTM 納入考量
CharacterCount目前作用中頁面可擷取的字元數
CharacterFontSize唯讀索引存取算繪字元時使用的有效字型大小(以 PDF 點(point)為單位,經 CTM 縮放後)
CharacterFontWeight唯讀索引存取所用字型的 OS/2 usWeightClass 值(100 = Thin、400 = Regular、700 = Bold、900 = Black)
CharacterGenerated當指定索引處的字元是由 PDFium 在文字擷取期間合成、而非由頁面內容串流明確繪製時,回傳 True。合成字元用於連字展開、軟性連字與單字或行邊界啟發式,讓搜尋與全選結果讀起來自然
function CharacterIndexToTextIndex(Index: Integer): Integer將字元索引映射至其在擷取文字中的位移,產生字元則回傳 -1
function CharacterInfo(Index: Integer): TPdfCharacterInfo讀取單一字元的顏色、字型名稱與旗標、鬆散邊界、矩陣與所屬文字物件
function CharacterIndexAtPos(X, Y, ToleranceX, ToleranceY: Double): Integer取得頁面上某位置處或附近的字元索引。若該點處或附近沒有字元,回傳值為 -1;若發生錯誤,則回傳 -3
CharacterIsHyphen當指定索引處的字元被識別為用於行尾斷字的軟性連字號時,回傳 True。在跨行折行重組單字而不保留可見連字號標記時很有用
CharacterMapError當指定索引處的字元無法映射到有效的 Unicode 碼點時,回傳 True。此旗標由 PDFium 文字擷取器逐字元回報,讓呼叫端識別因來源字型缺少可用 ToUnicode CMap 或編碼向量而可能不正確的碼點
CharacterOrigin唯讀索引存取字元在 PDF 使用者空間點(point)座標中的原點(基線左側錨點)
CharacterRectangle唯讀索引存取字元在 PDF 使用者空間座標(原點在左下,單位為點(point))中的邊界矩形
Charcode唯讀索引存取指定索引處字元的 Unicode 碼點(UCS-4)
function ChooseRenderFlags(Scale: Double; DestWidth, DestHeight: Integer): Integer依最終縮放與目的地大小挑選原生 FPDF_RENDER_* 旗標,用於自適應影像降取樣
procedure ClearFormFieldFocus搭配目前頁面的 AcroForm 邏輯焦點游標,適用於鍵盤、語音與無障礙工作流程
procedure ClearPageSceneCache清除快取的已剖析頁面場景,不變更目前頁面
procedure ClearThumbnailCache釋放保留的內嵌與算繪縮圖點陣圖,不變更快取限制或遙測
ClosePath畫一條直線回到最近的 MoveTo,關閉目前的子路徑
Compressed控制呼叫 SaveAs / Save 時,輸出 PDF 中的串流是否以 FlateDecode 壓縮。儲存後壓縮引擎會掃描序列化的 PDF,將未壓縮的串流替換為其 zlib-deflate 等效串流,並重建 xref 表。已壓縮的串流原樣通過
constructor Create(AOwner: TComponent); override建立 TPdf 元件並初始化文件、算繪、表單與快取狀態
procedure CreateAnnotation(const Annotation: TPdfAnnotation)建立新註解
CreateAttachment在文件層級新增內嵌檔案(附件)
procedure CreateDocument關閉目前文件(若有)並開始全新的空白 PDF
procedure CreatePath(X, Y: Single; FillMode: TPdfFillMode = fmNone; FillColor: TColor = clBlack; FillAlpha: Byte = $FF; Stroke: Boolean = True; StrokeColor: TColor = clBlack; StrokeAlpha: Byte = $FF; StrokeWidth: Single = 1.0; LineCap: TPdfLineCap = lcDefault; LineJoin: TPdfLineJoin = ljDefault; BlendMode: TPdfBlendMode = bmDefault)在初始位置建立新路徑物件
CreateXObjectFromPage將另一個 TPdf 的頁面包裝為可重複使用的 Form XObject 控制代碼,可蓋印至本文件任意次數
CreationDate來自文件 Info 字典的原始建立時間戳
Creator儲存在 Info 字典中的原始撰寫應用程式名稱
property CrossReferenceTableValid: Boolean回報載入的文件是否具備完整的交叉參照表
DeleteAnnotation移除目前頁面上指定索引處的註解
function DeleteAttachment(Index: Integer): Boolean移除指定索引處的內嵌檔案附件
procedure DeletePage(PageNumber: Integer)從文件移除 PageIndex 處的頁面
Destination回傳指定以零起始索引之具名目的地的 TDestination 記錄。具名目的地是 PDF 第 12.3.2 節所述文件 catalog Dests / Names 樹下定義的間接目標
DestinationByName依字串名稱查詢 /Names 目的地,並回傳其目標頁面、fit 類型與座標
DestinationCount文件中宣告的具名目的地數量
function DetectPageSkew(out Report: TPdfSkewReport): Boolean以約 0.1 度的精確度量測目前頁面的傾斜,附信賴度值
destructor Destroy; override在 TPdf 銷毀前釋放文件控制代碼、表單狀態、快取字型、串流與計時器
ExportXFDF將表單欄位與註解序列化為 UTF-8 XFDF,保留巢狀欄位路徑,以及不存在與明確空值之間的區別
function ExportXFDFToStream(Stream: TStream): Integer將文件的每個表單值與註解以 XFDF 寫入串流
function ExtractAttachmentsToStreams(const Destinations: array of TStream; const Options: TPdfAttachmentBatchOptions; out Report: TPdfAttachmentBatchReport; const CancellationToken: IPdfCancellationToken = nil): Boolean在數量與位元組預算下,將解碼的附件寫入呼叫端持有的串流,支援取消與逐項結果
TPdfAttachmentBatchOptions / TPdfAttachmentBatchReport提供給呼叫端中繼資料列舉與酬載擷取的有界單趟附件批次模型
ExtractThumbnail(PageNumber: Integer): TBitmap解碼內嵌頁面縮圖,不切換或重新載入目前頁面
function DeviceToPage(X, Y, Left, Top, Width, Height: Integer; Rotation: TRotation; out PageX, PageY: Double): Boolean將點的螢幕座標轉換為頁面座標
property Document供直接低階存取的原生 PDFium FPDF_DOCUMENT 控制代碼
function DocumentReadableContent: TPdfContentFragments回傳語意可讀內容片段,供螢幕閱讀器、文字轉語音與無障礙工作流程使用
function DocumentReadingUnits: TPdfReadingUnits為整份文件的可讀內容串流建置句子層級的 TPdfReadingUnit 記錄
FileIdentifier唯讀旗標 — 回傳所要求識別碼槽位的文件檔案識別碼陣列
property FileName要開啟的 PDF 路徑;在 Active 狀態下指定會從新路徑重新載入
Find從 PageNum(若為 -1 則為目前頁面)開始搜尋 Pattern,並回傳第一個相符項的全域字元索引
function FindFirst(const Text: WString; Options: TSearchOptions = []; StartIndex: Integer = 0; DirectionUp: Boolean = True): Integer開始搜尋指定文字。StartIndex 為 0 起始,-1 代表頁面結尾。DirectionUp 參數決定此次搜尋的方向
function FindNext推進進行中 Find 工作階段的游標,並回傳下一個相符的字元索引
function FindPrevious將 Find 游標倒轉一個相符項
function CreateDocumentSearch建立惰性的全文件搜尋,每次呼叫回傳一個相符項及其頁面空間矩形
function FlattenAllPages(nFlag: Integer = FLAT_NORMALDISPLAY): Boolean扁平化文件中每一頁的便利包裝。每頁都以 FLATTEN_SUCCESS 或 FLATTEN_NOTHINGTODO 完成時回傳 True。建議工作流程:GenerateFormAppearances → FlattenAllPages → SaveAs
function FlattenPage(nFlag: Integer = FLAT_NORMALDISPLAY): Integer將目前頁面的註解與表單元件扁平化為永久(不可編輯)的頁面內容。nFlag 選擇扁平化設定檔:FLAT_NORMALDISPLAY(0)用於螢幕顯示,FLAT_PRINT(1)用於列印輸出。回傳 FLATTEN_SUCCESS、FLATTEN_NOTHINGTODO 或 FLATTEN_FAIL 之一。扁平化已填寫的表單值時,請先呼叫 GenerateFormAppearances
FlattenPageRotation將每一頁目前的 /Rotate 烘焙進內容串流、頁面框與註解矩形,然後將 /Rotate 重設為 0,讓視覺版面無需依賴旋轉顯示提示即可保留
function FocusedFormFieldDetails: TPdfFormFieldInfo回傳目前邏輯表單欄位的 TPdfFormFieldInfo
function FocusedFormFieldIndex: Integer搭配目前頁面的 AcroForm 邏輯焦點游標,適用於鍵盤、語音與無障礙工作流程
function FocusedFormFieldName: WString回傳目前邏輯表單欄位的顯示名稱,優先使用 AlternateName,其次退回 Name
function FocusedFormFieldText: WString搭配目前頁面的 AcroForm 邏輯焦點游標,適用於鍵盤、語音與無障礙工作流程
function FocusedFormFieldTextDirection: TPdfFormTextDirection透過 PDFium FORM_GetTextDirection 匯出函式,讀取焦點元件的記憶體內文字方向
function FocusedFormOptionSelected(Index: Integer): Boolean回報焦點清單方塊或下拉方塊的某一選項是否被選取
function FocusedFormFieldValue: WString依 FocusedFormFieldIndex 回傳目前的邏輯表單欄位值,不依賴互動式游標
function FocusFormField(Index: Integer): Boolean搭配目前頁面的 AcroForm 邏輯焦點游標,適用於鍵盤、語音與無障礙工作流程
function FocusNextFormField: Integer搭配目前頁面的 AcroForm 邏輯焦點游標,適用於鍵盤、語音與無障礙工作流程
function FocusPreviousFormField: Integer搭配目前頁面的 AcroForm 邏輯焦點游標,適用於鍵盤、語音與無障礙工作流程
FontAscent回傳頁面物件字型的上移(基線到最高上升部之間的距離),以 PDF 點(point)表示,並縮放至呼叫端提供的字型大小
FontBaseName回傳頁面物件所用字型的 PostScript 基本名稱(PDF 字型字典的 /BaseFont 項目),包含 -Bold 或 ,Italic 等樣式字尾
FontData唯讀索引存取內嵌字型程式的原始位元組(僅在字型內嵌時有值)
FontDescent回傳頁面物件字型的下移(基線到最低下降部之間的距離),以 PDF 點(point)表示,並縮放至呼叫端提供的字型大小
FontFamilyName回傳目前頁面上頁面物件所用字型的排版家族名稱(例如 Helvetica、Times New Roman、Noto Sans CJK SC)
property FontFlags[Index: Integer]: Integer回傳原生 PDF 字型描述器旗標,物件沒有字型時回傳 -1
FontHandle回傳頁面物件所用字型的原生 FPDF_FONT 控制代碼。此控制代碼讓進階呼叫端可直接存取元件未包裝的 PDFium 字型 API
FontIsEmbedded指示頁面物件所用的字型是內嵌在 PDF 中(True),還是僅被參照並在檢視時從作業系統解析(False)
FontItalicAngle唯讀索引存取字型的斜體角度(以度為單位,典型斜體為負值,直立為 0)
FontSize回傳目前頁面上單一字元的算繪字型大小(以 PDF 點(point)為單位)。FontSize 是保留給回溯相容的 CharacterFontSize 別名
FontWeight回傳目前頁面上頁面物件所用字型的 CSS 風格粗細(字重)。典型值為一般 400、粗體 700
FormField索引屬性 — 回傳目前頁面上的一個表單欄位
FormFieldAt讀取或寫入位於指定頁面座標的表單欄位值
FormFieldCount目前作用中頁面上的表單欄位元件數量
FormFieldInfo完整描述作用中頁面上指定索引處表單欄位的記錄
FormFieldInfoAt位於指定頁面座標之元件的表單欄位記錄
FormHostCallbacksComplete, FormSelectionRects, OnForm*生命週期安全的原生表單頁面,外加由主機控制的導覽、URI、游標、值變更與選取回呼
function FormFieldTypeAtPoint(X, Y: Double; out FieldType: TPdfFormFieldType): Boolean使用原生點擊測試回傳欄位類型,不建立註解控制代碼
function FormFieldTabOrder: TPdfIntegerArray搭配目前頁面的 AcroForm 邏輯焦點游標,適用於鍵盤、語音與無障礙工作流程
property FormFill讓應用程式提供表單相關回呼(Beep、Invalidate、OutputDocFile 等)的介面
FormHandle附加至文件的原生 PDFium 表單填寫環境控制代碼
function DetachFormObjectChild(FormIndex, ChildIndex: Integer): FPDF_PAGEOBJECT移除 Form XObject 子物件,並移交其原生控制代碼的所有權
function FormObjectChildren(Index: Integer): TPdfPageObjectInfos列出巢狀在 Form XObject 內的頁面物件
function GetAnnotationFontColor(AnnotIndex: Integer; out Color: TColor): Boolean讀取表單欄位元件註解的文字顏色
function GetAttachmentStringValue(Index: Integer; const Key: WString): WString讀取附件檔案規格字典中的一個字串項目
function GetImageObjectRenderedBitmap(Index: Integer): TBitmap算繪影像物件,套用其遮罩、色彩轉換與矩陣
function GetObjectRenderedStrokePattern(Index: Integer): TBitmap將路徑物件描邊所用的平鋪圖樣點陣化為呼叫端擁有的點陣圖,沒有圖樣時回傳 nil
property FormType告知文件包含 AcroForm 欄位、XFA,還是完全沒有表單
procedure GenerateFormAppearances透過 FPDF_FFLDraw 算繪每一頁,為每一頁的每個表單元件重新產生 /AP(外觀串流)。這是 FormField[i] := value 指定的建議配套呼叫 — 沒有它,表單值可能只在欄位取得焦點時可見,且後續任何扁平化操作都會默默遺失這些值。請在所有 FormField[] 指定之後、SaveAs / FlattenPage / FlattenAllPages 之前呼叫
function GetPageBox讀取目前頁面上指定名稱頁面框的矩形
function GetXfaConfig: TBytes從 PDF 文件擷取 XFA config 封包的原始 XML 位元組
function GetXfaDatasets: TBytes從 PDF 文件擷取原始 XFA datasets XML 位元組
function GetXfaFormPackets: TXfaPacketList將所有內嵌的 XFA 封包快照至 TXfaPacketList 集合
function GetXfaPacketByName(const Name: string): TBytes回傳依名稱識別的 XFA 封包原始內容位元組
function GetXfaPacketContent(Index: Integer): TBytes回傳指定以零起始索引的 XFA 封包原始內容位元組
function GetXfaPacketCount: Integer回傳文件中內嵌的 XFA 封包數量
function GetXfaPacketName(Index: Integer): string回傳指定以零起始索引的 XFA 封包名稱
function GetXfaTemplate: TBytes從 PDF 文件擷取 XFA template 封包的原始 XML 位元組
GrantedPermissions以具型別的 TPdfPermissions 集合回傳擁有者密碼權限
HasBookmarkChildren當給定的大綱節點至少有一個子書籤時回傳 True
HasFormFieldAt點擊測試,當表單欄位元件涵蓋給定頁面座標時回傳 True
HasPermission(Permission: TPdfPermission): Boolean測試單一擁有者密碼權限,不需手動位元運算
Image索引屬性 — 回傳目前頁面上的一個影像頁面物件(控制代碼 + bbox + 位元深度 + 色彩空間)
ImageCount目前作用中頁面上的點陣影像 XObject 數量
function ImportFDF(const FileName: string): Integer從 FDF 文件套用表單欄位值;另有 TStream 多載可用
ImportXFDF套用具命名空間感知的 XFDF 欄位與註解,包含明確空值、混合文字與 CDATA,以及深層巢狀欄位名稱
property IncrementalSaveActive: Boolean回報目前是否有增量儲存工作階段開啟
procedure InsertClipPath(Left, Bottom, Right, Top: Single)將目前頁面上繪製的所有內容裁剪至 PDF 頁面單位中的矩形
procedure InsertObjectAtIndex(StackIndex: Integer; PageObj: Pointer)在繪製順序的指定深度插入頁面物件,而不是置於最上層
class function InspectAvailability(AStream: TStream): TPdfAvailability在不載入 PDF 串流的情況下,回報其線性化、剖析可用性與第一頁
ImportNPagesToOne建立全新的 TPdf,其頁面是來源文件頁面的 NumX×NumY 組合,適合 N-up 列印版面
ImportPages從另一份開啟的 TPdf 複製一或多個頁面至本文件
ImportPagesByIndex依以零起始索引從另一個 TPdf 匯入特定頁面子集,並可控目前文件中的插入點
function ImportPreferences(Pdf: TPdf): Boolean位元集合,控制 ImportPages 如何複製內容(資源、具名目的地、註解等)
function InsertFormObjectFromXObject(XObject: TPdfXObject): FPDF_PAGEOBJECT將 TPdfXObject 包裝的頁面插入一份複本到本文件的目前頁面,回傳 FPDF_PAGEOBJECT,讓呼叫端可以定位 / 縮放 / 旋轉
IsTagged文件是否宣告了供無障礙使用的結構樹
JavaScriptAction索引屬性 — 回傳一個文件層級 JavaScript 動作(名稱 + Type + Source 字串)
JavaScriptActionCount儲存在 PDF 中的文件層級 JavaScript 動作數量
JavaScriptActions以單一動態陣列回傳所有文件層級 JavaScript 動作
Keywords來自文件 Info 字典的作者提供關鍵字清單
Language文件 catalog 中宣告的自然語言識別碼
LineTo從目前點附加直線至(X, Y)
LinkAnnotation索引屬性 — 回傳指定索引處明確的 /Annot Subtype Link,包含目標動作或目的地
LinkAnnotationCount特定頁面上 /Link 註解項目的數量
function LinkAtPoint(X, Y: Double): Boolean透過 FPDFLink_GetLinkAtPoint,對頁面空間座標執行原生連結註解的點擊測試
procedure LoadCustomDocument(AStream: TStream; AOwnsStream: Boolean = False)使用 PDFium 的依需求區塊讀取器,從任何可搜尋的 TStream 載入 PDF,讓數 GB 的文件與遠端 / 資料庫後備來源不需要預先的記憶體內複本
TPdfRandomAccessStore在記憶體上限下儲存可搜尋內容,溢寫至私有暫存儲存,並支援與游標無關的 ReadAt 與 WriteAt 呼叫
function TextIndexToCharacterIndex(Index: Integer): Integer將擷取文字中的位移映射回產生它的字元
function TextObjectGlyphOutline(Index, GlyphIndex: Integer; FontSize: Single): TPdfPathSegments讀取單一字形的向量輪廓,正規化為一個 em 等於 1.0
function TextObjectGlyphWidth(Index, GlyphIndex: Integer; FontSize: Single): Single以要求的字型大小量測原生字形前進量
function TextObjectFontSize(Index: Integer): Single讀取單一文字頁面物件的原生字型大小
procedure SetTextObjectFontSize(Index: Integer; FontSize: Single)編輯文字物件的字型大小,不經矩陣縮放
procedure LoadDocument從檔案、位元組陣列、已驗證的記憶體緩衝區或非 nil 的記憶體串流開啟 PDF
LastLoadReport回報最新的載入狀態、原生復原路徑、xref 有效性、有界稽核計數與具型別問題
SaveAsRepaired寫入完整副本,並在回報成功前透過隔離的嚴格載入加以驗證
property MetaText依標籤名稱回傳一個文件 Info 字典值
Metadata以單一記錄快照回傳標準的標題、作者、主旨、關鍵字、建立應用程式、產生器、建立日期與修改日期
MergeFiles合併檔案後備來源清單,具備有界來源控制代碼、原生頁面匯入批次、明確原則、進度、取消、回復與詳細報告
ModifiedDate文件 Info 字典中記錄的最後修改時間戳
MovePages以零起始索引就地重新排序本文件的頁面,頁數保持不變
MoveTo在給定的頁面座標開始新的子路徑
ObjectBitmap索引屬性 — 將一個影像頁面物件回傳為可算繪的 VCL TBitmap(自 JPX/CCITT 等有損解碼)
ObjectBounds目前頁面上單一頁面物件的緊密軸對齊邊界矩形
ObjectCount目前頁面上頁面物件(文字、路徑、影像、著色、表單)的唯讀數量
ObjectHandle指定頁面物件的原始 PDFium FPDF_PAGEOBJECT 指標
ObjectTransparent指示頁面物件是否參與 PDF 透明度 — 可能是透過
ObjectType回傳指定索引處頁面物件的類別 — 文字、路徑、影像、著色或 Form XObject。分類與產生物件的 PDF 內容串流運算子相符,讓呼叫端可用單一 switch 分派迭代頁面物件陣列
function OptimizeImages(const Options: TPdfImageOptimizeOptions; out Report: TPdfImageOptimizeReport): Boolean當頁面影像物件的有效放置 DPI 超過呼叫端目標時,透過原生點陣圖與 FPDFImageObj_SetBitmap 路徑進行降取樣,然後讓文件準備好 SaveAs
function GetFeatureInventory: TPdfFeatureInventory掃描每一頁一次,回傳統一的記錄,包含文字、路徑、影像、Form XObject 與著色物件計數,以及文件層級事實
function GetObjectText(Index: Integer): WString擷取單一文字物件繪製的文字
function GetObjectsByType(ObjType: TObjectType): TPdfIntegerArray列出目前頁面上同一種類的每個頁面物件索引
function GetPageActionType(EventType: Integer): Integer回報頁面開啟或關閉附加動作的 PDFACTION_* 類型,沒有時為 0
function GetPageActionURI(EventType: Integer): WString讀取頁面開啟或關閉動作所開啟的 URI
function GetTextInReadingOrder(Order: TPdfReadingOrder): WString以原始內容順序或排序後的實體閱讀順序擷取頁面文字
function GetTextObjectRenderedBitmap(Index: Integer; Scale: Single): TBitmap以要求的縮放單獨點陣化一個文字物件
function GetTextRenderMode(Index: Integer): Integer讀取文字物件的 FPDF_TEXTRENDERMODE_* 模式,藉此區分隱形 OCR 文字與可見文字
function GetWidgetAdditionalActionJavaScript(AnnotIndex, EventType: Integer): WString讀取表單欄位元件的按鍵、格式、驗證或計算指令碼
function AuditActiveContent: TPdfActiveContentAudit回傳 JavaScript 動作數量、內嵌檔案、簽章、XFA 表單類型與權限的快照,不執行任何指令碼或動作
property OnFormFieldEnter當表單填寫引擎在表單欄位取得焦點時觸發
property OnFormFieldExit當表單填寫引擎在表單欄位失去焦點時觸發
property OnJavaScriptResponse當 PDF 內嵌 JavaScript 動作要求使用者互動時觸發
property OnPageChange當 Pdf.Page 被指定為不同頁面索引時觸發
property OnUnsupportedFeature當文件使用 PDFium 未實作的 PDF 功能時觸發(例如 XFA 完整表單、3D 註解、多媒體)
property OnXfaGotoUrl在動態 XFA 表單內導覽連結 URL 時觸發
property OnXfaUriAction當連結 URI 動作在動態 XFA 環境中觸發時引發
function PadesCryptoAvailable: Boolean指示簽章密碼學後端在系統上是否可用
Page目前作用中頁面的原生 PDFium 頁面控制代碼
function PageUsesOverprint: Boolean當可選列印輸出擴充支援偵測時,查詢頁面的精確疊印使用
function PathInfo(Index: Integer): TPdfPathInfo讀取路徑物件的填色模式、筆畫旗標與線段幾何
property PageBounds[Box: TPdfPageBox]: TPdfRectangle頁面層級屬性 — 所要求頁面框(MediaBox/CropBox/BleedBox/TrimBox/ArtBox)的矩形
property PageBox[Box: TPdfPageBox]: TPdfRectangle頁面層級屬性 — 讀取或寫入目前頁面上的特定頁面框矩形
property PageCount: Integer頁面層級屬性 — 開啟文件中的頁面總數
property PageMetrics[PageNumber: Integer]: TPdfPageMetrics任一頁面的快取尺寸、旋轉、標籤、透明度與標準頁面框
property CacheBudgetBytes: Int64為單一 TPdf 執行個體設定統一的保留快取位元組上限
property CacheGovernor: TPdfCacheGovernor回傳所持有的共用治理器,用於逐類型查詢與應用程式快取協調
property CacheGovernorStatistics: TPdfCacheGovernorStatistics回傳目前、尖峰、釘選、逐出、觸控與拒絕遙測
property LifecycleActionPolicy: TPdfLifecycleActionPolicy選擇停用、僅明確或相容的自動文件與頁面生命週期動作執行
property PageSceneCacheCapacity: Integer為索引式算繪保留的已剖析非作用中頁面場景數量上限
property PageSceneCacheCount: Integer目前可重複使用的已剖析頁面場景數量
PageHeight作用中頁面的高度,以 PDF 使用者空間單位(點(point)= 1/72 英吋)表示
function PageObjectClipPath(Index: Integer): TPdfClipPath讀取限制單一頁面物件繪製範圍的裁剪路徑
function PageObjectInfo(Index: Integer): TPdfPageObjectInfo以單一記錄讀取單一頁面物件的每個可編輯屬性
function PageObjectMarkedContentID(Index: Integer): Integer讀取將頁面物件連結到結構樹的 /MCID,未標記時為 -1
function PageObjectMarks(Index: Integer): TPdfContentMarks讀取附加到頁面物件的 marked-content 標籤與具型別屬性清單
property PageLabel: WString頁面層級屬性 — 回傳使用者可見的頁面標籤(例如 "iv" 或 "A-3"),而非以零起始的索引
property PageMode: TPageMode頁面層級屬性 — 文件的 /PageMode 提示(Outlines、Thumbs、FullScreen 等)
property PageNumber: Integer可讀寫、1 起算的目前頁面索引,具邊界檢查與可安全回復的原生頁面替換
property PageRotation: TRotation頁面層級屬性 — 算繪時套用至目前頁面的旋轉(ro0 / ro90 / ro180 / ro270)
function PageToDevice(PageX, PageY: Double; Left, Top, Width, Height: Integer; Rotation: TRotation; out X, Y: Integer): Boolean將點的頁面座標轉換為螢幕座標
property PageWidth: Double頁面層級屬性 — 目前頁面的寬度,以點(point)為單位(1 pt = 1/72 英吋)
function PageWordBoxes: TPdfWordBoxes回傳目前 TPdf 頁面上單字的 TPdfWordBox 記錄,含字元範圍與頁面空間矩形
function ExecuteDocumentLifecycleAction(Action: TPdfDocumentLifecycleAction; out ErrorMessage: string): Boolean執行一個原生文件生命週期動作,回報原則、環境或回呼失敗,不傳播例外
function ExecutePageLifecycleAction(PageNumber: Integer; Action: TPdfPageLifecycleAction; out ErrorMessage: string): Boolean執行頁面開啟或關閉動作,不變更目前頁面,並確定性地釋放暫時的原生頁面狀態
TPdfDocumentLifecycleAction / TPdfPageLifecycleAction文件與頁面生命週期動作的原則與執行模型,涵蓋停用、僅明確與相容自動三種模式
property Password在 Active := True 之前指定的解密密碼
PdfAConformance目前開啟文件的唯讀 PDF/A 一致性層級,無需明確呼叫 ValidatePdfA
PdfEConformance目前開啟文件的唯讀 PDF/E 一致性層級,無需明確呼叫 ValidatePdfE
PdfRConformance目前開啟文件的唯讀 PDF/R 一致性層級,無需明確呼叫 ValidatePdfR
PdfUaConformance目前開啟文件的唯讀 PDF/UA 一致性層級,無需明確呼叫 ValidatePdfUa
PdfVersion唯讀旗標 — 開啟文件的 PDF 規格版本(例如 pv14、pv17、pv20)
PdfVTConformance目前開啟文件的唯讀 PDF/VT 一致性層級,無需明確呼叫 ValidatePdfVT
PdfXConformance目前開啟文件的唯讀 PDF/X 一致性層級,無需明確呼叫 ValidatePdfX
function PerformNamedAction(const ActionName: string): Boolean執行具名動作;NextPage、PrevPage、FirstPage 與 LastPage 會在夾限下移動 PageNumber
property Permissions回傳從 /Encrypt 字典解碼的擁有者密碼權限位元
PrintCopiesPDF 作者希望列印對話方塊使用的內嵌建議份數
PrintPageRanges解碼後的 1 起算頁面範圍清單,代表 PDF 作者希望的列印範圍
PrintPaperHandling文件 /ViewerPreferences /Duplex 提示的解碼值 —
PrintScaling文件 /ViewerPreferences /PrintScaling 的解碼值
Producer產生此檔案的 PDF 程式庫或轉換器名稱
function ReadXmpPacket: TPdfXmpPacket以呼叫端持有的已剖析物件讀取 XMP 中繼資料封包
function InspectPdfAMetadata: TPdfAMetadataReport針對所有八項 ISO 19005-1 Info 至 XMP 的映射,回傳具型別的等價性證據
function InspectPdfUaLanguageCoverage: TPdfUaLanguageCoverageReport使用 marked-content、結構祖先與 catalog 語言繼承,回報有界的自然語言證據
function InspectPdfUaUnicodeCoverage: TPdfUaUnicodeCoverageReport在單次原生文字頁處理中,回報物件範圍的直接 Unicode 與 ActualText 擷取涵蓋率
function ReadAttachmentMetadata(MaxAttachments: Integer = 10000): TPdfAttachmentMetadataArray在單次有界的原生列舉中擷取附件中繼資料與解碼後大小,不載入酬載位元組
function ReadStructureElements(PageNumber; Options; out Status): TPdfStructureElements在呼叫端選擇的深度、元素、屬性與時間預算下,具體化迭代式結構樹快照
ReadableContent回傳語意可讀內容片段,供螢幕閱讀器、文字轉語音與無障礙工作流程使用
function ReadablePageContent(PageNumber: Integer): TPdfReadableContent回傳語意可讀內容片段,供螢幕閱讀器、文字轉語音與無障礙工作流程使用
function ReadingUnits: TPdfReadingUnits從目前頁面的可讀內容串流建置句子層級的 TPdfReadingUnit 記錄,供輔助聆聽閱讀工作流程使用
Rectangle從目前頁面文字版面回傳一個文字邊界矩形
procedure RefreshAppearance(AnnotIndex: Integer)強制 PDFium 重新產生單一註解的外觀串流
procedure RemoveAnnotationObject(Index, ObjectIndex: Integer)從墨跡或圖章註解刪除一個頁面物件
function RectangleCount(StartIndex: Integer = 0; Count: Integer = MaxInt): Integer計算一段文字佔用的矩形區域數量。若這些字元位於同一行且使用相同的字型設定,函式會自動將小的字元框合併為較大的框
procedure ReloadPage從 PDFium 引擎重新載入目前選取的頁面,重新整理頁面物件快取
procedure RemoveObject(Index: Integer; DestroyObject: Boolean = True)從目前頁面移除指定的頁面物件。DestroyObject 為 True 時,移除的物件會在移除後釋放。頁面內容串流會自動重新產生
procedure RemovePageObjectMark(Index, MarkIndex: Integer)從頁面物件移除一個 marked-content 項目
procedure RemovePageObjectMarkParam(Index, MarkIndex: Integer; const Key: WString)從既有標記移除一個屬性,不替換整個標記
procedure RenderPage(DeviceContext: HDC; Left, Top, Width, Height: Integer; Rotation: TRotation = ro0; Options: TRenderOptions = [])將頁面內容算繪至裝置(螢幕、點陣圖或印表機)
function RenderPageByIndex(PageNumber, Width, Height: Integer; Rotation: TRotation = ro0; Options: TRenderOptions = []; Color: TColor = clWhite): TBitmap算繪任一頁面而不變更 PageNumber,並跨輸出大小重複使用其已剖析的 PDFium 場景
procedure RenderPageSkia(Canvas: FPDF_SKIA_CANVAS; Width, Height: Integer; DrawFormOverlay: Boolean = True)將目前頁面與可選表單覆蓋層算繪至呼叫端持有的 SkCanvas
procedure RenderPageSkiaByIndex(Canvas: FPDF_SKIA_CANVAS; PageNumber, Width, Height: Integer; DrawFormOverlay: Boolean = True)透過已剖析頁面場景快取,將任一頁面算繪至 Skia,不變更目前頁面
function RenderPageWithMatrix(Width, Height: Integer; const Matrix: FS_MATRIX; const Clip: TPdfRectangle; Options: TRenderOptions = []; Color: TColor = clWhite): TBitmap以任意變換搭配目的地空間的裁剪矩形進行算繪
function RenderSpotPlate(PlateIndex, Width, Height: Integer; Rotation: TRotation = ro0; Options: TRenderOptions = []; Color: TColor = clWhite): TBitmap當可選 ABI 公開此操作時,算繪一個精確的原生印刷色版
function RenderOverprintPreview(Width, Height: Integer; Rotation: TRotation = ro0; Options: TRenderOptions = []; Color: TColor = clWhite): TBitmap當可選 ABI 公開此操作時,算繪精確的原生疊印預覽
function RenderPageBanded(Width, Height, BandHeight: Integer; BandCallback: TPdfBandCallback; Rotation: TRotation = ro0; Options: TRenderOptions = []; Color: TColor = clWhite): Integer以水平條帶算繪頁面,讓大型頁面不需要全尺寸點陣圖
function RenderPageBandedToEncoder(Width, Height, BandHeight: Integer; Encoder: TPdfBandedImageEncoder; Rotation: TRotation = ro0; Options: TRenderOptions = []; Color: TColor = clWhite): TPdfBandedImageReport將連續的原生裁剪條帶交付給呼叫端持有的編碼器,並回報進度與尖峰條帶記憶體
function RenderPageBandedToStream(Stream: TStream; Width, Height: Integer; const StreamOptions: TPdfBandedImageStreamOptions; Rotation: TRotation = ro0; Options: TRenderOptions = []; Color: TColor = clWhite): TPdfBandedImageReport直接從頁面條帶串流 PNG 或 TIFF 列,不保留整頁像素
RenderPageProgressiveRenderPage 的可取消版本,驅動 PDFium 的漸進式算繪迴圈,並在迭代之間輪詢 IPdfCancellationToken,讓長時間的高 DPI 算繪能在頁面中途中止,而不是阻塞到完成
function RenderPageProgressiveWithColorScheme(Bitmap: TBitmap; Left, Top, Width, Height: Integer; const AToken: IPdfCancellationToken; const ColorScheme: TPdfColorScheme; Rotation: TRotation = ro0; Options: TRenderOptions = []; Background: TColor = clWhite): TPdfProgressiveStatus可取消的漸進式算繪,覆寫路徑與文字顏色以利低視力閱讀
function RenderPagesParallel(const PageNumbers: array of Integer; const Options: TPdfParallelRenderOptions; const CancellationToken: IPdfCancellationToken = nil): TPdfParallelRenderReport將目前文件擷取一次至有界儲存,並透過共用記憶體、唯讀檔案映射或原生隨機存取的隔離 worker 持有 PDFium 文件,算繪要求的頁面
function RenderPageThumbnail(PageIndex, MaxWidth, MaxHeight: Integer; Rotation: TRotation; Options: TRenderOptions; Background: TColor; const ColorScheme: TPdfColorScheme): TBitmap將任一 1 起算頁面算繪至具修訂版快取、由呼叫端持有的點陣圖,並提供完整的算繪鍵控制
function RenderTile(Left, Top, Width, Height, PageWidth, PageHeight: Integer; Rotation: TRotation = ro0; Options: TRenderOptions = []; Color: TColor = clWhite): TBitmap將頁面的矩形區域算繪至新點陣圖。回傳的點陣圖必須手動釋放
function SpotPlates: TPdfSpotPlateInfos當可選 ABI 公開列舉時,回傳精確的原生特別色版索引與 UTF-8 名稱
InspectOptionalContent列舉可選內容群組、組態、使用中繼資料、選項按鈕群組、OCMD 運算式與生效的 PDFium 算繪狀態
function IsAnnotationSubtypeSupported(Subtype: TPdfAnnotationSubtype): Boolean回報載入的 PDFium 模組能否建立該註解子類型
function IsAnnotationObjectSubtypeSupported(Subtype: TPdfAnnotationSubtype): Boolean回報 PDFium 能否為該註解子類型擷取與編輯外觀物件
function SaveAs(Stream: TStream; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown): Boolean將 PDF 文件副本儲存至指定串流。PdfVersion 為 pv13 至 pv17 時,儲存輸出會針對該目標版本進行正規化與驗證,包含增量輸出中既有的 catalog /Version 覆寫。驗證器涵蓋完整的 PDF 1.1–1.7 / ISO 32000-1 功能時間軸:篩選器(FlateDecode、JBIG2Decode、JPXDecode)、物件與 xref 串流、透明度(SMask、ca/CA、混合模式)、Tagged PDF(StructTreeRoot、MarkInfo)、色彩空間(ICCBased、DeviceN)、頁面框(BleedBox/TrimBox/ArtBox)、output intents、可選內容、AcroForm、CID/Type 0 與 OpenType 字型、AES 與 AES-256 加密(CFM AESV2/AESV3)、所有受版本限制的註解子類型(Widget、Sound、Movie、FreeText、Line、Square、Circle、Highlight、Underline、StrikeOut、Stamp、Ink、Popup、FileAttachment、TrapNet、Squiggly、PrinterMark、Polygon、PolyLine、Caret、Screen、Watermark、3D、Redact)、受版本限制的動作類型(SubmitForm、ResetForm、ImportData、Hide、Named、JavaScript、Trans、SetState、Rendition、GoToE、GoTo3DView),以及 catalog 項目(Perms、Legal、Collection、Requirements、NeedsRendering)。超出所選目標版本的任何內容都會引發 EPdfError。若文件沒有既有 OpenAction 且目標版本支援,儲存的 PDF 會以 Fit Height 縮放開啟第一頁。試用版會在儲存時套用試用浮水印
function SaveAsLinearized(Stream: TStream; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown): Boolean寫入完整重寫的 Fast Web View PDF,含首頁分組、兩個傳統 xref 區段,並在有益時壓縮附錄 F 提示
function SaveAsLinearized(const FileName: string; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown): Boolean完成並驗證同目錄暫存檔後,以原子方式將 Fast Web View 輸出寫入檔案
function SaveAsObjectStream(Stream: TStream; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown; MaxObjectsPerStream: Integer = 100; MaxDecodedBytesPerStream: Integer = 65536): Boolean依頁面區域性重新排列作用中物件,將符合條件的值打包成有界的 ObjStm 群組,並寫入完整的 type-2 xref 項目
function SaveAsObjectStream(const FileName: string; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown; MaxObjectsPerStream: Integer = 100; MaxDecodedBytesPerStream: Integer = 65536): Boolean完成同目錄暫存檔後,以原子方式寫入 PDF 1.5+ 物件串流輸出
function SaveAsNormalizedContent(Stream: TStream; out Report: TPdfContentNormalizeReport; const Options: TPdfContentNormalizeOptions; SaveOption: TSaveOption = saNoIncremental; PdfVersion: TPdfVersion = pvUnknown): Boolean正規化每個邏輯頁面內容序列,並將安全的 /Contents 陣列合併為單一串流
function SaveAsNormalizedContent(const FileName: string; out Report: TPdfContentNormalizeReport; const Options: TPdfContentNormalizeOptions; SaveOption: TSaveOption = saNoIncremental; PdfVersion: TPdfVersion = pvUnknown): Boolean寫入正規化內容與完整傳統 xref 後,以原子方式取代檔案
SaveAsPageLabelled寫入完整 PDF 副本,將 catalog /PageLabels 數字樹替換為提供的範圍,並依 ISO 32000-1 §12.4.2 套用十進位、羅馬與字母編號樣式
SaveAsOptionalContentConfigured寫入並嚴格驗證副本,針對單一組態與用途套用呼叫端選擇的可選內容群組可見性
function SaveAsReachable(Stream: TStream; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean掃除不可抵達的物件,並將文件重寫為保留物件編號的單一傳統修訂版
function SaveAsReachable(const FileName: string; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean刪減式單一修訂版重寫後,以原子方式取代檔案
function SaveAsDeduplicated(Stream: TStream; out Report: TPdfDedupReport; AllowSignedDocument: Boolean = False): Boolean掃除不可抵達的物件並重寫參照,讓重複的字型、影像與 Form XObject 共用單一代表物件
function SaveAsDeduplicated(const FileName: string; out Report: TPdfDedupReport; AllowSignedDocument: Boolean = False): Boolean去重單一修訂版重寫後,以原子方式取代檔案
function SaveAsFlateRecompressed(Stream: TStream; const Options: TPdfFlateRecompressOptions; out Report: TPdfFlateRecompressReport; AllowSignedDocument: Boolean = False): Boolean當量測到的節省超過呼叫端門檻時,以最高壓縮率重新編碼符合條件的 FlateDecode 串流
function SaveAsFlateRecompressed(const FileName: string; const Options: TPdfFlateRecompressOptions; out Report: TPdfFlateRecompressReport; AllowSignedDocument: Boolean = False): BooleanFlate 重新壓縮重寫後,以原子方式取代檔案
function SaveAsInlineImagesExternalised(Stream: TStream; const Options: TPdfInlineImageExternaliseOptions; out Report: TPdfInlineImageExternaliseReport; AllowSignedDocument: Boolean = False): Boolean將 BI/ID/EI 行內影像擷取為可重複使用的 XObjects,展開縮寫,並以 Do 運算子取代行內區塊
function SaveAsInlineImagesExternalised(const FileName: string; const Options: TPdfInlineImageExternaliseOptions; out Report: TPdfInlineImageExternaliseReport; AllowSignedDocument: Boolean = False): Boolean行內影像外部化後,以原子方式取代檔案
function SaveAsReproducible(Stream: TStream; out Report: TPdfReproducibleReport; AllowSignedDocument: Boolean = False): Boolean移除非決定性的時間戳與 /ID,讓同一文件的兩次儲存位元組完全相同
function SaveAsReproducible(const FileName: string; out Report: TPdfReproducibleReport; AllowSignedDocument: Boolean = False): Boolean可重現重寫後,以原子方式取代檔案
function ExportObjectGraph(Stream: TStream; const Options: TPdfObjectGraphInspectOptions; out Report: TPdfObjectGraphReport): Boolean以有預算的具型別 JSON 匯出作用中的間接值,並回報明確截斷
function SaveAsObjectGraphPatched(Stream: TStream; const Operations: TPdfObjectPatchOperations; out Report: TPdfObjectGraphReport; AllowSignedDocument: Boolean = False): Boolean附加已驗證的僅字典修補修訂版,並在複製到目的地前執行嚴格載入
function SaveAsObjectGraphPatched(const FileName: string; const Operations: TPdfObjectPatchOperations; out Report: TPdfObjectGraphReport; AllowSignedDocument: Boolean = False): Boolean物件圖修補交易成功後,以原子方式取代檔案
function SaveAsRedacted(Stream: TStream; const Options: TPdfRedactionOptions; out Report: TPdfRedactionReport): Boolean將 /Redact 註解套用至隔離的快照,移除相交的頂層頁面物件,繪製不透明替代內容,並輸出乾淨的單一修訂版串流
function SaveAsRedacted(const FileName: string; const Options: TPdfRedactionOptions; out Report: TPdfRedactionReport): Boolean刪除與清理管線成功後,以原子方式取代檔案
SaveAsSanitised產生剝離作用中內容與 catalog /AF 的乾淨單一修訂版副本,然後清除不可抵達的物件,讓孤立的 JavaScript、動作與附件主體從檔案主體中消失
BeginIncrementalSave / CommitIncrementalSave / EndIncrementalSave變更物件增量儲存工作階段:僅擷取一次穩定基準,在完全相同的先前輸出之後附加保留位元組的修訂版本,完成後釋放工作階段
procedure BeginIncrementalSave(AllowSignedDocument: Boolean = False)為變更物件修訂版工作階段,擷取穩定基準與完全一致的加密或未加密來源前置資料
function CommitIncrementalSave(Stream: TStream; out Info: TPdfIncrementalCommitInfo): Boolean附加變更或新增的間接物件,繼承既有加密,並獨立驗證結果
function CommitIncrementalSave(const FileName: string; out Info: TPdfIncrementalCommitInfo): Boolean在原子取代前持久清寫並重新開啟側檔,並在任何失敗後還原工作階段狀態
procedure EndIncrementalSave釋放工作階段基準與累積輸出
function ExportFDF(const FileName: string): Integer將表單欄位值寫為 FDF(ISO 32000-1 12.7.11);另有 TStream 多載可用
function SaveAsEncrypted(const FileName: string; const Options: TPdfEncryptOptions): Boolean以 AESV3-CBC 或 ISO/TS 32003 AESV4-GCM 加密儲存作用中的 PDF
function SaveAsEncryptedToStream(Stream: TStream; const Options: TPdfEncryptOptions): Boolean將加密的 PDF 輸出寫入任何可搜尋的 TStream,不經磁碟暫存
function PreparePadesRemoteSignature(Prepared: TStream; const Options: TPadesRemoteSignOptions; out Request: TPadesRemoteSigningRequest): Boolean建立受約束的核准或認證欄位,以及遠端簽章所需的分離式簽章摘要、精確 ByteRange、座標與已準備 PDF 指紋
class function CompletePadesRemoteSignature(Prepared, Dest: TStream; const Request: TPadesRemoteSigningRequest; const CmsDer: TBytes): Boolean拒絕已修改或重複使用的工作階段,僅在分離式 CMS 綁定到已準備文件摘要時,填入保留的簽章槽位
class procedure SavePadesRemoteSigningRequest(Stream: TStream; const Request: TPadesRemoteSigningRequest)將固定且具版本控制的遠端簽章要求格式寫入串流
property SecurityHandlerRevision: Integer標準安全性處理器的修訂版,未加密文件為負值
function SetAnnotationFontColor(AnnotIndex: Integer; Color: TColor): Boolean覆寫表單欄位元件註解的文字顏色
procedure SetAttachmentStringValue(Index: Integer; const Key, Value: WString)將一個字串項目寫入附件的檔案規格字典
class procedure SetDeterministicTime(FixedEpoch: Int64)凍結 PDFium 蓋印到輸出的時鐘,讓儲存的文件可位元組重現
class function LoadPadesRemoteSigningRequest(Stream: TStream): TPadesRemoteSigningRequest讀取並驗證固定且具版本控制的遠端簽章要求格式
function RenewPadesArchiveTimestamp(const FileName: string; const Options: TPadesArchiveTimestampOptions; out Report: TPadesArchiveTimestampReport): Boolean將封存文件時間戳附加到原始載入的 PAdES 位元組,並寫入以原子方式暫存的檔案
function RenewPadesArchiveTimestampToStream(Stream: TStream; const Options: TPadesArchiveTimestampOptions; out Report: TPadesArchiveTimestampReport): Boolean附加封存文件時間戳,並將已驗證的 B-LTA 鏈寫入串流
class procedure RestoreActualTime在決定性時間工作階段後,將 PDFium 還原為系統時鐘
function SaveAsPadesDss(const FileName: string; const Options: TPadesDssOptions): Boolean將作用中的 PDF 儲存至檔案,含去重的 PAdES DSS 材料、簽章專屬 VRI 字典與來源 xref 表示
function SaveAsPadesDssToStream(Stream: TStream; const Options: TPadesDssOptions): Boolean將作用中的 PDF 儲存至串流,含去重的 PAdES DSS 材料、簽章專屬 VRI 字典與來源 xref 表示
SaveAsPdfA透過增量更新後處理基礎 PDF,注入 XMP 中繼資料串流、sRGB ICC OutputIntent 與更新的文件 catalog,將目前文件儲存為符合 PDF/A-1b 的檔案
function SaveAsPdfAToStream(Stream: TStream; const Options: TPdfASaveOptions): BooleanSaveAsPdfA 的記憶體內版本 — 將 PDF/A-1b 輸出寫入任何 TStream,不經磁碟暫存
SaveAsPdfE透過增量更新後處理基礎 PDF,注入 PDF/E-1 檔案格式標記(ISO 24517-1:2008),將目前文件儲存為符合 PDF/E-1 的檔案
function SaveAsPdfEToStream(Stream: TStream; const Options: TPdfESaveOptions): BooleanSaveAsPdfE 的記憶體內版本 — 將 PDF/E-1 輸出寫入任何 TStream,不經磁碟暫存
SaveAsPdfR將目前文件儲存為符合 PDF/R-1 的檔案(ISO 23504-1:2020,用於掃描文件的 PDF 點陣影像傳輸與儲存子集)
function SaveAsPdfRToStream(Stream: TStream; const Options: TPdfRSaveOptions): BooleanSaveAsPdfR 的記憶體內版本 — 將 PDF/R-1 輸出寫入任何 TStream,不經磁碟暫存
SaveAsPdfUa預設儲存 PDF/UA-1,或透過 TPdfUaSaveOptions.PdfUa2 儲存 PDF/UA-2,包含必要的 XMP 識別與生效的 PDF 版本
function SaveAsPdfUaToStream(Stream: TStream; const Options: TPdfUaSaveOptions): Boolean記憶體內的 PDF/UA-1 與 PDF/UA-2 輸出,不經磁碟暫存
SaveAsPdfVT將目前文件儲存為符合單檔 PDF/VT-1 的檔案(ISO 16612-2:2010,可變與交易列印 PDF 子集)
function SaveAsPdfVTToStream(Stream: TStream; const Options: TPdfVTSaveOptions): BooleanSaveAsPdfVT 的記憶體內版本 — 將 PDF/VT 輸出寫入任何 TStream,不經磁碟暫存
SaveAsPdfX透過增量更新後處理基礎 PDF,注入 PDF/X 檔案格式標記(ISO 15930 系列),將目前文件儲存為符合 PDF/X-1a:2001、PDF/X-3:2002 或 PDF/X-4 的檔案
function SaveAsPdfXToStream(Stream: TStream; const Options: TPdfXSaveOptions): BooleanSaveAsPdfX 的記憶體內版本 — 將 PDF/X 輸出寫入任何 TStream,不經磁碟暫存
function SaveAsWithAssociateFiles(const FileName: string; const Options: TAssocFilesOptions): Boolean將作用中的 PDF 儲存至檔案路徑,同時依照 ISO 32000-2 §7.11.4 將關聯檔案注入 catalog 或頁面
function SaveAsWithAssociateFilesToStream(Stream: TStream; const Options: TAssocFilesOptions): Boolean將含注入關聯檔案的 PDF 輸出寫入任何可搜尋的 TStream,不經磁碟暫存
function SaveAsWithXmpPacket(Stream: TStream; Packet: TPdfXmpPacket; AllowSignedDocument: Boolean = False): Boolean以替換的 XMP 中繼資料封包儲存文件
function NormalizePdfAMetadata(Stream: TStream; AllowSignedDocument: Boolean = False): Boolean修復不相符的已映射 XMP 屬性,並儲存正規化後的文件
procedure SetFormFieldFlags(Index: Integer; const Flags: TPdfFormFieldFlags)為目前頁面上指定註解索引處的表單欄位設定 AcroForm 欄位旗標
procedure SetFormFieldFlagsAt(X, Y: Single; const Flags: TPdfFormFieldFlags)為給定座標處的表單欄位設定 Flags 位元欄位
function SetFocusedFormFieldText(const Value: WString): Boolean依 FocusedFormFieldIndex 設定目前邏輯表單欄位的值,不依賴互動式插入號
function SetFocusedFormFieldTextDirection(Direction: TPdfFormTextDirection): Boolean變更焦點元件的記憶體內文字方向;儲存時不會保留該值
function SetFocusedFormOptionSelected(Index: Integer; Selected: Boolean): Boolean選取或清除焦點清單方塊或下拉方塊的某一選項
procedure SetPageBox(Box: TPdfPageBox; const Rectangle: TPdfRectangle)為目前頁面上指定名稱的頁面框(MediaBox / CropBox / BleedBox / TrimBox / ArtBox)寫入新矩形
procedure SetPageObjectMarkParam(Index, MarkIndex: Integer; const Param: TPdfContentMarkParam)在既有標記上更新或插入一個具型別屬性,同時保留其識別與不相關屬性
SetText在給定頁面座標加入文字頁面物件
procedure SetTextPositions(ObjectIndex: Integer; const Positions: TPdfSingleArray)設定指定文字物件的逐字元位置。第一個字元位置隱含為 0;Positions[0] 設定第二個字元位置,Positions[1] 設定第三個,依此類推。值以點(point)為單位,相對於文字物件原點
StampPagesFromPdf將來源頁面蓋印為定位、縮放、可選旋轉的 Form XObject 覆蓋層或底層,套用至一或多個目標頁面
Signature索引屬性 — 回傳一筆數位簽章記錄(簽署者、原因、聯絡人、位元組範圍)
SignatureCount內嵌在文件中的數位簽章欄位數量
property Signatures: TPdfSignatures將所有原生簽章記錄複製到一個生命週期安全的快照
function SignPades(const FileName: string; const Options: TPadesSignOptions): Boolean附加核准或認證 PAdES 簽章,可選 seed value、憑證、FieldMDP 與 DocMDP 約束,同時保留既有的表單與權限項目
function SignPadesToStream(Stream: TStream; const Options: TPadesSignOptions): Boolean寫入受約束的 PAdES 簽章更新,含已註冊的 Widget 欄位、64 位元 ByteRange 處理與來源 xref 表示
function SignPadesWithPdfA(const FileName: string; const Options: TPadesSignOptions; PdfAOptions: TPdfASaveOptions): Boolean儲存符合 PDF/A 封存標準的已簽署 PAdES PDF 文件
StructureElements索引屬性 — 回傳邏輯結構樹元素(StructTree)的子節點
Subject回傳 PDF 文件資訊字典中 /Subject 項目的值
function Text(StartIndex: Integer = 0; Count: Integer = MaxInt): WString從頁面擷取文字字串。StartIndex 與 Count 參數決定要擷取的字元。StartIndex 參數以 0 起算
function TextInRectangle(Left, Top, Right, Bottom: Double): WString擷取頁面上矩形邊界內的文字
TextPage目前作用中頁面的原生 PDFium 文字頁面控制代碼
function ThumbnailDecodedData: TBytes讀取內嵌頁面縮圖,並解碼其串流濾器
property ThumbnailCacheMaxEntries: Integer保留的內嵌與算繪縮圖項目上限,預設 64
property ThumbnailCacheMaxBytes: Int64縮圖 LRU 保留的估計像素位元組上限,預設 64 MiB
property ThumbnailCacheStatistics: TPdfThumbnailCacheStatistics回報占用、儲存位元組、命中、未命中與逐出
property ThumbnailRevision: Int64縮圖使用者用來捨棄過期本機預覽的單調內容修訂版
function ThumbnailRawData: TBytes讀取內嵌頁面縮圖的儲存原樣,濾器仍處於套用狀態
property Thumbnail回傳目前頁面 /Thumb 項目的原始位元組(可選的預先計算預覽,通常為 64x64 點陣)
Title回傳 PDF 文件資訊字典中 /Title 項目的值
property TrailerEnds: TPdfCardinalArray文件每個 trailer 結尾的位元組位移,每個修訂版一個
procedure TransformPageAnnotations(const Matrix: FS_MATRIX)對目前頁面上的每個註解套用變換矩陣
procedure TransformPageContent(const Matrix: FS_MATRIX; const Clip: TPdfRectangle)對目前頁面上的每個內容物件套用變換矩陣,並附裁剪矩形
procedure TransformPageObject(Index: Integer; const Matrix: FS_MATRIX)乘上一個頁面物件的變換矩陣,進行移動、縮放、旋轉或傾斜
procedure TransformPageObjectClipPath(Index: Integer; const Matrix: FS_MATRIX)僅變換與單一頁面物件關聯的裁剪幾何
Transparent目前作用中頁面是否含透明內容
procedure UpdateAnnotationObject(AnnotIndex: Integer; PageObj: Pointer)通知註解其某個頁面物件已被修改
procedure UpdatePageObject(Index: Integer; const Value: TPdfPageObjectInfo; Changes: TPdfPageObjectChanges)只寫回變更集合所指名的頁面物件屬性
procedure UpdatePage將透過 CreateAnnotation、AddImage、AddText、SetFormFieldFlagsAt 等進行的記憶體內編輯,提交到底層 PDFium 頁面
property UserPermissions回傳使用者密碼權限位元(Permissions 的子集)
UserGrantedPermissions以具型別的 TPdfPermissions 集合回傳使用者密碼權限
UserHasPermission(Permission: TPdfPermission): Boolean測試單一使用者密碼權限,不需手動位元運算
function ValidatePades: TPadesValidationResult直接在原始來源位元組中驗證唯一的簽章設定檔項目與精確的 Contents 排除範圍,不重新儲存 PDF
function ValidatePadesTrust(const Options: TPadesTrustValidationOptions): TPadesValidationResult驗證精確的原始 ByteRange 資料、簽署者信任、可選的撤銷證據與 RFC 3161 時間戳權杖
function ValidatePadesTrustAsync(const Options: TPadesTrustValidationOptions; const Reply: TPadesTrustValidationReply): Boolean擷取原始來源,並將可取消的分階段信任驗證分派至 worker 執行緒
function ValidatePdfMac(const Password: AnsiString): TPdfMacValidationResult使用精確的原始來源位元組與提供的密碼,驗證獨立 PDF MAC
function ValidatePdfA: TPdfAValidationResult驗證 PDF/A 標記、內容事實,以及精確的 ISO 19005-1 Info 至 XMP 值等價性
function ValidatePdfE: TPdfEValidationResult檢查目前開啟的 PDF 是否具備 PDF/E-1 合規標記,並回傳含偵測到的一致性層級與發現的具體問題集合的結構化結果
ValidatePdfR驗證 PDF/R-1 檔案標記、中繼資料、加密設定檔、僅點陣頁面內容、strip 幾何、色彩、有效解析度與壓縮參數
function ValidatePdfUa: TPdfUaValidationResult驗證 PDF/UA-1 與 PDF/UA-2 識別、共用無障礙規則,以及設定檔專屬的 PDF 2.0 要求
function ValidatePdfVT: TPdfVTValidationResult檢查目前開啟的 PDF 是否具備 PDF/VT 合規標記,並回傳含偵測到的一致性層級與發現問題集合的結構化結果
function ValidatePdfX: TPdfXValidationResult檢查目前開啟的 PDF 是否具備 PDF/X 合規標記,並回傳含偵測到的一致性層級與發現的具體問題集合的結構化結果
function VisitStructureElements(PageNumber; Options; Visitor; out Status): Integer將結構元素快照串流至方法回呼,不具體化頁面陣列
ViewerPreference索引屬性 — 回傳 /ViewerPreferences 鍵的整數值(NumCopies、PrintScaling 等)
WebLink頁面上自動偵測網頁連結的 URL 與邊界矩形
WebLinkCount掃描頁面文字所識別的自動偵測網頁 URL 數量
property XFA回傳內嵌在文件中的 XFA XML 封包(PDF/A 2.0 已棄用此格式,但 Acrobat 產生的表單仍在使用)
property XfaFormPackets: TXfaPacketList將透過 XFA 執行階段公開的所有內嵌 XFA 封包,快照為 TXfaPacketList 集合
property XfaRuntimeAvailable: Boolean指示載入的文件是否能使用 XFA 執行階段
property XfaStaticReadable: Boolean指示是否能在沒有 XFA 執行階段的情況下讀取靜態 XFA 封包
function LinkZOrderAtPoint(X, Y: Double): Integer回傳頁面座標上最前方的連結註解 z 順序,未命中連結時為 -1
function FormFieldZOrderAtPoint(X, Y: Double): Integer回傳頁面座標上最前方的表單欄位 z 順序,未命中欄位時為 -1
function TryGetAnnotationFileAttachment(AnnotIndex: Integer; out Attachment: TPdfAnnotationAttachment; MaxBytes: Cardinal = 67108864): Boolean將有界的檔案附件中繼資料與酬載,從註解複製到呼叫端持有的記錄
function GetLinkedAnnotationIndex(AnnotIndex: Integer; Relationship: TPdfAnnotationRelationship): Integer解析 Popup 或 IRT 相關註解索引,具備懸空參照保護
function GetLinkedAnnotationChain(AnnotIndex: Integer; Relationship: TPdfAnnotationRelationship; MaxDepth: Integer = 64): TPdfIntegerArray走訪 Popup 或 IRT 關係鏈,具備循環與深度保護
function GetAnnotationDictionaryValue(AnnotIndex: Integer; const Key: WString): TPdfDictionaryValue從註解字典項目讀取一個具型別值
function GetAttachmentDictionaryValue(Index: Integer; const Key: WString): TPdfDictionaryValue從內嵌檔案附件字典項目讀取一個具型別值
procedure SetFocusableAnnotationSubtypes(const Subtypes: array of TPdfAnnotationSubtype)限制哪些註解子類型可透過表單控制代碼取得鍵盤焦點
function GetFocusableAnnotationSubtypes: TPdfAnnotationSubtypes回傳目前有資格取得鍵盤焦點的註解子類型
procedure ClearFormSelectionRects清除透過 OnFormSelectionRect 回報的快取表單選取矩形

TPdfView 元件

TPdfView 是可捲動的視覺化控制項,用於顯示 PDF 文件並與之互動,需要一個 Pdf: TPdf 參照

已發佈屬性(設計期)

屬性類型預設值說明
Aboutstring元件版本資訊
ActiveBooleanFalse啟用或停用檢視器
CurrentCharIndexInteger0為相容性而保留的應用程式選取字元索引
DisplayModeTPdfDisplayModedmSingleContinuous頁面顯示模式(dmSingleContinuous、dmTwoPageContinuous、dmTwoPageContinuousWithCover)
OptionsTRenderOptions[reLcd]算繪選項(LCD 文字、註解、灰階等)
PageShadowSizeInteger0可選的陰影大小(像素),負值會收斂為 0
PageShadowColorTColorclGrayPageShadowSize > 0 時使用的陰影填色
PageBorderColorTColorclBlack一像素寬的頁面框線顏色
SmoothScrollBooleanFalse以計時器驅動的分段動畫處理整行與整頁捲軸命令;拖曳捲軸滑塊仍即時反應
LinkOptionsTPdfViewLinkOptions[loAutoGoto, loAutoOpenURI]控制連結點擊事件後自動跳至、URI、啟動與內嵌跳至的行為
AsyncRenderingBooleanFalse啟用後顯示載入覆蓋層;工作者分派仍由應用程式自行負責
LoadingTextstringLoading...在 AsyncRendering 覆蓋層中繪製的文字;空字串會隱藏覆蓋層
LoadingColorTColorclYellowAsyncRendering 覆蓋層的背景顏色
NightDuotoneInkTColor$0000C8FFreNightDuotone 低視能算繪選項使用的墨色
NightDuotonePaperTColorclBlackreNightDuotone 低視能算繪選項使用的紙色
ReadingHighlightColorTColorclSkyBlue控制較大範圍的閱讀高亮覆蓋層顏色
ReadingWordColorTColor$0000A5FF控制目前單字層級閱讀游標使用的覆蓋層顏色
ReadingWordFollowBooleanTrue控制 TPdfView 在追蹤閱讀時是否將目前朗讀單字捲動到可視範圍
PageNumberInteger1目前頁碼(1 起始)
PdfTPdfnilTPdf 元件的參照
RotationTRotationro0顯示旋轉(ro0、ro90、ro180、ro270)
ZoomDouble1.0縮放層級(1.0 = 100%)

TPdfView 專屬公開屬性

屬性類型說明
ActualSizeZoom[PageNumber]Double以實際大小顯示頁面所需的縮放值
property AllowFormEvents: Boolean控制檢視器轉送給表單填寫層的滑鼠、鍵盤與焦點事件;頁面載入與關閉一律不受限制
CanvasTCanvas在檢視器上自訂繪圖用的畫布
CharacterAngle[Index]Single字元旋轉角度(弧度)
CharacterCountInteger目前檢視器頁面上的字元數
CharacterFontSize[Index]Double索引處字元的字型大小;FontSize[Index] 仍作為相容別名保留
CharacterFontWeight[Index]Integer索引處字元的字型粗細
CharacterOrigin[Index]TPoint字元在檢視器裝置座標上的原點
CharacterRectangle[Index]TRect字元在檢視器裝置座標上的邊界
FontAscent[Index; FontSize]Single索引處文字物件所用字型的上伸高度
FontBaseName[Index]WString索引處文字物件的基礎字型名稱
FontData[Index]TBytes索引處文字物件的原始字型資料
FontDescent[Index; FontSize]Single索引處文字物件所用字型的下伸高度
FontFamilyName[Index]WString索引處文字物件的字型家族名稱
FontHandle[Index]FPDF_FONT索引處文字物件的低階 PDFium 字型控制代碼
FontIsEmbedded[Index]Boolean若文字物件的字型已內嵌於 PDF 則為 True
FontItalicAngle[Index]Integer文字物件字型的斜體角度
FontWeight[Index]Integer文字物件字型的粗細
PageHeightZoom[PageNumber]Double在檢視器中符合頁面高度的縮放值
PageWidthZoom[PageNumber]Double在檢視器中符合頁面寬度的縮放值
PageZoom[PageNumber]Double在檢視器中容納整頁的縮放值
StructureElementsTPdfStructureElements目前檢視器頁面扁平化後的邏輯結構元素
WindowHandleHWND檢視器控制項的視窗控制代碼

TPdfView 專屬方法

function AddSearchTextHighlight(const Text: WString; MatchCase: Boolean = False; MatchWholeWord: Boolean = False): Integer高亮目前頁面上該文字的所有符合項,並回傳命中數量
方法說明
CharacterIndexAtPos(X, Y: Integer; ToleranceX, ToleranceY: Double): Integer解析檢視器裝置座標點附近的字元;附近沒有字元時回傳 -1
DeviceToPage(X, Y: Integer; out PageX, PageY: Double): Boolean將檢視器裝置座標轉換為頁面座標
DeviceToPage(X, Y: Integer; var PageNumber: Integer; var PageX, PageY: Double): Boolean將檢視器裝置座標轉換為頁面座標,並偵測所在頁面
DeviceToPage(Rectangle: TRect): TPdfRectangle將檢視器裝置矩形轉換為頁面矩形
PageToDevice(PageX, PageY: Double; out X, Y: Integer): Boolean將頁面座標轉換為檢視器裝置座標
PageToDevice(Rectangle: TPdfRectangle): TRect將頁面矩形轉換為檢視器裝置矩形
LinkAnnotationAtPos(X, Y: Integer): Integer取得螢幕位置上的連結註解索引
LinkAnnotationAtPos(X, Y: Integer; out PageNumber: Integer): Integer取得連結註解索引與頁碼
WebLinkAtPos(X, Y: Integer): Integer取得螢幕位置上的網頁連結索引
WebLinkAtPos(X, Y: Integer; out PageNumber: Integer): Integer取得網頁連結索引與頁碼
PaintSelection(SelectionStart, SelectionEnd: Integer; Mask: TColor)繪製文字選取高亮
function PasteFormTextFromClipboard: Boolean將剪貼簿文字貼入焦點表單欄位
FocusedFormFieldValue: WString依 FocusedFormFieldIndex 回傳目前的邏輯表單欄位值,不依賴互動式游標
function FocusedFormOptionSelected(Index: Integer): Boolean回報焦點清單方塊或下拉方塊的某一選項是否被選取
FocusedFormFieldName: WString回傳目前邏輯表單欄位的顯示名稱,優先使用 AlternateName,其次退回 Name
FocusedFormFieldDetails: TPdfFormFieldInfo回傳目前邏輯表單欄位的 TPdfFormFieldInfo
ReadingUnits: TPdfReadingUnits回傳句子層級的閱讀單元,供輔助聆聽閱讀與語意導覽使用
PageWordBoxes: TPdfWordBoxes回傳含 FTextPage 範圍與頁面空間矩形的單字框,用於逐字高亮
SetReadingWord(const Word: TPdfWordBox)在 TPdfView 上將一個 TPdfWordBox 高亮為目前朗讀單字
ClearReadingWord清除 TPdfView 上目前的單字層級閱讀游標覆蓋
function CopySelectedFormTextToClipboard: Boolean將焦點表單欄位中選取的文字複製到剪貼簿
function CutSelectedFormTextToClipboard: Boolean將焦點表單欄位中選取的文字剪下到剪貼簿
TrackReadingWordAt(PageNumber, CharIndex: Integer): Integer將頁面字元位移映射到包含它的 TPdfWordBox,予以高亮並回傳單字索引
RemoveObject(Index: Integer; DestroyObject: Boolean = True)從目前頁面移除頁面物件、重新產生頁面內容並重繪檢視器
function SelectLineAt(Page, CharIndex: Integer): Boolean選取包含指定字元索引的整行文字
function SetFocusedFormOptionSelected(Index: Integer; Selected: Boolean): Boolean選取或清除焦點清單方塊或下拉方塊的某一選項
GenerateFormAppearances透過關聯的 TPdf 元件重新產生 /AP 外觀串流(參閱 TPdf.GenerateFormAppearances)
FlattenPage(nFlag: Integer = FLAT_NORMALDISPLAY): Integer將目前頁面上的註解與表單元件扁平化為靜態內容
SetFormFieldFlags(Index: Integer; const Flags: TPdfFormFieldFlags)依目前頁面註解索引設定 AcroForm 欄位旗標
SetFormFieldFlagsAt(X, Y: Integer; const Flags: TPdfFormFieldFlags)在檢視器控制項座標上設定 AcroForm 欄位旗標
function ReplaceFormTextAndKeepSelection(const Text: WString): Boolean透過 FORM_ReplaceAndKeepSelection 取代焦點表單欄位文字,同時保留選取狀態
function FormFieldZOrderAt(X, Y: Integer): Integer回傳用戶端座標上最前方的表單欄位 z 順序,未命中時為 -1
function LinkZOrderAt(X, Y: Integer): Integer回傳用戶端座標上最前方的連結註解 z 順序,未命中時為 -1

VCL 繼承與其他屬性及方法

API說明
property About: string記錄 TPdfView 所發佈的 About 成員
Active啟用或停用檢視器,開啟繫結的 PDF 文件並算繪所選頁面
property ActualSizeZoom[PageNumber: Integer]: Double唯讀縮放係數,讓頁面以主機螢幕上的真實實際大小顯示
procedure AddImage(const FileName: string; X, Y, Width, Height: Integer); overload將影像加入 TPdfView 目前顯示的頁面,並將檢視器用戶端座標矩形轉換為 PDF 頁面座標
function AddJpegImage(JpegImage: TStream; X, Y, Width, Height: Integer): BooleanTPdfView 包裝器,轉發至 TPdf.AddJpegImage
procedure AddPicture(Picture: TPicture; X, Y: Integer); overloadTPdfView 包裝器,轉發至 TPdf.AddPicture
Align控制 PDF 檢視器在父容器內的版面配置方式
property AllowUserPageChange: Boolean允許使用者輸入(滑鼠滾輪、拖曳捲軸、按鍵繫結)變更目前頁面
property AllowUserTextSelection: Boolean控制檢視器中由使用者輸入驅動的文字選取
Anchors指定父容器調整大小時,檢視器的哪些邊緣與父容器對應邊緣保持固定距離
property Annotation[Index: Integer]: TPdfAnnotationTPdfView 包裝器,轉發至 TPdf.Annotation
property AnnotationCount: IntegerTPdfView 包裝器,轉發至 TPdf.AnnotationCount
property AsyncRendering: Boolean選用的旗標,讓檢視在長時間算繪期間顯示小型的「Loading...」覆蓋層,使以自有工作者進行離執行緒算繪的應用程式呈現一致的視覺提示
property Bitmap[Index: Integer]: TBitmapTPdfView 包裝器,轉發至 TPdf.Bitmap
property BitmapCount: IntegerTPdfView 包裝器,轉發至 TPdf.BitmapCount
property Canvas: TCanvas頁面算繪完成後由控制項公開的繪圖畫布
property ChangePageOnMouseScrolling: Boolean在單頁模式下,控制在頁面邊緣捲動滑鼠滾輪是否前進到下一頁
property Character[Index: Integer]: WideCharTPdfView 包裝器,轉發至 TPdf.Character
property CharacterAngle[Index: Integer]: SingleTPdfView 包裝器,轉發至 TPdf.CharacterAngle
property CharacterCount: IntegerTPdfView 包裝器,轉發至 TPdf.CharacterCount
property CharacterFontSize[Index: Integer]: DoubleTPdfView 包裝器,轉發至 TPdf.CharacterFontSize
property CharacterFontWeight[Index: Integer]: IntegerTPdfView 包裝器,轉發至 TPdf.CharacterFontWeight
property CharacterGenerated[Index: Integer]: BooleanTPdfView 包裝器,轉發至 TPdf.CharacterGenerated
function CharacterIndexAtPos(X, Y: Integer; ToleranceX, ToleranceY: Double): Integer回傳目前頁面上最接近螢幕像素 (X, Y) 的字元索引,若沒有足夠接近的字元則回傳 -1
property CharacterIsHyphen[Index: Integer]: BooleanTPdfView 包裝器,轉發至 TPdf.CharacterIsHyphen
property CharacterMapError[Index: Integer]: BooleanTPdfView 包裝器,轉發至 TPdf.CharacterMapError
property CharacterOrigin[Index: Integer]: TPointTPdfView 包裝器,轉發至 TPdf.CharacterOrigin
property CharacterRectangle[Index: Integer]: TRectTPdfView 包裝器,轉發至 TPdf.CharacterRectangle
property Charcode[Index: Integer]: WideCharTPdfView 包裝器,轉發至 TPdf.Charcode
procedure ClearFormFieldFocus搭配目前頁面的 AcroForm 邏輯焦點游標,適用於鍵盤、語音與無障礙工作流程
procedure ClearHighlightTPdfView 包裝器,轉發至 TPdfView.ClearHighlight
procedure ClearReadingHighlight控制 TPdfView 供同步文字轉語音播放使用的閱讀高亮覆蓋層
procedure ClearReadingWord清除 TPdfView 上目前的單字層級閱讀游標覆蓋
procedure ClearSelection清除目前的文字選取並使檢視失效重繪
Color設定頁面矩形之間與文件邊緣外圍繪製的背景顏色
Constraints定義父容器調整大小時 PDF 檢視器允許達到的最小與最大寬高
function CopySelectionToClipboard: Boolean透過 Windows 或原生 LCL 系統剪貼簿複製選取的 Unicode 文字
constructor Create(AOwner: TComponent); override建立 TPdfView 控制項並初始化算繪、捲動、選取與表單互動狀態
procedure CreateAnnotation(const Annotation: TPdfAnnotation)TPdfView 包裝器,轉發至 TPdf.CreateAnnotation
property CurrentCharIndex: Integer唯讀、0 起始的字元索引,位於目前滑鼠游標(或最後命中測試點)下方
procedure DeleteAnnotation(Index: Integer)TPdfView 包裝器,轉發至 TPdf.DeleteAnnotation
destructor Destroy; override在 TPdfView 銷毀前釋放檢視器資源、算繪緩衝區與文件訂閱
function DeviceToPage(X, Y: Integer; out PageX, PageY: Double): Boolean; overload將檢視內的螢幕像素 (X, Y) 轉換為目前頁面上的 PDF 使用者空間點
property DisplayMode: TPdfDisplayMode版面配置模式:單頁、連續、雙頁、雙頁連續,含或不含封面
property DragCursor記錄 TPdfView 所發佈的 DragCursor 成員
property DragKind記錄 TPdfView 所發佈的 DragKind 成員
property DragMode記錄 TPdfView 所發佈的 DragMode 成員
Enabled控制 PDF 檢視器是否接受來自滑鼠與鍵盤的使用者輸入
property Find: FPDF_SCHHANDLETPdfView 包裝器,轉發至 TPdf.Find
function FindFirst(const Text: WString; Options: TSearchOptions= []; StartIndex: Integer= 0; DirectionUp: Boolean= True): Integer開始搜尋指定文字。StartIndex 為 0 起始,-1 代表頁面結尾。DirectionUp 參數決定此次搜尋的方向
function FindNext: IntegerTPdfView 包裝器,轉發至 TPdf.FindNext
function FindPrevious: IntegerTPdfView 包裝器,轉發至 TPdf.FindPrevious
property FitMode: TPdfFitMode控制目前頁面在檢視器用戶端區域內的擺放方式;在 Resize 與 PageNumber 變更時自動重新套用,讓混合頁面大小的長文件持續保持框住狀態
function FlattenPage(nFlag: Integer = FLAT_NORMALDISPLAY): IntegerTPdfView 包裝器,轉發至 TPdf.FlattenPage
function FocusFormField(Index: Integer): Boolean搭配目前頁面的 AcroForm 邏輯焦點游標,適用於鍵盤、語音與無障礙工作流程
function FocusNextFormField: Integer搭配目前頁面的 AcroForm 邏輯焦點游標,適用於鍵盤、語音與無障礙工作流程
function FocusPreviousFormField: Integer搭配目前頁面的 AcroForm 邏輯焦點游標,適用於鍵盤、語音與無障礙工作流程
function FocusedFormFieldDetails: TPdfFormFieldInfo回傳目前邏輯表單欄位的 TPdfFormFieldInfo
function FocusedFormFieldIndex: Integer搭配目前頁面的 AcroForm 邏輯焦點游標,適用於鍵盤、語音與無障礙工作流程
function FocusedFormFieldName: WString回傳目前邏輯表單欄位的顯示名稱,優先使用 AlternateName,其次退回 Name
function FocusedFormFieldText: WString搭配目前頁面的 AcroForm 邏輯焦點游標,適用於鍵盤、語音與無障礙工作流程
function FocusedFormFieldTextDirection: TPdfFormTextDirection讀取檢視器中焦點表單元件的記憶體內文字方向
function FocusedFormFieldValue: WString依 FocusedFormFieldIndex 回傳目前的邏輯表單欄位值,不依賴互動式游標
property FontAscent[Index: Integer; FontSize: Single]: SingleTPdfView 包裝器,轉發至 TPdf.FontAscent
property FontBaseName[Index: Integer]: WStringTPdfView 包裝器,轉發至 TPdf.FontBaseName
property FontData[Index: Integer]: TBytesTPdfView 包裝器,轉發至 TPdf.FontData
property FontDescent[Index: Integer; FontSize: Single]: SingleTPdfView 包裝器,轉發至 TPdf.FontDescent
property FontFamilyName[Index: Integer]: WStringTPdfView 包裝器,轉發至 TPdf.FontFamilyName
property FontFlags[Index: Integer]: IntegerTPdfView 包裝器,轉發至 TPdf.FontFlags
property FontHandle[Index: Integer]: FPDF_FONTTPdfView 包裝器,轉發至 TPdf.FontHandle
property FontIsEmbedded[Index: Integer]: BooleanTPdfView 包裝器,轉發至 TPdf.FontIsEmbedded
property FontItalicAngle[Index: Integer]: IntegerTPdfView 包裝器,轉發至 TPdf.FontItalicAngle
property FontSize[Index: Integer]: DoubleTPdfView 包裝器,轉發至 TPdf.FontSize
property FontWeight[Index: Integer]: IntegerTPdfView 包裝器,轉發至 TPdf.FontWeight
function FormCanRedo: Boolean回報焦點 AcroForm 表單元件是否至少有一筆可重做的已復原編輯
function FormCanUndo: Boolean回報焦點 AcroForm 表單元件是否至少有一筆可復原的編輯
property FormField[Index: Integer]: WStringTPdfView 包裝器,轉發至 TPdf.FormField
property FormFieldAt[X, Y: Integer]: WStringTPdfView 包裝器,轉發至 TPdf.FormFieldAt
property FormFieldCount: IntegerTPdfView 包裝器,轉發至 TPdf.FormFieldCount
property FormFieldInfo[Index: Integer]: TPdfFormFieldInfoTPdfView 包裝器,轉發至 TPdf.FormFieldInfo
property FormFieldInfoAt[X, Y: Integer]: TPdfFormFieldInfoTPdfView 包裝器,轉發至 TPdf.FormFieldInfoAt
function FormFieldTypeAt(X, Y: Integer; out FieldType: TPdfFormFieldType): Boolean將檢視像素轉換為頁面座標,並執行原生欄位類型點擊測試
function FormFieldTabOrder: TPdfIntegerArray搭配目前頁面的 AcroForm 邏輯焦點游標,適用於鍵盤、語音與無障礙工作流程
function FormRedo: Boolean在焦點 AcroForm 表單元件上重做最近一次已復原的編輯,驅動 PDFium 每個表單元件的重做歷程
function FormUndo: Boolean在焦點 AcroForm 表單元件上復原最近一次編輯,驅動 PDFium 每個表單元件的復原歷程
procedure GenerateFormAppearancesTPdfView 包裝器,轉發至 TPdf.GenerateFormAppearances
function GetSelectedFormText: WString回傳檢視作用頁面上焦點 AcroForm 表單元件內目前選取的文字
property HasFormFieldAt[X, Y: Integer]: BooleanTPdfView 包裝器,轉發至 TPdf.HasFormFieldAt
function HasSelection: Boolean回傳檢視器中目前是否選取了任何文字
property HighlightColor: TColor在 HighlightSearchText 回傳的每個符合項上繪製矩形的顏色。預設為 clYellow;已發佈供應用程式自訂高亮配色
function HighlightSearchText(const Text: WString; MatchCase: Boolean= False; MatchWholeWord: Boolean= False): IntegerTPdfView 包裝器,轉發至 TPdfView.HighlightSearchText
property Image[Index: Integer]: TPdfImageTPdfView 包裝器,轉發至 TPdf.Image
property ImageCount: IntegerTPdfView 包裝器,轉發至 TPdf.ImageCount
property LinkAnnotation[PageNumber, Index: Integer]: TLinkAnnotationTPdfView 包裝器,轉發至 TPdf.LinkAnnotation
function LinkAnnotationAtPos(X, Y: Integer; out PageNumber: Integer): Integer; overload回傳螢幕像素 (X, Y) 上的連結註解索引,沒有則回傳 -1
property LinkAnnotationCount[PageNumber: Integer]: IntegerTPdfView 包裝器,轉發至 TPdf.LinkAnnotationCount
property LinkOptions: TPdfViewLinkOptions已發佈的集合,控制使用者點擊連結時檢視自動跟隨 PDFium 四種連結動作類型中的哪些
LoadingColor頁面仍在算繪時所繪製「載入中」預留內容的填色
LoadingText非同步算繪仍在進行時顯示在頁面中央的文字
property NightDuotoneInk: TColor控制 reNightDuotone 低視能算繪選項使用的墨色
property NightDuotonePaper: TColor控制 reNightDuotone 低視能算繪選項使用的紙色
property ObjectBitmap[Index: Integer]: TBitmapTPdfView 包裝器,轉發至 TPdf.ObjectBitmap
property ObjectBounds[Index: Integer]: TPdfRectangleTPdfView 包裝器,轉發至 TPdf.ObjectBounds
property ObjectCount: IntegerTPdfView 包裝器,轉發至 TPdf.ObjectCount
property ObjectHandle[Index: Integer]: PointerTPdfView 包裝器,轉發至 TPdf.ObjectHandle
property ObjectTransparent[Index: Integer]: BooleanTPdfView 包裝器,轉發至 TPdf.ObjectTransparent
property ObjectType[Index: Integer]: TObjectTypeTPdfView 包裝器,轉發至 TPdf.ObjectType
property Options: TRenderOptions算繪提示與 TPdfView 算繪後低視能選項的集合
property Page: FPDF_PAGETPdfView 包裝器,轉發至 TPdf.Page
property PageBorderColor: TColor每個頁面矩形外圍繪製的 1 像素框線顏色
property PageBounds: TPdfRectangleTPdfView 包裝器,轉發至 TPdf.PageBounds
property PageColor: TColor繪製在算繪後 PDF 頁面下方的背景顏色,與周圍控制項的 Color 分離。預設為 clWhite,即使主控制項的 Color 採用深色主題,PDF 頁面仍保持紙白色
property PageCount: IntegerTPdfView 包裝器,轉發至 TPdf.PageCount
property PageHeight: DoubleTPdfView 包裝器,轉發至 TPdf.PageHeight
property PageHeightZoom[PageNumber: Integer]: Double唯讀縮放係數,讓頁面高度符合檢視
property PageLabel: WStringTPdfView 包裝器,轉發至 TPdf.PageLabel
property PageNumber: IntegerTPdfView 包裝器,轉發至 TPdf.PageNumber
property PageRotation: TRotationTPdfView 包裝器,轉發至 TPdf.PageRotation
PageShadowColor每個頁面矩形下方繪製陰影的填色
property PageShadowSize: Integer連續模式下每頁外圍柔和陰影的寬度(像素)
function PageToDevice(PageX, PageY: Double; out X, Y: Integer): Boolean; overloadDeviceToPage 的反向操作:將 PDF 使用者空間點轉換為檢視內的螢幕像素
property PageWidth: DoubleTPdfView 包裝器,轉發至 TPdf.PageWidth
property PageWidthZoom[PageNumber: Integer]: Double唯讀縮放係數,讓頁面寬度符合檢視
function PageWordBoxes: TPdfWordBoxes回傳目前 TPdfView 頁面上單字的 TPdfWordBox 記錄,含字元範圍與頁面空間矩形
property PageZoom[PageNumber: Integer]: Double在目前 DisplayMode 下將目前頁面容納進檢視所需的唯讀縮放值
procedure PaintSelection(SelectionStart, SelectionEnd: Integer; Mask: TColor)TPdfView 包裝器,轉發至 TPdfView.PaintSelection
property ParentShowHint記錄 TPdfView 所發佈的 ParentShowHint 成員
property Pdf: TPdf參照其文件由檢視器算繪的 TPdf 元件
PopupMenu將 TPopupMenu 與 PDF 檢視器建立關聯,在頁面上按右鍵時顯示快顯功能表
ReadableContent回傳語意可讀內容片段,供螢幕閱讀器、文字轉語音與無障礙工作流程使用
property ReadingHighlightColor: TColor控制 TPdfView 供同步文字轉語音播放使用的閱讀高亮覆蓋層
function ReadingUnits: TPdfReadingUnits從目前 TPdfView 頁面建構句子層級的 TPdfReadingUnit 記錄
property ReadingWordColor: TColor控制目前單字層級閱讀游標使用的覆蓋層顏色
property ReadingWordFollow: Boolean控制 TPdfView 在追蹤閱讀時是否將目前朗讀單字捲動到可視範圍
property Rectangle[Index: Integer]: TRectTPdfView 包裝器,轉發至 TPdf.Rectangle
function RectangleCount(StartIndex: Integer = 0; Count: Integer = MaxInt): IntegerTPdfView 包裝器,轉發至 TPdf.RectangleCount
procedure ReloadPageTPdfView 包裝器,轉發至 TPdf.ReloadPage
procedure RemoveObject(Index: Integer; DestroyObject: Boolean = True)TPdfView 包裝器,轉發至 TPdf.RemoveObject
procedure RenderPage(DeviceContext: HDC; Left, Top, Width, Height: Integer; Rotation: TRotation = ro0; Options: TRenderOptions = [])將頁面內容算繪至裝置(螢幕、點陣圖或印表機)
function RenderTile(Left, Top, Width, Height, PageWidth, PageHeight: Integer; Rotation: TRotation = ro0; Options: TRenderOptions = []): TBitmap將頁面的矩形區域算繪至新點陣圖。回傳的點陣圖必須手動釋放
property Rotation: TRotation套用至算繪頁面的視覺旋轉(ro0 / ro90 / ro180 / ro270)
procedure SelectAll選取檢視器目前顯示頁面上的所有字元
function SelectAllFormText: Boolean選取檢視作用頁面上焦點 AcroForm 表單元件內的所有字元(相當於在表單元件內按 Ctrl+A)
function SelectTextRange(Page, StartIndex, Count: Integer): Boolean在不需要使用者滑鼠輸入的情況下讀寫 TPdfView 的程式化文字選取模型
function SelectWordBox(const Word: TPdfWordBox): Boolean在目前 TPdfView 頁面上選取一個 TPdfWordBox 所代表的文字範圍
function SelectWordSpan(const Words: TPdfWordBoxes; StartIndex, EndIndex: Integer): Boolean將同頁的一段 TPdfWordBox 記錄選取為單一 TPdfView 文字選取
function SelectedText: WString以寬字串回傳目前選取的文字
function SelectionCharCount: Integer回傳目前選取的字元總數
property SelectionColor: TColor使用者拖曳文字選取覆蓋層的填色
function SelectionRanges: TPdfUserSelectionRanges在不需要使用者滑鼠輸入的情況下讀寫 TPdfView 的程式化文字選取模型
function SelectionRectangles: TPdfRectangles在不需要使用者滑鼠輸入的情況下讀寫 TPdfView 的程式化文字選取模型
procedure SetFormFieldFlags(Index: Integer; const Flags: TPdfFormFieldFlags)TPdfView 包裝器,轉發至 TPdf.SetFormFieldFlags
procedure SetFormFieldFlagsAt(X, Y: Integer; const Flags: TPdfFormFieldFlags)TPdfView 包裝器,轉發至 TPdf.SetFormFieldFlagsAt
function SetFocusedFormFieldTextDirection(Direction: TPdfFormTextDirection): Boolean變更焦點表單元件的記憶體內文字方向並重繪頁面場景
procedure SetReadingHighlight(const Rects: TPdfRectangles; PageNumber: Integer)控制 TPdfView 供同步文字轉語音播放使用的閱讀高亮覆蓋層
procedure SetReadingWord(const Word: TPdfWordBox)在 TPdfView 上將一個 TPdfWordBox 高亮為目前朗讀單字
function SetSelection(const Ranges: TPdfUserSelectionRanges): Boolean在不需要使用者滑鼠輸入的情況下讀寫 TPdfView 的程式化文字選取模型
ShowHint啟用或停用滑鼠停留在 PDF 檢視器上時顯示的提示氣泡
property SmoothScroll: Boolean為整行與整頁捲軸命令啟用計時器驅動的分段動畫。拖曳捲軸滑塊仍即時反應
property StructureElements: TPdfStructureElementsTPdfView 包裝器,轉發至 TPdf.StructureElements
TabOrder定義 PDF 檢視器在父容器 Tab 循環中的位置
TabStop指出使用者是否能以 Tab 鍵將焦點移至 PDF 檢視器
function Text(StartIndex: Integer = 0; Count: Integer = MaxInt): WStringTPdfView 包裝器,轉發至 TPdf.Text
function TextInRectangle(Left, Top, Right, Bottom: Integer): WString; overloadTPdfView 包裝器,轉發至 TPdf.TextInRectangle
property TextPage: FPDF_TEXTPAGETPdfView 包裝器,轉發至 TPdf.TextPage
property Thumbnail: TBitmapTPdfView 包裝器,轉發至 TPdf.Thumbnail
property Touch記錄 TPdfView 所發佈的 Touch 成員
function TrackReadingWordAt(PageNumber, CharIndex: Integer): Integer將頁面字元位移映射到包含它的 TPdfWordBox,予以高亮並回傳單字索引
property Transparent: BooleanTPdfView 包裝器,轉發至 TPdf.Transparent
procedure UpdatePageTPdfView 包裝器,轉發至 TPdf.UpdatePage
Visible顯示或隱藏 PDF 檢視器
property WebLink[PageNumber, Index: Integer]: TWebLinkTPdfView 包裝器,轉發至 TPdf.WebLink
function WebLinkAtPos(X, Y: Integer; out PageNumber: Integer): Integer; overload回傳螢幕像素 (X, Y) 上的網頁連結索引
property WebLinkCount[PageNumber: Integer]: IntegerTPdfView 包裝器,轉發至 TPdf.WebLinkCount
property WindowHandle: HWND控制項的原生視窗或 Widget Handle,依選定平台與 Widget Set 解讀
property Zoom: Double縮放係數,1.0 = 100%(72 DPI 下一個 PDF 點 = 1 個螢幕像素)

TPdfView 事件

事件類型說明
OnPageChangeTNotifyEvent捲動期間顯示的頁面變更時觸發
OnPageNumberChangedTNotifyEventPageNumber 屬性被修改時觸發
OnAnnotationLinkClickTPdfViewAnnotationLinkClickEvent註解連結自動動作執行前觸發;設定 Handled 可隱藏預設動作
OnWebLinkClickTPdfViewWebLinkClickEvent自動偵測的網頁連結自動動作執行前觸發;設定 Handled 可隱藏 ShellExecute
OnPaintTNotifyEvent自訂繪圖作業期間觸發
property OnAnnotationLinkClick: TPdfViewAnnotationLinkClickEvent使用者點擊 LinkOptions 未自動處理的 /Annot Subtype Link 時觸發
property OnCanResize記錄 TPdfView 所發佈的 OnCanResize 事件
OnClick使用者在檢視器內點擊(滑鼠左鍵)時發生
property OnConstrainedResize記錄 TPdfView 所發佈的 OnConstrainedResize 事件
property OnContextPopup記錄 TPdfView 所發佈的 OnContextPopup 事件
OnDblClick使用者在檢視器內按兩下(滑鼠左鍵)時發生
property OnDragDrop記錄 TPdfView 所發佈的 OnDragDrop 事件
property OnDragOver記錄 TPdfView 所發佈的 OnDragOver 事件
property OnEndDock記錄 TPdfView 所發佈的 OnEndDock 事件
property OnEndDrag記錄 TPdfView 所發佈的 OnEndDrag 事件
property OnEnter記錄 TPdfView 所發佈的 OnEnter 事件
property OnExit記錄 TPdfView 所發佈的 OnExit 事件
property OnFormFieldFocusChange: TPdfFormFieldFocusEventTPdfView 移動或清除邏輯 AcroForm 欄位焦點游標時觸發
property OnGesture記錄 TPdfView 所發佈的 OnGesture 事件
property OnKeyDown: TKeyEvent控制項取得焦點時按下按鍵即觸發
property OnKeyPress: TKeyPressEvent針對鍵盤產生的每個字元觸發
property OnKeyUp: TKeyEvent檢視器控制項取得焦點時放開按鍵即發生
property OnMouseActivate記錄 TPdfView 所發佈的 OnMouseActivate 事件
property OnMouseDown: TMouseEvent使用者在檢視上按下滑鼠按鍵時觸發
property OnMouseEnter記錄 TPdfView 所發佈的 OnMouseEnter 事件
property OnMouseLeave記錄 TPdfView 所發佈的 OnMouseLeave 事件
property OnMouseMove: TMouseMoveEvent滑鼠在檢視上移動時即觸發
property OnMouseUp: TMouseEvent使用者放開滑鼠按鍵時觸發
property OnMouseWheel: TMouseWheelEvent滾輪在檢視上轉動時觸發
property OnMouseWheelDown記錄 TPdfView 所發佈的 OnMouseWheelDown 事件
property OnMouseWheelUp記錄 TPdfView 所發佈的 OnMouseWheelUp 事件
property OnPageChange: TNotifyEvent目前頁面因任何原因變更時觸發
property OnPageNumberChanged: TNotifyEvent因捲動使可見頁碼變更時觸發
property OnPaint: TNotifyEvent檢視完成目前頁面的繪製後觸發
property OnResize: TNotifyEvent控制項用戶端區域大小變更時即觸發
property OnSelectionChange: TNotifyEvent實體化的文字選取範圍實際變更時觸發
property OnStartDock記錄 TPdfView 所發佈的 OnStartDock 事件
property OnStartDrag記錄 TPdfView 所發佈的 OnStartDrag 事件
property OnWebLinkClick: TPdfViewWebLinkClickEvent使用者點擊 LinkOptions 未自動處理的文字偵測網址時觸發

TPdfDocumentSearch 類別

惰性的文件全域正向或反向文字搜尋,僅為目前頁面保留原生 PDFium 控制代碼

方法

方法說明
Next回傳一個 TPdfDocumentSearchResult,含頁面、字元範圍、文字與頁面空間矩形

屬性

成員類型說明
CurrentPageInteger目前正在搜尋的頁面(1 起始)
DirectionTPdfDocumentSearchDirection正向或反向走訪
FinishedBoolean是否已無更多結果可回傳
CancelledBoolean取消權杖是否已結束搜尋
MatchCountUInt64已回傳的結果數量

TPdfProgressiveDocument 類別

TPdfProgressiveDocument 衍生自 TPdf,在遠端或持續成長的隨機存取資料流接收所要求的位元組範圍時,維持 PDFium 原生可用性工作階段存活

方法

方法說明
BeginProgressiveLoad以可選的初始連續前置資料啟動邏輯大小的隨機存取工作階段
CheckDocumentAvailability詢問 PDFium 文件中繼資料是否就緒,並回傳合併後的下載提示
OpenProgressiveDocument開啟原生線性化文件或已完成的非線性化自訂資料流
CheckFormAvailability管制表單填寫初始化,並回傳任何額外的位元組範圍
LoadAvailablePage在所需位元組送達後管制並啟用一個 1 起始頁面
CancelProgressiveLoad依依賴順序釋放所有漸進式狀態

屬性與事件

成員類型說明
ProgressiveLoadingBoolean原生可用性工作階段是否存活
LogicalFileSizeUInt64最終 PDF 內容長度
AvailableByteCountUInt64單調遞增的可讀前置長度
LinearizationTPdfLinearization原生線性化判定
FirstAvailablePageNumberInteger1 起始的第一個可用頁面
OnDataAvailableTPdfDataAvailableEvent稀疏範圍快取的可用性回呼
RangeRequestsTPdfRangeRequestScheduler由原生可用性提示填入的自有優先權排程器

TPdfRangeRequestScheduler 類別

執行緒安全、傳輸方式無關的排程器,用於合併、排定優先權、分割、重試、取消與統計稀疏 PDF 位元組範圍請求

核心工作流程

方法說明
EnqueueHints加入缺少的原生位元組範圍,並搶先中斷重疊的較低優先權傳輸
TryDequeue將最高優先權的請求移入進行中集合
CompleteRequest在位元組儲存後提交完整或部分的傳輸回應
FailRequest在 MaxRetryCount 內重試或放棄失敗的傳輸嘗試
MarkAvailable記錄外部已有的位元組,並取消重複的擱置或進行中工作
Cancel使世代失效,並就進行中的傳輸請求通知主機

TPdfStreamInspector 類別

來自 FPdfStreamInspect 單元,針對任意實體 PDF 串流物件的唯讀有界盤點與擷取

核心工作流程

成員說明
Create檢查位元組陣列或可搜尋資料流,同時保留呼叫端的資料流位置
CopyRawData將完整編碼承載或經驗證的原始位元組視窗複製到目的地資料流
DecodeData依宣告順序套用支援的一般性篩選器,並回報仍屬原生編解碼器邊界的部分
Infos回傳物件位移、長度、篩選器中繼資料、DecodeParms 與原生存取分類

TPdfReadingSession 元件

TPdfReadingSession 是與 TTS 無關的朗讀狀態機,協調 TPdfSpokenText 區塊、主機語音引擎回呼與 TPdfView 單字游標高亮

方法

方法說明
Create(AOwner: TComponent)以預設的估計語音節奏初始化閒置工作階段
LoadSpoken(const Chunks: TPdfSpokenTexts)停止目前的播放,並依序複製要朗讀的區塊
Play從第一個已載入的區塊開始播放
PlayFrom(ChunkIndex: Integer)從 0 起始的區塊索引開始播放
Pause從 pssSpeaking 轉為 pssPaused,並引發 OnPauseRequest
Resume恢復暫停的播放;若啟用 ResumeRestartsChunk 則重新朗讀目前區塊
Stop取消播放、重設區塊與單字游標,並清除附加在 TPdfView 上的單字高亮
FeedSpokenPosition(SpokenOffset: Integer)將語音引擎位移對映回 PDF 頁面字元,並移動 TPdfView 單字游標
Tick(SpeechStillBusy: Boolean; ElapsedMs: Cardinal = 0)前進到下一個區塊、結束播放,或在語音仍在進行時估計目前單字

屬性

屬性類型說明
StateTPdfReadingSessionState目前狀態:pssIdle、pssSpeaking 或 pssPaused
ChunkCountInteger已載入的朗讀區塊數量
CurrentChunkInteger0 起始的作用中區塊索引,沒有作用中區塊時為 -1
CurrentWordInteger目前區塊內 0 起始的作用中單字索引,未知時為 -1
ViewTPdfView接收單字游標更新的檢視器
EstimatePacingBoolean對沒有單字位置訊號的語音引擎,使用經過時間估計單字位置
EstimatedWordsPerMinuteInteger估計節奏使用的語音速率,預設 175
ResumeRestartsChunkBoolean對暫停會取消佇列語音的引擎,讓 Resume 重新朗讀目前區塊

事件

事件類型說明
OnSpeakTPdfReadingSpeakEvent主機應朗讀某個區塊時引發
OnCancelRequestTNotifyEvent主機應取消語音時引發
OnPauseRequestTNotifyEvent主機應暫停語音時引發
OnResumeRequestTNotifyEvent主機應在不重播區塊的情況下恢復語音時引發
OnChunkChangeTPdfReadingChunkEvent作用中區塊變更時引發
OnWordChangeTPdfReadingWordEvent作用中單字變更時引發
OnFinishedTNotifyEvent最後一個區塊播畢後引發

TPdfThumbnailView 元件

TPdfThumbnailView 是來自 FPdfThumbnail 單元的可捲動側邊面板控制項,連結到 TPdf 元件,並為頁面導覽逐列算繪頁面縮圖

已發佈屬性

屬性類型預設值說明
PdfTPdfnil用於縮圖算繪的文件元件
CurrentPageIndexInteger01 起始的所選頁面索引;0 表示未選取任何頁面
ThumbnailWidthInteger120目標縮圖寬度,限制在 48..800
ThumbnailHeightInteger160目標縮圖高度,限制在 48..800
TextColorTColorclBlack頁碼標題的顏色
HoverColorTColorclMoneyGreen滑鼠停留縮圖下該列的高亮顏色
SelectionColorTColorclHighlightCurrentPageIndex 所在列的高亮顏色
BorderColorTColorclGray縮圖框線顏色

事件

事件類型說明
OnPageClickTPdfThumbnailClickEvent使用者以左鍵點擊縮圖列時觸發;APageIndex 為 1 起始

資料型別與列舉

核心型別

類型定義
WString用於 Unicode 文字的寬字串型別
TPdfIntegerArrayInteger 值的動態陣列
TPdfSingleArraySingle 值的動態陣列,用於文字物件的字元位置
TPdfPrintPageRange記錄:StartPage、EndPage: Integer
TPdfPrintPageRanges1 起始列印頁面範圍的動態陣列
TPdfPoint記錄:X、Y: Double
TPdfRectangle記錄:Left、Top、Right、Bottom: Double
TPdfDocumentSearchDirectiondsdForward、dsdBackward
TPdfDocumentSearchResult儲存 1 起始頁面、原生字元範圍、符合的文字與頁面空間矩形
TPdfReadingUnit儲存一個朗讀閱讀單元,含文字、語意種類、頁面、高亮矩形、來源索引、替代文字狀態與語言
TPdfReadingUnitsTPdfReadingUnit 記錄的動態陣列
TPdfWordBox儲存一個單字、其 FTextPage 字元範圍、其頁面空間矩形與 1 起始頁碼
TPdfWordBoxesTPdfWordBox 記錄的動態陣列
TPdfSpokenSpan將一段語音引擎文字對映回來源頁面字元範圍
TPdfSpokenSpansTPdfSpokenSpan 記錄的動態陣列
TPdfSpokenText語音文字加上對映回 PDF 頁面文字的區段
TPdfSpokenTextsTPdfSpokenText 區塊的動態陣列
TPdfReadingSessionStatepssIdle、pssSpeaking、pssPaused
TPdfReadingSpeakEventTPdfReadingSession.OnSpeak 的回呼簽章
TPdfReadingChunkEventTPdfReadingSession.OnChunkChange 的回呼簽章
TPdfReadingWordEventTPdfReadingSession.OnWordChange 的回呼簽章
TPdfStreamAdapter將可搜尋的 TStream 公開為 PDFium FPDF_FILEACCESS 回呼的類別
TPdfRandomAccessStore執行緒安全的可搜尋資料流,具備有界記憶體、安全的暫存檔溢寫、定位 I/O、傳輸、沖刷與儲存診斷
TPdfStorageBackendpsbMemory、psbTemporaryFile
TPdfXObjectCreateXObjectFromPage 所建立可重複使用 Form XObject 控制代碼的存續期包裝器
TPdfFileIdentifierTypefidPermanent、fidChanging
TPdfPageBoxpbMedia、pbCrop、pbBleed、pbTrim、pbArt
TPdfJavaScriptAction記錄:Name、Script: WString
TPdfJavaScriptActionsTPdfJavaScriptAction 記錄的動態陣列
TPdfVersionpvUnknown、pv10、pv11、pv12、pv13、pv14、pv15、pv16、pv17;pv13 到 pv17 的明確 SaveAs 目標會正規化,並對所選 PDF 版本進行驗證
TPdfVersionInfo來自 FPdfCompress 單元的記錄,分別包含標頭、目錄、有效核心與 Adobe 開發擴充版本資訊
TRotationro0、ro90、ro180、ro270
TSaveOptionsaNone、saIncremental、saNoIncremental、saRemoveSecurity
TObjectTypeotUnknown、otText、otPath、otImage、otShading、otForm
TPageModepmNone、pmOutline、pmThumbs、pmFullScreen、pmOptionalContentGroup、pmAttachments、pmUnknown
TPdfActionacUnsupported、acGoto、acGotoRemote、acUri、acLaunch
TPdfPrintModeprEmf、prTextOnly、prPostScript2、prPostScript3、prPostScript2PassThrough、prPostScript3PassThrough、prEmfImageMasks、prPostScript3Type42、prPostScript3Type42PassThrough
TPdfDisplayModedmSingleContinuous、dmTwoPageContinuous、dmTwoPageContinuousWithCover
TPdfViewLinkOptionloAutoGoto、loAutoOpenURI、loAutoLaunch、loAutoEmbeddedGoto
TPdfViewLinkOptionsTPdfViewLinkOption 值的集合

搜尋與算繪選項

類型值
TSearchOptionseCaseSensitive、seWholeWord、seConsecutive
TSearchOptionsTSearchOption 值的集合
TRenderOptionreAnnotations、reLcd、reNoNativeText、reGrayscale、reDebugInfo、reNoCatchException、reLimitCache、reHalftone、rePrinting、reReverseByteOrder、reNoSmoothText、reNoSmoothImage、reNoSmoothPath、reInvert、reNightDuotone
TRenderOptionsTRenderOption 值的集合

繪圖型別

類型值
TPdfFillModefmNone、fmAlternate、fmWinding
TPdfLineCaplcDefault、lcButt、lcRound、lcProjectingSquare
TPdfLineJoinljDefault、ljMiter、ljRound、ljBevel
TPdfPathSegmentTypepstUnknown、pstLineTo、pstBezierTo、pstMoveTo
TPdfOverlayPlacementopTopLeft、opTopCenter、opTopRight、opMiddleLeft、opCenter、opMiddleRight、opBottomLeft、opBottomCenter、opBottomRight、opStretch、opCustom
TPdfBlendModebmDefault、bmMultiply、bmScreen、bmOverlay、bmDarken、bmLighten、bmColorDodge、bmColorBurn、bmHardLight、bmSoftLight、bmDifference、bmExclusion、bmHue、bmSaturation、bmColor、bmLuminosity

註解型別

類型說明
TPdfAnnotationSubtype註解子類型:Text、Link、FreeText、Line、Square、Circle、Polygon、PolyLine、Highlight、Underline、Squiggly、StrikeOut、Stamp、Caret、Ink、Popup、FileAttachment、Sound、Movie、Widget、Screen、PrinterMark、TrapNet、Watermark、3D、RichMedia、XFAWidget、Redact
TPdfAnnotationFlag旗標:afInvisible、afHidden、afPrint、afNoZoom、afNoRotate、afNoView、afReadOnly、afLocked、afToggleNoView
TPdfAnnotation記錄,包含子類型、旗標、顏色、文字、矩形,以及到 AttachmentPointSets 為止的所有標記四邊形集合

表單型別

類型說明
TPdfFormTypeftUnknown、ftNone、ftAcroForm、ftXfaFull、ftXfaForeground
TPdfFormFieldTypefiUnknown、fiPushButton、fiCheckBox、fiRadioButton、fiComboBox、fiListBox、fiTextField、fiSignature
TPdfFormFieldFlagffReadOnly、ffRequired、ffNoExport、ffMultiline、ffChoiceCombo、ffChoiceEdit、ffPassword、ffChoiceMultiSelect
TPdfFormFieldInfo記錄,包含 FieldType、Flags、Name、Value、AlternateName 與其他屬性

PAdES 封存時間戳型別

類型說明
TPadesArchiveTimestampOptionsTSA URL、nonce、權杖容量、可選的 DSS 重新整理旗標、完整的取代用 DSS 材料,以及 Default
TPadesArchiveTimestampReport來源與結果的 PAdES 層級、先前的與結果的文件時間戳數量、來源與結果位元組長度、DSS 更新狀態、產生時間、原則 OID 與回傳的 nonce

PAdES 簽章演算法型別

類型說明
TPadesSignatureAlgorithmFamilypsafUnknown、psafRsa、psafEcdsa、psafEd25519 或 psafEd448
TPadesSignatureAlgorithmInfoCMS 摘要與簽章 OID、X.509 公鑰與具名曲線 OID、參數存在性與 SHAKE 輸出長度、演算法家族,以及獨立的原則狀態

PAdES 修訂分析型別

類型說明
TPadesRevisionAnalysisStatusprasNotChecked、prasNoLaterChanges、prasAllowed、prasDisallowed、prasSuspicious 或 prasIndeterminate
TPadesRevisionChangeKind分類 xref、簽章、驗證材料、表單欄位、註解、頁面內容、文件結構、中繼資料、作用中內容、已刪除、已壓縮或未知變更
TPadesRevisionObjectChange回報修訂、物件與世代編號、來源位移或物件串流編號與索引、分類、決策、授權單位與重定義狀態
TPadesSignatureRevisionAnalysis回報單一簽章涵蓋的修訂、DocMDP 與 FieldMDP 原則、後續修訂、風險、狀態與物件變更
TPadesRevisionAnalysisReport彙整來源狀態、修訂與簽章計數、風險、狀態、每個簽章的分析與剖析器錯誤

PAdES 證據報告型別

類型說明
TPadesEvidenceReportOptions信任設定,加上來源位元組、簽章、修訂變更、驗證材料、已儲存位元組與 VRI 預算
TPadesValidationMaterialEvidence依物件編號、已儲存長度、種類與 SHA-256 識別一筆已儲存的 DSS 憑證、OCSP 回應或 CRL
TPadesVriEvidence將一個 VRI 金鑰與字典物件對映到其憑證、OCSP 與 CRL 物件參照
TPadesSignatureEvidence針對單一簽章,關聯 PDFium 事實、ByteRange、內容與 VRI 雜湊、CMS 原則、驗證狀態、信任路徑雜湊、DSS/VRI 涵蓋範圍與修訂決策
TPadesEvidenceReport彙整驗證、修訂、DSS、PDFium、截斷與每個簽章的證據,並提供 ToJson 與 ToCsv 匯出

影像編解碼器、文件差異與拼版型別

型別或函式說明
TPdfImageCodecpicKeepOriginal、picJpeg、picJpx、picCcittGroup4 或 picFlate
TPdfImageCodecs允許的 TPdfImageCodec 值集合
TPdfImageCodecCandidate用於編解碼器選擇的影像事實與實測編碼位元組長度
TPdfImageCodecDecision選出的編解碼器、原始與所選位元組數、節省量與取代決策
SelectPdfImageCodec在未達要求節省量時不取代原始資料的前提下,選出最小的合格實測編碼
TPdfDocumentDiffOptions算繪尺寸、顏色容許度、文字與幾何關卡、頁面預算,以及 Default
TPdfPageDifference單一頁面的文字、幾何、旋轉、像素計數與變更邊界證據
TPdfPageDifferencesTPdfPageDifference 記錄的動態陣列
TPdfDocumentDiffReport彙總等價結果、頁面計數、變更頁面、像素、截斷與詳細差異
TPdfImpositionModepimNUp 或 pimBooklet
TPdfImpositionOptions輸出大小、網格、裝訂、裝訂溝、出血、伸縮調整、反序出紙選項,以及 Default
TPdfImpositionSlot單一拼版位置的紙張、正反面、槽位、來源頁面、伸縮調整與可用邊界
TPdfImpositionSlotsTPdfImpositionSlot 記錄的動態陣列
TPdfImpositionPlan來源與補齊後計數、紙張與正反面計數、輸出網格與幾何,以及排序後的槽位
TPdfImpositionExecutionReport原生匯入、已匯入頁面、唯一來源、空白槽位、XObject 範本、表單物件、內容產生、輸出頁面與原生 N-up 執行事實
TPdfContentMarkSnapshots呼叫端持有的不可變內容標記快照動態陣列
TPdfPageObjectSnapshots呼叫端持有的不可變頁面物件快照動態陣列
BuildPdfImpositionPlan在不開啟或變更文件的情況下建構並驗證 N-up 或小冊子槽位計畫

記錄型別

類型欄位
TBookmarkHandle、Title、PageNumber、Destination、DescendantCount、IsOpen、Action、ActionPageNumber、ActionDestination、ActionPath、HasColor、Color、Style
TDestinationHandle、Name、PageNumber、ViewMode、ViewParameterCount、ViewParameters、HasX、X、HasY、Y、HasZoom、Zoom
TPdfDocumentMetadataTitle、Author、Subject、Keywords、Creator、Producer、CreationDate、ModifiedDate
TPdfBatchMergeSourceFileName、PageRange、Password 與 FromFile 建構函式
TPdfBatchMergeOptionsErrorPolicy、FormPolicy、OutlinePolicy、ResourcePolicy、PageChunkSize、InsertAt、CreateDestination、CopyViewerPreferences、RollbackOnCancelOrFailure、CancellationToken、OnProgress 與 Default
TPdfBatchMergeReport最終狀態、來源與頁面計數器、原生匯入指標、開啟來源高峰數、原則偵測、目的地與檢視器偏好狀態、錯誤文字與問題清單
TLinkAnnotationHandle、Rectangle、PageNumber、Action、ActionPageNumber、ActionPath、Points
TWebLinkUrl: WString、Rectangles: TPdfRectangles
TPdfImageWidth: Integer、Height: Integer、Data: TBytes
TPdfSignatureContent: TBytes、Encoding: WString、Reason: WString、Time: WString、Permission: Integer
TPdfFormSelectionRectPageNumber: Integer、Bounds: TPdfRectangle
TPdfStructureElement階層、文字替代、MCID、表格與清單屬性、命名空間與命名空間角色對映、參照、關聯檔案、註解描述、表單元件擁有權、標籤與外觀事實
TPdfStructureReadOptions迭代結構走訪的最大深度、元素、屬性值、期限與屬性納入控制
TPdfStructureReadStatus已走訪計數器,加上完成、深度、元素、屬性、期限與訪客中止等結果
TPdfUaNamespaceKindpunkMissing、punkPdf17、punkPdf20、punkMathMl、punkAria、punkDpub、punkCustom

導覽與權限型別

類型值
TPdfDestinationViewModedvmUnknown、dvmXYZ、dvmFit、dvmFitHorizontal、dvmFitVertical、dvmFitRectangle、dvmFitBoundingBox、dvmFitBoundingBoxHorizontal、dvmFitBoundingBoxVertical
TPdfPermissionpermPrint、permModify、permCopy、permAnnotate、permFillForms、permAccessibility、permAssemble、permPrintHighQuality
TPdfPermissionsTPdfPermission 值的集合

文件載入、儲存與串流型別

類型值
TPdfLoadModeplmCompatible、plmStrict、plmRecovery — 選擇載入時可執行多少修復
TPdfLoadStatusplsNotAttempted、plsLoaded、plsLoadedWithRecovery、plsRejected、plsFailed
TPdfLoadRecoveryRouteplrrNone、plrrNativeCrossReference、plrrNativeCrossReferenceRebuild
TPdfContentNormalizeStatuspcnsNotStarted、pcnsCompleted,以及有界失敗原因 pcnsInputLimitExceeded、pcnsOutputLimitExceeded、pcnsTokenLimitExceeded、pcnsMalformedToken、pcnsUnresolvedInlineImage、pcnsUnbalancedState、pcnsUnsupportedFilter、pcnsEncryptedDocument、pcnsSignedDocument、pcnsDocumentRewriteFailed
TPdfObjectPatchOperationKindpopSet、popRemove — SaveAsObjectGraphPatched 使用的操作種類
TPdfObjectPatchValue記錄:Kind、BooleanValue、IntegerValue、RealValue、TextValue、ReferenceObjectNumber、ReferenceGeneration
TPdfOptionalContentStateocsUnspecified、ocsOn、ocsOff
TPdfStreamDecodeLevelpsdlRaw、psdlGeneral、psdlFull
TPdfStreamNativeAccesspsnaNone、psnaImageObject、psnaEmbeddedFile
TPdfStreamReadStatuspsrsCompleted、psrsPartiallyDecoded,以及有界讀取拒絕,如 psrsInvalidIndex、psrsSourceLimitExceeded、psrsExpansionRatioExceeded、psrsUnsupportedFilter、psrsEncrypted、psrsMalformed
TPdfAFRelationshipafSource、afData、afAlternative、afSupplement、afUnspecified、afEncryptedPayload、afFormData、afTemplate — ISO 32000-2 7.11.4 的關聯檔案關係
TDpmTargetdptRoot、dptLeaf — PDF/VT 文件部件中繼資料的附加位置
TPdfXmpNamespace記錄:Prefix、Uri — TPdfXmpPacket 的一個命名空間
TPdfAMetadataValues記錄,包含 PDFium 解碼的對映 Info 值與明確的鍵存在集合
TPdfAMetadataComparison記錄,包含一個對映欄位、其等價狀態與雙方比較值
TPdfAMetadataReport記錄,包含 XMP 可用性、剖析狀態、每個欄位的比較、不符欄位與 IsEquivalent
TPdfLoadIssue記錄:Code、Severity、Offset、ObjectNumber、RevisionIndex、MessageText — 有界交叉參照稽核的一項發現
TPdfLoadIssueCode稽核發現代碼,從 plicHeaderMissing 與 plicStartXrefInvalid 到 plicXrefEntryConflict、plicNativeCrossReferenceRebuild、plicStrictModeRejected 與 plicRepairVerificationFailure
TPdfLoadIssueSeverityplisInformation、plisWarning、plisError
TPdfObjectPatchValueKindpovNull、povBoolean、povInteger、povReal、povName、povTextString、povReference
TPdfStreamFilterInfo記錄:篩選器 Name 與 Kind,加上解碼參數 Predictor、Colors、BitsPerComponent、Columns、EarlyChange
TPdfOptionalContentGroup描述單一 OCG 的記錄:物件編號與世代、Name、Intents、檢視 / 列印 / 匯出狀態、頁面元素子類型、語言、使用者類型與名稱、可選縮放範圍、EffectiveVisible、Locked 與單選群組索引
TPdfOptionalContentConfiguration描述單一 OCG 組態的記錄:名稱、建立者、BaseState、intents、開 / 關 / 鎖定 / 排序群組清單、單選群組,以及是否存在自動狀態
TPdfOptionalContentMembership描述單一 OCMD 的記錄:參照的群組、Policy、可見性運算式與 EffectiveVisible
TPdfOptionalContentMembershipPolicyocmpAnyOn、ocmpAllOn、ocmpAnyOff、ocmpAllOff、ocmpUnknown
TPdfOptionalContentBaseStateocbsOn、ocbsOff、ocbsUnchanged
TPdfOptionalContentRadioGroup記錄:作為同一組單選按鈕行為的群組物件編號
TPdfOptionalContentStateChange記錄:GroupObjectNumber 與要寫入的 Visible 狀態
TPdfXmpValue記錄:Kind(pxvkText、pxvkUri、pxvkResource)、Text、Language、Qualifiers、RawXml
EPdfXmpErrorXMP 輸入格式錯誤時引發的例外
TXfdfNameValuePair記錄:Name、Value — XFDF 文件的一個泛用項目
TPdfDpmEntry記錄:Name、Value、IsNestedDict — 一個 PDF/VT 文件部件中繼資料項目
TPdfVT2sValidationIssuePDF/VT-2s MIME 串流驗證的發現,例如 vtmviNotMultipart、vtmviMissingStreamVersion、vtmviMissingBoundary、vtmviNoInlinePdf 與 vtmviInlinePdfNotPdfVT

文字、字型與 OCR 型別

類型值
TPdfCidFontEmbeddingModepcfemFull、pcfemSubsetPreferred、pcfemSubsetRequired
TPdfSystemFontRequest記錄:FaceName、Weight、Italic、Charset、PitchFamily — 交付給系統字型提供者的字型請求
TPdfSystemFontData記錄:FaceName、FontData、Charset、TTCIndex — 系統字型提供者回傳的字型位元組
TPdfShapedGlyph記錄:GlyphID、Advance、OffsetX、OffsetY、ClusterStart、ClusterLength
TPdfTextShaper具有單一 Shape 方法的抽象類別;實作它即可將外部 shaping 引擎接入 AddShapedText
TPdfTableDetectionModeptdmRuled、ptdmWhitespace
TPdfTableContinuationptcNone、ptcStart、ptcMiddle、ptcEnd — 頁面網格在表格延續鏈中的位置
TPdfOcrImage記錄:PageNumber、Width、Height、Stride、Dpi、PixelFormat、Pixels — 交付給 OCR 提供者的頁面點陣影像
TPdfOcrQuad記錄:TopLeft、TopRight、BottomRight、BottomLeft,並具備 FromRectangle
TPdfOcrPoint記錄:頁面單位的 X、Y
TPdfOcrPixelFormatpopfBgra32 — 交付給 OCR 提供者的像素版面
TPdfOcrPageStatuspopsPending、popsCompleted、popsSkippedExistingText、popsCancelled、popsFailed
TPdfOcrPageReport記錄:頁碼、Status、影像大小,以及偵測 / 插入 / 拒絕的單字數與一則錯誤訊息
TPdfShapedRun記錄:來源文字範圍、視覺位置與寬度、BidiLevel、IsRightToLeft,以及 shaping 後的 Glyphs
TPdfReflowNode記錄:節點 Kind、父索引、深度、頁面、文字、邊界、語言、閱讀順序來源、標題層級、表格列 / 欄幾何、表頭旗標與信賴度
TPdfReflowNodeKindprnkPage、prnkParagraph、prnkHeading、prnkList、prnkListItem、prnkFigure、prnkCaption、prnkTable、prnkTableRow、prnkTableCell、prnkOther
TPdfSearchHighlightRange記錄:StartIndex、Count — 一個高亮的字元範圍
TPdfUserSelectionRange記錄:1 起始的 Page、該頁文字中的 StartIndex 與 Count
TPdfSelectionPoint記錄:1 起始的 Page 與 CharIndex;非正數頁面或 -1 索引代表沒有選取
EPdfTextShapingError文字 shaping 失敗時引發的例外

版面建構器型別

類型值
TPdfLayoutItem版面流程中的一個項目;Kind 選擇文字、間隔、分隔線、影像、頁面 XObject、分頁、快取節點、連結或語意節點
TPdfLayoutItemKindpliText、pliSpacer、pliRule、pliImage、pliPageXObject、pliPageBreak、pliCachedNode、pliLink、pliSemanticNode
TPdfLayoutTextStyle記錄:字型名稱與大小、顏色與 alpha、行高、對齊、舊式段落同行保留、長單字斷行與段前 / 段後間距,並具備 Default 建構函式
TPdfLayoutConstraints記錄:段落同行保留、與下段同頁、段前 / 段後分頁、孤行與寡行限制,並具備保留語意的 Default 建構函式
TPdfLayoutPageSettings記錄:頁面大小與四邊邊界加上頁首與頁尾高度,並具備 A4 與 Letter 建構函式
TPdfLayoutSemanticRoleplsrArtifact、plsrParagraph、plsrHeading1 到 plsrHeading6、plsrList、plsrListItem、plsrListLabel、plsrListBody、plsrTable、plsrTableRow、plsrTableHeader、plsrTableData、plsrFigure、plsrCaption、plsrLink、plsrSection、plsrDivision
TPdfLayoutTableScopepltsNone、pltsRow、pltsColumn、pltsBoth
TPdfLayoutListNumberingplnNone、plnDisc、plnCircle、plnSquare、plnDecimal、plnUpperRoman、plnLowerRoman、plnUpperAlpha、plnLowerAlpha
TPdfLayoutAlignmentplaLeft、plaCenter、plaRight
TPdfLayoutCommandKindplcText、plcRule、plcImage、plcPageXObject、plcCachedNode、plcLink
TPdfLayoutCommand記錄:一個已解析的繪圖命令,含種類、頁碼、邊界、文字與字型、顏色與 alpha、對齊、粗細、檔名或 URI、來源、語意元素索引、標記內容 id 與註解索引
TPdfLayoutRect記錄:版面單位的 Left、Top、Width、Height
TPdfLayoutSemanticElement記錄:一個結構元素的 Semantics 及其 ParentElementIndex
EPdfLayoutError版面輸入無效時引發的例外

PAdES 型別

類型值
TPadesSeedValueConstraintpsvcFilter、psvcSubFilter、psvcVersion、psvcReasons、psvcLegalAttestation、psvcAddRevocationInfo、psvcDigestMethod
TPadesSeedValueConstraintsTPadesSeedValueConstraint 所表示的必要簽章 seed 值項目集合
TPadesSignatureFieldOptions記錄:欄位名稱、必要 seed 值、允許的原因與法律聲明、可接受的憑證、憑證需求、FieldMDP 鎖定動作與欄位名稱,以及 DocMDP 認證權限
TPadesLevelplUnknown、plNone、plB_B、plB_T、plB_LT、plB_LTA — EN 319 142-1 符合性層級
TPadesCryptoStatuspcsNotChecked、pcsValid、pcsInvalid、pcsUnsupported、pcsIndeterminate
TPadesValidationSourceStatuspvssUnavailable、pvssOriginalBytes、pvssIncomplete
TPadesTrustNetworkPolicyptnpOffline、ptnpOnline
TPadesTrustValidationAsyncStatusptvasSuccess、ptvasCancelled、ptvasFailure — ValidatePadesTrustAsync 回報的結果
TPadesRevisionDecisionprdAllowed、prdDisallowed、prdSuspicious、prdIndeterminate
TPadesFieldMdpActionpfmaNone、pfmaAll、pfmaInclude、pfmaExclude、pfmaUnknown
TWinCmsVerifyStatuswcvsUnavailable、wcvsValid、wcvsInvalid、wcvsUnsupported、wcvsIndeterminate — Windows CMS 驗證的結果
TPdfMacValidationStatuspmvsValid、pmvsNotPresent、pmvsInvalid、pmvsUnsupported
TPadesSignatureValidation記錄:每個簽章在位元組範圍、CMS 簽章、演算法原則、簽署憑證、鏈信任、撤銷與時間戳等價項目的狀態,加上原生錯誤代碼與演算法資訊
TPadesValidationIssue針對 EN 319 142-1 與 ISO 32000-1 12.8 提出的發現,包括重複的必要鍵、無效的 Filter 或 Type 值、Contents 的精確排除、憑證、撤銷與時間戳需求
TPadesTrustValidationStageptvsStarting、ptvsReadingSource、ptvsParsingSignatures、ptvsCryptographicIntegrity、ptvsCertificateChain、ptvsAiaRetrieval、ptvsOcspRetrieval、ptvsCrlRetrieval、ptvsTimestampToken、ptvsCompleted
TPadesTrustValidationProgress記錄:目前 Stage、簽章索引與計數,以及完成百分比
TPadesRevisionRisk每個修訂回報的風險,例如 prrMalformedRevisionChain、prrSignatureObjectRedefined、prrPageContentChanged、prrActiveContentAdded 與 prrResourceLimitExceeded
TPadesDssMaterial記錄:加入文件安全儲存庫的單一憑證、CRL 或 OCSP 回應的 DerBytes
TWinCmsVerifyOptions記錄:OnlineRetrieval、CheckRevocation、UrlRetrievalTimeoutMs 與 OnCheckpoint 回呼,並具備 Default 建構函式
TWinCmsVerifyStagewcvstCryptographicSignature、wcvstChainBuild、wcvstOnlineRetrieval、wcvstRevocationCheck

批次、驗證與表單型別

類型值
TPdfBatchMergeErrorPolicybmepStop、bmepSkip
TPdfBatchMergeFormPolicybmfpPreserveNative、bmfpFlatten、bmfpReject
TPdfBatchMergeOutlinePolicybmopDiscard、bmopReject
TPdfBatchMergeResourcePolicybmrpSourceScoped、bmrpChunked
TPdfBatchMergeStatusbmrsCompleted、bmrsCompletedWithErrors、bmrsCancelled、bmrsFailed
TPdfPagePlanOperationppoDelete、ppoMove、ppoInsert
TPdfPagePlanDecisionppdAllow、ppdReview、ppdReject
TPdfValidationPredicateKindpvpkIssueAbsent、pvpkStandardPass、pvpkCustom
TPdfValidationRun記錄:規則結果含通過 / 失敗 / 略過 / 錯誤計數、已走訪物件、證據位元組、保留記憶體高峰、經過毫秒數,以及 IsComplete / IsCompliant
TPdfBatchValidationStatuspbvsComplete、pbvsPartial、pbvsCancelled、pbvsFailed
TPdfInkGesture記錄:描述一筆墨水筆劃的 Points 陣列
TPdfFormFillInfo壓縮記錄,將 PDFium FPDF_FORMFILLINFO 回呼區塊與其擁有的 TPdf 配對;由表單填寫橋接內部使用
TPdfBatchMergeIssue記錄:失敗或被略過來源的 SourceIndex、FileName、MessageText
TPdfBatchMergeProgress記錄:Stage、來源索引與計數、檔名,以及已匯入的來源 / 頁面 / 原生呼叫計數
TPdfBatchMergeProgressStagebmpsStarted、bmpsOpeningSource、bmpsImportingPages、bmpsSourceCompleted、bmpsSourceFailed、bmpsRollingBack、bmpsCompleted、bmpsCancelled、bmpsFailed
TPdfBatchValidationItem記錄:檔名、Status、預檢報告、驗證執行、錯誤訊息與經過毫秒數
TPdfBatchValidationItemStatuspbvisPending、pbvisPass、pbvisFail、pbvisCancelled、pbvisError
TPdfValidationRuleResult記錄:規則 id、設定檔、條款、類別、嚴重性、Status、證據、修復提示與經過毫秒數
TPdfValidationRuleStatuspvrrsPass、pvrrsFail、pvrrsSkipped、pvrrsError
TPdfValidationRunStatuspvrsComplete、pvrsFastFailed、pvrsBudgetExceeded、pvrsCancelled、pvrsError
TPdfARepairStep記錄:排序後的修復動作,含類別、問題代碼、證據、相依性、Safety,以及完整重寫、簽章失效與受阻狀態的旗標
TPdfARepairCategoryparcSecurity、parcFonts、parcColour、parcAttachments、parcStructure、parcMetadata、parcOther
TPdfARepairSafetyparsAutomatic、parsReviewRequired、parsManual
TPdfXProductionIssue記錄:PDF/X 製程檢查的問題 Kind、嚴重性、頁碼、物件索引與證據
TPdfXProductionIssueKindpxpikOutputIntent、pxpikPageBox、pxpikFont、pxpikColourant、pxpikTransparency、pxpikOverprint、pxpikSeparation、pxpikImageResolution
TPdfXProductionPage記錄:每頁的 Box 存在性、物件計數、透明度旗標與最低有效 DPI
TPdfRPageFacts記錄:PDF/R 頁面事實 — 媒體與影像幾何、物件計數、像素大小、解析度、位元深度、色彩空間與篩選器
TPdfPagePlanImpactppiBookmarks、ppiNamedDestinations、ppiPageLabels、ppiFormFields、ppiStructureTree、ppiSignatures、ppiImportedFeaturesUnknown

平行算繪與列印輸出型別

類型值
TPdfParallelRenderOptions記錄:DPI、工作者、每頁像素與總輸出預算、旋轉、原生算繪選項與背景顏色
TPdfBandedImageFormatpbifCustom、pbifPng、pbifTiff
TPdfBandedImageStreamOptions記錄:格式、帶狀高度、PNG 壓縮層級與最大編碼輸出位元組;以 Default 初始化
TPdfBandedImageReport記錄:格式、尺寸、已算繪與已編碼的帶狀計數、已編碼列數、帶狀位元組高峰、輸出位元組與完成狀態
TPdfBandedImageEncoder抽象的呼叫端編解碼器合約,含 BeginImage、循序 WriteBand、EndImage 與可選的位元組遙測
TPdfParallelModuleIdentity記錄:私有模組 FileName、原生 InitializationAddress,以及 Unloaded Handle 釋放結果;平台可能仍保留其記憶體對應
TPdfParallelModuleIdentitiesTPdfParallelModuleIdentity 記錄陣列,保留此次繪製操作隔離 Worker 的模組資訊
TPdfParallelRenderReport記錄:依序排列的結果、Worker 與狀態計數、保留的輸出位元組、經過時間、來源大小、來源記憶體峰值、儲存後端、共用後援種類,以及 Modules 識別診斷
TPdfParallelPageResult記錄:頁碼、像素大小與 Stride、PixelFormat、由上而下的 Pixels、Status、錯誤訊息與經過毫秒數
TPdfParallelPixelFormatpppfBgra、pppfRgba
TPdfParallelRenderStatuspprsPending、pprsSucceeded、pprsCancelled、pprsFailed
TPdfParallelSourceBackingKindppsbNone、ppsbSharedMemory、ppsbMemoryMappedFile、ppsbRandomAccessStore
TPdfSpotPlateInfo記錄:SpotPlates 回報的 0 起始 Index 與分色 Name

FPdfAsync 輔助單元

類型說明
IPdfCancellationToken唯讀取消權杖,具備 IsCancelled、ThrowIfCancelled 與 RegisterCallback
IPdfCancellationTokenSource公開 Token 與 Cancel 的擁有端取消來源
TPdfCancellationTokenSource預設實作;使用 TPdfCancellationTokenSource.New
EPdfOperationCancelled取消之後由 ThrowIfCancelled 引發的例外
TPdfFutureStatuspfsSuccess、pfsCancelled、pfsFailure
TPdfFutureResult<T>結果信封,含 Value、Status、ErrorMessage 與 IsSuccess / IsCancelled / IsFailure 輔助
TPdfFuture<T>.Run發後不理的背景工作者輔助,將回覆排回主執行緒
PdfNoCancellationToken永不取消的共用權杖

FPdfMeasure 輔助單元

成員說明
TPdf.MeasureText以 PDF 使用者單位回傳所選字型與大小的文字寬度和高度
TPdf.MeasureTextWidth僅以 PDF 使用者單位回傳文字寬度
TPdf.WrapText保留明確的換行,並可選擇在 Unicode 純量邊界切分過長的詞元

FPdfMatrix 輔助單元

成員說明
TPdfMatrix.Create建立單位矩陣、明確六值矩陣,或從 FS_MATRIX 複製
NewTranslation / NewScale / NewRotation / NewSkew建立常見轉換,而無需另外的變異步驟
NewRectMapping / TryCreateRectMapping在正規化矩形之間建立拉伸、內含或覆蓋映射
Reset重設為單位矩陣
SetElements / Assign / Clone取代、複製或獨立重製矩陣狀態
Determinant / IsFinite / IsIdentity / IsInvertible在不改變矩陣的情況下檢查數值有效性與可逆性
IsTranslationOnly / IsAxisAligned / NearlyEquals分類轉換形態,並以容許度比較數值
GetTranslation / SetTranslation / ClearTranslation獨立於線性分量讀取或更新平移
TryDecompose擷取平移、帶正負號的縮放、順時針旋轉、剪切、行列式與反射狀態
Multiply後乘另一個 TPdfMatrix 或六個 FS_MATRIX 值
PreMultiply / PreTranslate / PreScale / PreRotate / PreSkew在目前轉換之前前置局部輸入空間的操作
Translate / Scale / Rotate / Skew組合常見的 PDF 空間轉換
HorizontalFlip / VerticalFlip / CentralFlip組合軸向翻轉
RotateAt / ScaleAt / SkewAt / *FlipAt圍繞保持固定的樞紐附加操作
MapRectToRect附加拉伸、內含或覆蓋的矩形映射
Invert / TryInvert / TryGetInverse / InverseCopy以可變方式反轉,或取得非變異的反矩陣,並明確處理奇異矩陣
TransformPoint / TransformVector / InverseTransformPoint在不建立暫存矩陣物件的情況下映射位置、方向向量或反向位置
TransformQuad / TransformRect透過此轉換映射 PDF 四邊形或正規化矩形邊界
TransformPoints / TransformRects以單次結果配置映射動態陣列,或使用不需輸出配置的原地變體
TryTransformBounds / TransformBounds單一回合累加轉換後的點邊界,不需中繼陣列
a, b, c, d, e, f唯讀矩陣元素屬性
Handle供 PDFium API 使用的原始 FS_MATRIX 值

PDFium 輔助類別

類別說明
TPdfCacheGovernor / TPdfCacheParticipant透過單一執行緒安全的全域 LRU 位元組配額協調保留記憶體
TPdfStreamAdapter將可搜尋的 Pascal TStream 包裝為 FPDF_FILEACCESS,用於自訂文件載入
TPdfXObject持有從另一個 PDF 頁面建立的 FPDF_XOBJECT
TTileKey / TPdfTileCache依修訂為算繪圖磚建立索引鍵,並維護有界的 LRU 點陣圖快取
Supporting declarations公開別名、回呼記錄、安全限制、高亮常數與可選的列印輸出 ABI 宣告

全域函式

函式說明
BuildToUnicodeCMap(const Glyphs: array of Word; const Text: WString): AnsiString為 CID Type 2 文字建構可重複使用的 ToUnicode CMap
NormalizePageViewRect(...): Boolean將兩個頁面空間角落排序並裁切到可見頁面邊界
AttachmentDescriptionFeaturesAvailable: Boolean回報附件描述匯出功能是否可用
AttachmentRelationshipFeaturesAvailable: Boolean回報已載入的 DLL 是否匯出 /AFRelationship 讀取器
BezierControlPointFeaturesAvailable: Boolean回報已載入的 DLL 是否公開精確的原生三次貝茲控制點回讀
BookmarkStyleFeaturesAvailable: Boolean回報已載入的 DLL 是否匯出書籤文字樣式讀取器
StrokePatternRenderingFeaturesAvailable: Boolean回報已載入的 DLL 能否將路徑物件的描邊平鋪圖樣點陣化
ReadPdfVersionInfo(Source: TStream; out Info: TPdfVersionInfo; out ErrorText: string): Boolean讀取標頭、目錄覆寫、有效核心版本與 Adobe 開發擴充層級,不將它們合併為單一值
AppendPdfSparseUpdate(Source, Dest: TStream; const Revision: TPdfSparseRevisionInfo; const Objects: TPdfSparseUpdateObjects; const TrailerExtra: AnsiString; const BeforeStartXref: AnsiString = ''): Boolean將一個稀疏修訂串接到已儲存的 PDF:來源位元組原樣保留、呼叫端提供的物件主體,以及透過 /Prev 串接的單一漸增 xref/trailer 區塊
Loaded: Boolean若所選的 PDFium 程式庫已載入則回傳 True
LoadLibrary手動載入 PDFium 程式庫
UnloadLibrary卸載 PDFium 程式庫
ConfigureSystemFontCacheGovernor(Governor: TPdfCacheGovernor)將整個處理程序保留的系統字型結果置於呼叫端持有的共用位元組配額之下
ConfigureSystemFontProvider(const Provider: IPdfSystemFontProvider; const Policy: TPdfSystemFontPolicy)在 PDFium 載入前安裝應用程式控制的原生系統字型映射器
ClearSystemFontProvider在 PDFium 卸載後移除已設定的映射器
GetSystemFontProviderStatistics: TPdfSystemFontStatistics回傳映射、快取、後備、回呼與活躍控制代碼計數器
DecodeDate(const Value: string; out DateTime: TDateTime; out DateTimeOffset: Integer): Boolean將 PDF 日期字串剖析為 TDateTime 與 UTC 位移
SetPdfPrintMode(PrintMode: TPdfPrintMode): Boolean為後續的列印算繪選擇 PDFium Windows 列印輸出模式
SetPdfPrintPaperHandlingDevMode(var DevMode: TDeviceMode; PrintPaperHandling: TPrintPaperHandling): Boolean將 PDF 檢視器偏好的雙面提示映射到 Windows DEVMODE.dmDuplex
V8FeaturesAvailable: Boolean當已載入的 DLL 公開 PDFium V8 輔助匯出時回傳 True
XfaBStrHelpersAvailable: Boolean當已載入的 DLL 公開 XFA FPDF_BSTR 輔助匯出時回傳 True
XfaFeaturesAvailable: Boolean當已載入的 PDFium 組建公開 XFA 功能匯出時回傳 True
GetRecommendedV8Flags: string回傳 PDFium 建議的 V8 命令列旗標,已載入的 DLL 未公開時回傳空字串
PdfBufferLooksXfa(Data: PByte; Size: Integer): Boolean掃描原始 PDF 位元組緩衝區中的 XFA 標記,不載入 pdfium.dll
PdfFileLooksXfa(const FileName: string): Boolean掃描磁碟上 PDF 檔案中的 XFA 標記,不載入 pdfium.dll
ValidatePdfUaStructureElements(const Elements: TPdfStructureElements; Conformance: TPdfUaConformance = puc1): TPdfUaValidationIssues以 PDF/UA-1 或 PDF/UA-2 標題語意驗證扁平化結構資料,不載入 pdfium.dll
IsPdfUaLanguageTagValid, ResolvePdfUaEffectiveLanguage驗證語言標籤,並依標記內容、最近的結構上代,再到目錄語言的優先順序進行解析
ClassifyPdfUaNamespace(const NamespaceUri: WString): TPdfUaNamespaceKind分類遺漏、PDF 1.7、PDF 2.0、MathML 與自訂結構命名空間
ValidatePdfUa2StructureElements(const Elements: TPdfStructureElements): TPdfUaValidationIssues執行每一項命名空間感知的 PDF/UA-2 語意結構規則
PdfUa2StructureHasIssue(const Elements: TPdfStructureElements; Issue: TPdfUaValidationIssue): BooleanC++Builder 安全的單一問題查詢,避免以傳值方式回傳 Pascal 集合
ValidatePdfUa2NamespaceSemantics, ValidatePdfUa2Containment, ValidatePdfUa2TableGrid執行聚焦的命名空間、親子與有界表格網格驗證
ValidatePdfUa2AnnotationSemantics, ValidatePdfUa2FormulaSemantics, ValidatePdfUa2AssociatedFileSemantics, ValidatePdfUa2DocumentSemantics執行聚焦的註解/表單、Formula/MathML、關聯檔案擁有權與閱讀順序,以及文件/清單/目錄/標題驗證
ValidatePdfUaPageContentTagging(const Objects: TPdfPageContentMarkInfos; const Elements: TPdfStructureElements): TPdfUaValidationIssues驗證真實內容標記,並防止 Artifact 物件被結構樹宣告
ValidatePdfUaRoleMapUsage(const Elements: TPdfStructureElements; const RoleMapKeys, RoleMapVals: TPdfUaNameArray): TPdfUaValidationIssues驗證 RoleMap 鍵/值配對是否解析為標準 ISO 32000-1 類型
ClassifyStructType(const TypeName: WString; out HeadingLevel: Integer): TPdfContentFragmentKind將結構元素類型名稱分類為 TPdfContentFragmentKind 與可選的標題層級
FormFieldTabOrderForPage(FormHandle: FPDF_FORMHANDLE; Page: FPDF_PAGE): TPdfIntegerArray以表單 Tab 順序回傳頁面表單元件註解索引
FocusedFormFieldTextForPage(FormHandle: FPDF_FORMHANDLE; Page: FPDF_PAGE): WString回傳一個表單控制代碼與頁面的焦點表單元件文字
NormalizePageViewRect(X1, Y1, X2, Y2, PageWidth, PageHeight: Double; out Left, Top, Right, Bottom: Double): Boolean將兩個映射後的頁面空間角落正規化為頁面夾限後的可見矩形;頁面完全不可見時回傳 False
NextFormFieldIndexForPage(FormHandle: FPDF_FORMHANDLE; Page: FPDF_PAGE; CurrentIndex: Integer; GoForward: Boolean): Integer尋找頁面 Tab 順序中的下一個或上一個表單元件註解索引
ClearFocusedFormField(FormHandle: FPDF_FORMHANDLE): Boolean為 PDFium 表單控制代碼清除目前焦點表單元件
ComputeSpreadPages(DisplayMode: TPdfDisplayMode; PageNumber, PageCount: Integer; out LeftPageNo, RightPageNo: Integer)計算雙頁顯示模式的左右頁碼
BuildReadingUnits(const Fragments: TPdfContentFragments): TPdfReadingUnits將可讀內容片段轉換為句子層級的閱讀單元
NextReadingUnitOfKind(const Units: TPdfReadingUnits; CurrentIndex: Integer; Kind: TPdfContentFragmentKind; GoForward: Boolean): Integer尋找所要求語意種類的下一個或上一個閱讀單元
BuildWordBoxes(const PageText: WString): TPdfWordBoxes將頁面文字切分為 TPdfWordBox 記錄
WordBoxIndexAtCharIndex(const Words: TPdfWordBoxes; CharIndex: Integer): Integer將頁面字元索引映射到單字框索引
SpokenTextAppend(var Spoken: TPdfSpokenText; const SpokenPart: WString; Page, StartIndex: Integer; SourceCount: Integer = -1)將一段已對映的朗讀文字附加到語音區塊
BuildSpokenTextFromWords(const Words: TPdfWordBoxes; FirstWord, LastWord: Integer): TPdfSpokenText從單字框範圍建構朗讀文字區塊
SpokenToPageChar(const Spoken: TPdfSpokenText; SpokenOffset: Integer; out Page, CharIndex: Integer): Boolean將朗讀文字位移轉換回頁面字元索引
EstimateSpokenWordIndex(const Words: TPdfWordBoxes; ElapsedMs: Cardinal; WordsPerMinute: Integer): Integer為不回報單字位置訊號的引擎估計目前單字索引
FPDF_RenderPageSkia將頁面內容算繪到外部 SkCanvas 的低階 PDFium 繫結
FPDF_FFLDrawSkia將表單欄位與彈出式註解繪製到外部 SkCanvas 的低階 PDFium 繫結
PointsToInches(Points: Double): Double將 PDF 點轉換為英吋
PointsToPixels(Points, PixelsPerInch: Double): Double將 PDF 點轉換為像素
PixelsToInches(Pixels, PixelsPerInch: Double): Double將像素轉換為英吋
PixelsToPoints(Pixels, PixelsPerInch: Double): Double將像素轉換為 PDF 點
GetApplicationPath: string回傳作為第一個 PDFium DLL 搜尋根目錄的執行檔目錄
IsWin64: Boolean當目前處理程序以 Win64 為目標時回傳 True
BuildDllName(UseV8: Boolean): string依要求的 V8 模式回傳 pdfium.dll 或 pdfium.v8.dll
FindDllInPath(const DllName, SearchPath: string): string在單一目錄中尋找指定名稱的 PDFium DLL
FindDllInDllsTree(const DllName, StartPath, SubDir: string): string在起始路徑之下搜尋 DLLs\Win32 或 DLLs\Win64 資料夾
LoadPDFiumDll: string遵循明確的 LibraryName 路徑(兩種引擎模式皆然),否則依元件搜尋原則解析執行階段
ConfigurePdfLibrary(const Configuration: TPdfLibraryConfiguration)在第一次載入程式庫前套用 DLL 選擇、V8 與沙盒組態
GetPdfLibraryConfiguration: TPdfLibraryConfiguration回傳目前有效程式庫組態的複本
PdfLibraryConfigurationSealed: Boolean程式庫一旦載入、組態無法再變更時即回傳 True
PdfNativeRendererType(Preference: TPdfRendererPreference; SkiaBuild: Boolean): FPDF_RENDERER_TYPE回傳某個偏好對 AGG-only 或啟用 Skia 的 PDFium 建置所選擇的原生算繪器,prpDefault 保留建置預設
PdfLibraryConfigurationSupportError(const Configuration: TPdfLibraryConfiguration; SkiaBuild, FontationsBuild: Boolean): string回傳算繪器或字型後端無法搭配某個 PDFium 建置的原因;LoadLibrary 套用相同檢查並引發 EPdfError,而不是讓原生初始化中止處理序
PdfDefaultTtfMapCount: NativeUInt回傳原生預設 TrueType 字型替代映射中的項目數
TryGetPdfDefaultTtfMapEntry(Index: NativeUInt; out Entry: TPdfDefaultTtfMapEntry): Boolean依索引複製一個預設字型替代映射項目
IsXfaFormField(FieldType: Integer): Boolean (FPdfXfa)測試表單欄位類型代碼是否屬於 XFA 欄位範圍

全域變數

變數類型預設值說明
LibraryNamestring'pdfium.dll'明確路徑在兩種引擎模式下都選定該執行階段;單純名稱則在 EnableV8Engine 為 False 時選擇標準執行階段
EnableV8EngineBooleanFalse載入前設為 True,可從對應的 Win32 或 Win64 DLLs 資料夾選擇 pdfium.v8.dll

常見使用模式

PDF 檢視器實作

procedure TMainForm.OpenPDF(const FileName: string);
begin
  Pdf.FileName := FileName;
  Pdf.Active := True;
  PdfView.Pdf := Pdf;
  PdfView.Active := True;
  StatusBar1.SimpleText := Format('Loaded: %s (%d pages)',
    [ExtractFileName(FileName), Pdf.PageCount]);
end;

建立含壓縮的 PDF

Pdf.CreateDocument;
Pdf.Compressed := True;
Pdf.Active := True;
Pdf.AddPage(0, 595, 842);
Pdf.AddText('Hello World!', 'Arial', 24, 100, 700, clBlack, $FF, 0.0);
Pdf.SaveAs('output.pdf');
Pdf.Active := False;

文字擷取

Pdf.FileName := 'document.pdf';
Pdf.Active := True;
for I := 1 to Pdf.PageCount do
begin
  Pdf.PageNumber := I;
  Memo1.Lines.Add(Format('--- Page %d ---', [I]));
  Memo1.Lines.Add(Pdf.Text);
end;
Pdf.Active := False;

表單欄位處理

Pdf.FileName := 'form.pdf';
Pdf.Active := True;
Pdf.PageNumber := 1;
for I := 0 to Pdf.FormFieldCount - 1 do
begin
  FieldInfo := Pdf.FormFieldInfo[I];
  case FieldInfo.FieldType of
    fiTextField:
      Pdf.FormField[I] := 'New Value';
    fiCheckBox:
      Pdf.FormField[I] := 'Yes';
  end;
end;
Pdf.SaveAs('filled_form.pdf');
Pdf.Active := False;

扁平化已填寫的表單

// Bake form values into permanent (non-editable) page content
Pdf.FileName := 'form.pdf';
Pdf.Active := True;
Pdf.FormField[0] := 'John Smith';
Pdf.FormField[1] := 'Yes';
Pdf.GenerateFormAppearances;          // step 1: refresh /AP from /V
Pdf.FlattenAllPages(FLAT_NORMALDISPLAY); // step 2: flatten all pages
Pdf.SaveAs('flattened.pdf');           // step 3: save
Pdf.Active := False;