Reading PDF Font Properties with PDFium Component in Delphi
使用 PDFium Component 在 Delphi 中檢查 PDF 檔案內部所使用的各項字型資訊內容:讀取字形的字型家族名稱、基本名稱、粗細、斜體角度,以及是否已內嵌字型檔案
losLab 軟體開發部落格
Software Development Blog
使用 PDFium Component 在 Delphi 中檢查 PDF 檔案內部所使用的各項字型資訊內容:讀取字形的字型家族名稱、基本名稱、粗細、斜體角度,以及是否已內嵌字型檔案
在真正信任一份 PDF 檔案之前,應該先完整列舉其所有潛在風險面。了解 PDFium 如何在 Delphi 中讀取文件內的 JavaScript、啟動動作與簽章權限,供稽核作業使用
在 Delphi 中使用 PDFium 元件組合出一個可用的 PDF 檢視器:將 TPdf 連接到 TPdfView、載入與算繪文件,然後新增分頁、縮放與符合模式導覽 在 Delphi 中,PDF 檢視器可以歸結為兩個元件以及它們之間的連接; 擁有文件:它開啟檔案、對其進行解密,並回答有關頁數和中介資料的提問;
在 Delphi 中用 PDFium Component 把整個資料夾的掃描影像合併成一份 PDF:建立文件、每張影像各一頁、逐張縮放後存檔
使用 PDFium Component 在 Delphi 中將 PDF 頁面渲染為 JPEG 影像:把 DPI 換算為像素尺寸、把每一頁繪製到點陣圖,再用 TJPEGImage 編碼
in Delphi, build a PDF from nothing with PDFium Component: CreateDocument, AddPage, AddText, and CreatePath, plus the coordinate and font embedding rules that
在 Delphi 中使用 PDFium 建立螢光筆和底線註解:QuadPoints 順序、為什麼 FPDFAnnot_SetAttachmentPoints 傳回 false,以及 Append 的修復方法 Technical Article 在 Delphi 中使用 PDFium QuadPoints
在 Delphi 中診斷 pdfium.dll 載入失敗:修正 32/64 位元不符導致的 ERROR_BAD_EXE_FORMAT 193 錯誤、識別過期 DLL,並跨執行緒安全載入元件
在 Delphi 中偵測 XFA 表單,並用 PDFium Component 把 template、datasets 與 config 封包擷取成原始 XML——靜態封包讀取不需要 V8 執行環境
使用 PDFium Component 在 Delphi 中匯出與匯入 XFDF 表單資料與註解:ISO 19444-1 雙向轉換、18 種註解子類型,以及與地區設定無關的數值處理
使用 PDFium Component 在 Delphi 中擷取 PDF 內嵌影像:讀取 BitmapCount、逐一取得 Bitmap[]、處理靜默開啟失敗,並輸出為 JPEG 或 BMP
使用 PDFium Component 在 Delphi 中擷取 PDF 文字:透過 Character[] 存取原始字符、以 ReadablePageContent 取得結構化內容,並防範 Active 靜默失敗
強化 Pascal 版 PDFium Component 綁定程式碼的安全性:修正 cdecl 回呼機制、FPC Win64 指標截斷問題、所有權錯誤,以及其他 ABI 與記憶體安全缺陷
使用 PDFium Component 在 Delphi 與 Lazarus 中讀取 PDF 簽章:檢查 SubFilter、ByteRange 與 CMS 內容,並偵測 PAdES B-B 至 B-LTA 各基準等級
使用 PDFium Component 在 Delphi 中加入長期有效的 PAdES 簽章:RFC 3161 時間戳記、DSS 驗證存放區,以及適用 B-T、B-LT 與 B-LTA 的 DocTimeStamp
在 Delphi 中使用 PDFium 元件合併 PDF 檔案:ImportPages、頁面範圍字串、插入位置、損壞檔案的靜默失敗,以及表單欄位行為 PDFium 元件透過單一方法公開了 PDF 合併功能: ;該模式始終相同:建立一個空的目標文件、依序開啟每個來源檔案、呼叫 複製頁面、關閉來源檔案,然後重複該步驟;當迴
把多個 PDF 頁面統一排到同一張紙上、就地重新排序頁面顯示順序,或擷取指定的子集內容。了解 PDFium 在 Delphi 中的拼版與頁面移動 API,以及它們各自傳回的控制代碼
為什麼子字串鍵值尋找會毀壞 Delphi 中的 PDF 字典解析:依據 ISO 32000-1 的完整名稱 Token 匹配以及針對惡意 PDF 的資源限制 諸如 之類的子字串搜尋是讀取 PDF 字典的錯誤工具,因為 PDF 名稱鍵值(keys)共享前綴: 是 的前綴,而 是 的前綴
讓 Delphi 寫的 PDF 檢視器真的能與螢幕閱讀器合作:從標記結構樹擷取閱讀順序、跟著語音走的逐字標示游標,以及面對未標記 PDF 時該有的誠實退路
PDFiumPas 如何在 Delphi 中於 PDF 文件間嫁接 AcroForm 欄位:GraftPdfAcroForm 複製整個欄位物件圖、小工具頁面重新對映、嫁接對映表交易,以及故障封閉的各項上限
PDFiumPas 在 Delphi 中對 PDF 影像降取樣時,依量測結果選擇 box、雙線性、雙三次或 Lanczos 重取樣核心,並具備 alpha 感知的數學與嚴格的工作記憶體預算
AES-256 R6 雜湊的輪數計數器差一(off-by-one),讓約三成加密 PDF 拒收正確密碼;本文涵蓋根因、修復與 Delphi 迴歸測試
PDFium Component 在 Delphi 裡讀取註解再寫回時,舊版會替只帶 /N 的 /AP 外觀字典多寫出空的 /R 與 /D 串流,PDF/A 驗證隨之失敗;v3.121.1 起改成只回報真正讀到的外觀,原樣往返不再多寫任何東西
在 Delphi 中打造一個 PDF 註記審閱面板:依頁面替標註建立索引、面對外觀串流的否決仍能存活下來,並在不留下殘影的情況下替註記改色或刪除它們
TPdf.SetFormFieldValues 以頁面與 widget 定址的型別化請求整批填寫 AcroForm:先預檢再對快照套用、單次替換生效,成功即全部生效,任何失敗則原文件與欄位值分毫不動
用 PDFium Component 在 Delphi 建立 PDF 軸向與徑向漸層:多停靠點拼接函式、整數型 ShadingType,以及讓 sh 可見的裁剪
使用可取消的 Future 非同步物件,在 Delphi 中把耗時的 PDF 渲染作業完全移出 UI 執行緒之外執行,同時管理工作執行緒生命週期、取消機制、完成通知與安全的介面更新
PDFium Delphi 元件如何按水平帶渲染超大頁面:負 Y 偏移如何維持整頁幾何關係,以及 PNG 和 TIFF 如何串流輸出並控制峰值記憶體
緩慢的頁面渲染作業原本就不應凍結整個使用者操作介面,也不該被迫執行到底才能停止。了解 PDFium 的漸進式渲染如何在 Delphi 中透過 IFSDK_PAUSE 變成可隨時取消
說明為何直接從 widget 註解讀取 /V 值時,PDFium Component 會把核取方塊扁平化成未勾選狀態,原因是依 ISO 32000-1 規定 /V 其實屬於父欄位字典
PDFium Component 可在 Delphi 中以 CID Type 2 字型寫入字形層級文字,產生 CID 對 GID 與 ToUnicode 對應表,讓已整形文字保持可擷取
PDFium Component 依 X.690 11.6 的要求把 signedAttrs 排成 DER SET OF;自我驗證永遠抓不到第三方驗證器會拒絕的缺陷,因為兩端共用同一套編碼規則
PDFium Component 從 3.117.0 起用內容感知判斷連結跨頁表格:兩個片段都碰頁緣,或表格是前頁最後、後頁最前的內文時才接續,並略過頁眉頁腳
PDFium 沒有把頁面內容放上圖層的 API;PDFium Component 從 Delphi 為 PDF 加入新的 OCG、OCMD 可見性規則與受 /OC 控制的 Form XObject
PDFium 元件在各目標平台上尋找原生程式庫的有序搜尋鏈,以及目標巨集中一個大寫字母如何在區分大小寫的 Linux 檔案系統上讓整個查找無聲失靈,附探測程式做法與部署檢查清單的完整教訓
Delphi 與 FPC/Lazarus 之間四個隱藏差異會影響同一份 PDFium 程式碼:記錄暫存生命週期、範圍檢查、E2010 TBytes 轉型,以及 AnsiString 位元組遺失
PDFium Component 一律從內容長度推算巢狀 CMS 的標頭起點,絕不倒退走長度位元組,因為最後一個位元組的 bit 8 只是數值位元,會讓憑證集合的切片整整偏移
欄位字典以直接物件存放時,PDFium 可能把 /Annots 裡的副本升級成間接物件,而 /Fields 留下第二份直接副本,寫入看似成功卻讀回舊值;PDFium Component 先統一兩個參照再寫入
v3.126.2 之前的 DocMDP 角色圖把 widget 的 /P 回參照當成所有權,頁面內容編輯被評成 P=3 允許的註解變更;v3.126.2 分離導航邊與承載邊、改用不動點傳播,並以 FieldMDP 共享物件判決與 fail-closed 驗收清單收尾
動態 XFA 表單重排頁面時,原生頁面事件回報的是增減差值而非總數,v3.126.1 起改讀 FPDF_GetPageCount 並觸發 OnXfaPageCountChanged,同版也修正搬移欄位的輸入熱區,v3.126.2 讓 TPdfView 延後重載頁面,Delphi 檢視器從此頁碼與輸入位置都正確
PDFium Component 在 Delphi 中為 PDF 編輯加入文件層級的復原、取消復原與當機恢復功能,採用經驗證的快照與精簡的雙向差異記錄
說明 PDFium Component 如何在 Delphi 中直接從 TBytes 位元組範圍載入內嵌的 PDF 檔案內容,具備防溢位的邊界檢查機制,以及借用緩衝區的生命週期管理規則
FPDFText_GetUnicode 會傳回完整的 32 位元碼點,但 WideChar 只能容納 16 位元,因此 Delphi 中的 PDFium Component 可能損壞 emoji 與罕見中日韓表意文字
依照 ISO 32000-1 第 7.5.6 節的增量更新規範,Delphi 中的 PDFium Component 會拒絕以明文標記或 PAdES 簽章方式修補已加密的 PDF 檔案內容
PDFium 元件如何在剖析歐洲 eIDAS 信任清單之前先驗證其真偽,把合格狀態與一般憑證鏈信任分開記錄,按歷史時間評估服務狀態,並以單調更新不變式與無 DTD 剖析守住安全底線
PDFiumPas 會解析有效的 xref 修訂鏈與 Adobe Extension Level,讓 Delphi PDF 能以 1.3 至 1.7 之間的精確版本儲存,同時不破壞規範相容性
說明 PDFium Component 中 WaitForIdle 與 padSynchronize 回覆如何讓 Delphi 主執行緒陷入死結,並涵蓋佇列容量、關閉順序與 TPdf 所有權限制
用 TPdf.SaveAsLinearized 在 Delphi 產出 Fast Web View PDF:PDFium Component 如何重排物件、寫出提示表,並把第一頁壓在檔案最前面
在 Delphi 或 FPC 函式的傳回結果變數上直接使用 FillChar,會把受管理記錄整個歸零卻不釋放其中原有的字串內容資料,導致該函式在迴圈中反覆執行時持續洩漏記憶體使用空間
PDFium Component 的表格抽取從 3.117.0 起把細填色矩形視為框線:薄盒產生一條框線、填色儲存格貢獻四邊,座標再依 RulingSnapTolerance 對齊
說明為何已填寫的 PDF 表單在 Acrobat 中顯示空白,以及修正方式:FormFill 設定、鍵盤欄位巡覽,以及 Delphi 檢視器中的 GenerateFormAppearances 呼叫時機
PDFium Component 3.223.0 起依每頁宣告的 /Tabs 政策排列表單欄位順序:R、C、S 加上 PDF 2.0 的 A 與 W;狀態 overload 回報套用或退回的原因,跨頁焦點導覽也逐頁套用各自政策
PDFium Component 一律把 FPDF_FORMFILLINFO.version 設為 2,因為版本欄位描述的是原生二進位檔接受的記憶體佈局,與文件本身無關
Delphi 與 FPC 版本的 PDF 檢視器中,三層巢狀的列印迴圈在點選 Cancel 後仍持續渲染,原因是 Free Pascal 會在迴圈進入時就先鎖定 for 迴圈的上限值
PDFiumPas 3.114.8 之前在非 Windows 目標用 RTL 的 Random 產生加密金鑰材料,又從不呼叫 Randomize,每個處理程序都吐出同一位元組序列:FPC 建置逐次寫出相同的檔案金鑰、salt 與 GCM nonce 前綴,現改讀 /dev/urandom 並在失敗時丟例外
Free Pascal 下非 ASCII PDF 標題會在 XMP 資料包中變成無效 UTF-8;這裡解釋字串程式碼頁規則,以及 PDFium 中的 SetCodePage 修復
使用 PDFiumPas 在 Delphi 中寫出 ISO/TS 32003 AESV4-GCM 加密 PDF:R7 金鑰衍生、獨立 PDF MAC 完整性權杖與 ValidatePdfMac 狀態檢查
PDFium Component 在 Delphi 裡對每個 ECDSA 與 EdDSA PDF 簽章套用 ISO/TS 32002 演算法設定檔:核准曲線、摘要配對、Ed25519 與 Ed448 的編碼規則一次檢查,不符即回報演算法不匹配
把 Delphi 的 PDF 檢視器移植到 Lazarus 與 Free Pascal:字串編碼陷阱、以程式碼建構表單、PDFium 二進位檔的載入,以及離開 Windows 之後的語音朗讀
PDFium VCL 在非 Windows 目標上經 libcurl 發送 RFC 3161 時間戳記查詢,動態繫結八個符號,另有兩個設定決定它在負載下會不會卡死;驗證不可編譯分支的受控副本手法也一併說明
FPDF_LIBRARY_CONFIG 的版本是累積的:只為開 Brotli 推到版本 6,零值的 m_RendererType 就被當成明確指定 AGG;指定 DLL 缺少的後端則直接帶走整個行程,PDFium Component 自 v3.125.0 起提前攔下、改為擲出可捕捉的 EPdfError
為 Delphi PDF 檢視器同時加入深色模式與低視力閱讀輔助這兩種顯示模式選項:渲染後色彩反轉處理方式、兩種不同的灰階轉換方式,以及在任何背景下都能持續保持清楚可見的覆疊色彩效果
PDFium VCL 在執行階段以 dlopen 與 dlsym 繫結 Security framework 符號,讓 macOS Keychain 簽署後端在任何平台都編得過,並指名每一個解析不到的符號
標記內容是標記 PDF 與 PDF/UA 背後的 BDC 與 EMC 成對運算子,PDFium Component 從普通 Delphi 程式碼讀取標記名稱強型別屬性表與 MCID,並能把結構樹接回它所描述的頁面內容,供可存取性檢查修復與稽核使用 標記內容是 ISO 32000-1 §14.6
說明 PDF 列向量慣例如何讓 Delphi 中的 Multiply 變成後置運算、PreMultiply 變成前置運算,為何 PreTranslate 需要線性部分,以及樞軸輔助函式的組合方式
PDFium 的不安全狀態長在整個模組上,不是個別文件:兩條執行緒各開一個 TPdf 照樣可能互相踩壞。PDFium Component 自 v3.125.1 讓批次驗證全程過一把行程層級的鎖,平行渲染則靠每個 worker 各載一份隔離的 DLL 模組
PDFium Component 在 Delphi 中重建 ISO 32000 名稱樹與編號樹:輸出平衡節點與正確的 /Limits,根物件編號維持不變,儲存後重新讀回逐筆驗證才完工
了解為何單靠 FlateDecode 無法還原 PDF 物件串流的原始資料,以及 PDFiumPas 如何在 Delphi 中套用 PNG 與 TIFF Predictor 進行重建
PDFium Component 可從 Delphi 為掃描 PDF 加上隱形 OCR 文字層,透過裝置到頁面的變換來對應文字四邊形,不會動到影像
PDFium VCL 的 OpenSSL 後端會透過 AIA 下載缺席的中繼憑證、透過發佈點抓取 CRL,全程受固定時間、請求數與位元組預算約束,下載的憑證永遠只當鏈材,信任仍然只來自系統存放區與您設定的錨點
PDFium VCL 把 OpenSSL CMS 驗證器接進 PAdES 驗證;底下有三種 OpenSSL 行為,不處理就會默默給出錯誤的判定,介面則拆出三個獨立判定與兩種驗證形狀,後端可按平台替換
PDFiumPas 的 SaveAsRedacted 如何在 Delphi 中於運算子層級分割部分被涵蓋的文字、矩形路徑與軸對齊影像,再以範圍感知的方式剪除未被參照的資源名稱與不可達物件
PDFium Component 用 InspectOptionalContent 列出每個圖層與 PDFium 實際會渲染的可見性,SaveAsOptionalContentConfigured 則寫出一份已驗證的副本、把您選的圖層開關到位,並一併中和掉 Usage 與 /AS 規則,避免編輯被悄悄復原
當 pdfium.dll 的版本比綁定程式碼還舊時,單一缺少的匯出函式就足以讓整個載入程序失敗。了解 PDFium Component 如何在 Delphi 中為選填匯出設關卡並安全降級
被刪掉的頁面與重複的 logo 在 FPDF_SaveAsCopy 之後依然存活;Delphi 版 PDFium Component 丟棄孤立物件、合併重複資源並重新壓縮 Flate 串流
PDFiumPas 在 Delphi 中如何於頁面移動或消失後重寫 PDF 大綱項目:帶正負號的 /Count、兄弟鏈結修補、ApplyPageMap 頁面對映、懸空項目處置,以及經過獨立重載驗證的增量儲存
為何在 Delphi 中 FPDFPage_TransFormWithClip 之後 PDFium 頁面物件控制代碼讀到的是舊座標,以及重新載入順序與 getter 崗哨值的修法 當 重寫一頁時,你手上已持有的每個 控制代碼,描述的依然是變換之前那次剖析。Delphi 與 C++Builder 版的 PDFium
用一份快照政策約束 Delphi 裡每個 PDF 剖析器:PDFium Component 把遞迴深度、token 數、物件數、解碼位元組、擴充比與執行期限上限集中在單一設定,一次套用到整個程序
使用 PDFium Component 在 Delphi 中對收到的 PDF 進行分流檢查:檢視 Info 字典與 XMP 中介資料、找出加密、JavaScript 與 XFA,及早路由高風險檔案
使用 PDFium Component 在 Delphi 中產生通過 veraPDF 驗證的 PDF/A 封存檔:SaveAsPdfA、XMP 與 ICC OutputIntent 注入、a/b/u 一致性等級,以及常見陷阱
為什麼 PDF/A 檔案會卡在 ISO 19005-1 Annex C 的容器限制或符號式 TrueType 字型帶有的 Encoding 項目,PDFium Component 在 Delphi 中不載入 PDFium DLL 就能從位元組掃描路徑回報這兩類缺陷並附帶具體的補救建議
ISO 19005-1 要求八個映射的 Info 項目與其 XMP 屬性攜帶相同值:TPdf.InspectPdfAMetadata 讀對 RDF 形狀、按 URI 比對命名空間、把日期當時刻比較,NormalizePdfAMetadata 則以 Info 為事實來源重寫漂移的 XMP 屬性
使用 PDFium 元件 (PDFium Component) 在 Delphi 中建置 PDF/A 預檢檢查器:透過標記掃描 (token-scan) 29 個驗證問題、感知各部分的門檻 (part-aware gating)、物件串流 (object streams),且無需進行完整的內容解析
在 Delphi 用 PDFium Component 把 XML 或 CSV 來源附加到 PDF/A-3 輸出:AFRelationship 值、/AF 鏈的接法、MIME 名稱的跳脫,以及舊版默默改道的幾個地方
PDFDocEncoding 的特殊字元區塊位在 $80 而不是 $7F;只要偏移一列,PDFium Component 的 FDF 匯入就會把每個符號解碼成表格裡的下一個鄰居,而且完全不會報錯
PDF/R 讓每一頁掃描只帶一張條帶影像,沒有文字也沒有字型,PDFium Component 在 Delphi 與 C++Builder 中驗證 ISO 23504-1 一致性並回報每項拒絕的具體成因與對應的補救路徑 PDF/R,標準化為 ISO 23504-1,是針對掃描文件的 PDF
使用 PDFium VCL 走訪即時的 PDF 標籤樹,以捕捉位元組等級 (byte-level) 掃描遺漏的 PDF/UA 內容錯誤:圖形替代文字 (Figure Alt)、公式文字 (Formula text) 以及獨一無二的註解識別碼 (Note IDs)。 您的預檢報告指出檔案符合 PDF/UA 標準
使用 PDFium VCL 在 Delphi 中產生並驗證 PDF/VT-1 變動資料列印檔案:DPart 樹狀結構、強制性的 PDF/X-4 配對規範,以及 ISO 16612-2 相關陷阱
PDFiumPas 在 Delphi 中透過 PKCS#11 權杖簽署 PAdES:Windows 上 CK_ULONG 為 4 位元組、LP64 上為 8 位元組,打包不同時函式表也會移位
PDFium 元件如何讓每個塑形呼叫走單一可安裝後端:Windows 用 Uniscribe,Free Pascal 用執行期動態繫結的 HarfBuzz,程式庫缺席只回報能力縮減而不中斷
TPdf.AnalyzeSignatureRevisions 從原始檔案位元組重建每個增量修訂,按各簽章的 DocMDP 與 FieldMDP 規則為簽署後的物件變更評級,並把影子物件定義獨立列為風險——綠色勾勾只代表簽章驗證通過,不代表後來的存檔是被允許的
使用 PDFium Component 在 Delphi 中自動化 PDF/A 與 PDF/UA 預檢流程:批次迴圈、結束代碼、JSON 與 HTML 報告,以及為何無檢測結果不等於通過
用 TPdfProgressiveDocument 在 Delphi 裡邊下載邊開 PDF:FPDFAvail 的範圍提示、線性化檔案的提前開啟,以及一條乾淨的取消路徑,不漏任何原生控制代碼
PDFium Component 可在 Delphi 中從 PDF 頁面建立語意重排模型,並匯出含標題、清單與偵測出表格的自成一體 HTML
透過 PDFiumPas 的 PreparePadesRemoteSignature 與 CompletePadesRemoteSignature,在 Delphi 中以 HSM 或雲端金鑰簽署 PDF,並保留可延續的簽署工作階段
使用 PDFium 讓 Delphi PDF 檢視器的縮放與捲動操作全程能隨時保持流暢:正確的快取鍵設計方式、點陣圖所有權管理、漸進式渲染機制,以及高 DPI 情境下的記憶體預算控制
PDFiumPas 的渲染鎖可保護光柵化過程不受並行的 UnloadPage 或 ReloadPage 干擾,但六個 TPdf 與 TPdfView 呼叫在 v2.26.0 之前都遺漏了這道鎖定
在 Delphi 用 TPdf.SaveAsReproducible 產出位元組相同的 PDF:去除 Info 時間戳、省略 trailer ID,並了解簽章與加密檔的限制
PDFium Component 3.114.20 修正三個 PAdES 簽章後端的 RSASSA-PSS-params 編碼:saltLength 要用 [2] 明確標記,trailerField 等於預設值則必須省略
以 PDFium Component 強化 Delphi 的 PDF 預覽窗格:載入時停用 JavaScript、攔截連結點擊、過濾附件,並讀取加密權限旗標
TPdf.Active := True 在 Delphi 裡會吞掉 PDFium 載入錯誤。改用 LoadDocument 搭配 TPdfLoadOptions,拿得到真正的例外、TPdfLoadReport 與 xref 重建資訊
PDFiumPas 如何在不載入整個檔案的情況下讀取單一 PDF 物件:稀疏 xref 區段描述元、延遲物件串流、混合式 XRefStm、1 MiB 有界讀取視窗,以及不隨尾頁物件 /Size 成長的記憶體用量
瀏覽器檢視器會對靜態 XFA 表單跳出升級提示;PDFium Component 在 Delphi 裡把它重建為 AcroForm 欄位,含旗標、單選群組與樣式
以 PDFium Component 的 EditPdfDocumentStructure 從 Delphi 標記既有 PDF 內容,為 PDF/UA 保持 /ParentTree、/StructParents 與 MCID 一致
使用 PDFiumPas 的 GetStructuredText 在 Delphi 中將 PDF 文字擷取為區塊、行與樣式化片段:可選閱讀順序、標記強化資訊與失效即中止的預算
用 SubsetPdfDocumentFonts 在 Delphi 縮小既有 PDF,並了解 PDFium Component 如何在裁切前證明內嵌 TrueType 字型的字形域
PDFium Component 讓 Delphi 應用程式能為未內嵌的 PDF 字型自行提供字型位元組,以確定性的供應器取代主機端的字型對應
PDFium Component 可在 Delphi 中偵測 PDF 頁面上以框線或以留白對齊呈現的表格,解析合併儲存格與跨列跨欄範圍,並把資料列匯出為 CSV 或 JSON
PDF 版面配置需要先知道字串寬度才能繪製。了解 PDFium Component 如何在 Delphi 中不碰頁面的情況下量測文字,用來做自動換行。 把文字放到 PDF 頁面上的呼叫很直覺。您把字串、字型、大小和位置傳給 ,字形就會出現。它不會告訴您該字串一旦繪製出來會有多寬,也不會把長字串拆成多行
PDFium 在 Delphi 中會快取 FPDF_TEXTPAGE 控制代碼;經過 AddText、SetText 或 AddPath 編輯後便會失效,須在下次文字查詢前重新載入
使用 PDFium 修正 Delphi 中縮圖重複旋轉造成的顯示問題:說明渲染旋轉參數為何是疊加計算方式,以及 90 或 270 度頁面為何需要交換寬高後才能算出正確的適合縮放比例
PDFium Component 以 Unicode 碼位為 CID 字型索引,讓每個 CID 恰好對應一條 ToUnicode 映射:抽取出來的空格不再變成 U+00A0、連字符不再變成 U+00AD,記憶體中的文件與存檔之後都一致
為什麼把 PDF 文字排版搬離 Windows 意味著自己實作 UAX #9 雙向演算法,以及會把增補平面字元拆成未配對代理、或讓重排整段悄悄失效的兩個典型錯誤,與字碼點單位重排等對應修法
PDF 文字頁面本身其實沒有行物件的概念。了解 PDFium Component 如何運用 FPDFText_GetCharBox 幾何資料建構出視覺行,並讓所有選取路徑共用同一個輔助函式
PDFium Component 3.117.0 要求每道欄界線都是沒有文字的垂直走廊,並跳過已被有框線網格取用的詞、改用垂直重疊組出儲存格文字,讓左右對齊段落不再被誤判成表格
說明 PDFium Component 如何在 Delphi 中將表單欄位索引與註解索引完全分開處理:篩選 Widget 子型別、在原生層做索引映射,並修復無介面環境下的表單焦點問題
PDFium VCL 在 Windows 上離線檢查 PDF 簽章撤銷:在 CertGetCertificateChain 的撤銷階段加上 CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY,離線的 ValidatePadesTrust 完全不碰網路,乾淨的結果需要每張憑證都有真實的撤銷證據
使用 PDFium 詞彙方塊在 Delphi 中同步文字轉語音功能與頁面單字醒目標示效果:TrackReadingWordAt 方法、渲染順序處理、自動捲動,以及 Unicode 相關陷阱
PDFium Component 只把 XFA 欄位編輯寫入記憶體緩衝區,因此 Delphi 應用程式儲存後會遺失欄位值;AcroForm 可以持續儲存,而 XFA 不可 PDFium Component 中的 會寫入目前取得焦點的表單欄位即時編輯緩衝區;對於 XFA 表單,這個緩衝區永遠不會進入會被序列化到磁碟的
PDFium Component 在 Delphi 裡讓 XFA 值跨越存檔與重開保持精確:換行、emoji 代理對、單一串流 XFA、存檔結果與 restoreState
使用 PDFium Component 從 Delphi 中列印 PDF:以 RenderPage 與 rePrinting 渲染頁面、透過 StretchDIBits 傳送點陣圖,並處理紙張縮放與旋轉
浮水印或標誌只畫一次,就把它放上每一頁。看 PDFium 的 Form XObject 如何在 Delphi 中做出可重複使用的頁面圖章,以及控制代碼的生命週期規則
使用 PDFium Component 在 Delphi 中執行 AcroForm JavaScript:說明欄位計算為何靜默無反應、V8 DLL 相依需求,以及能否決高風險 PDF 動作的主機事件
在 Delphi 中使用 PDFium 元件為 PDF 加入 PAdES B-B 數位簽章:自建 SHA-256、CMS,以及用於位元組級簽署的 Windows CNG 後端 PDFium 元件透過其 方法為 PDF 進行 PAdES B-B 數位簽章:它載入文件、計算已簽署位元組範圍的雜湊值、建立 CAdES
如何在 Delphi 中使用 PDFium 元件按頁面、範圍或書籤分割 PDF:TPdf.ImportPages、CreateDocument、SaveAs 結果檢查,以及 Active 旗標重設 PDFium 元件為您提供了一個用於分割 PDF 的方法: ;其他的一切操作,不論您是隔離單一頁面、在任意邊界上進行剪切,
使用 TStream 配接器串接 PDFium 的 FPDF_FILEACCESS 回呼,在 Delphi 中依需求串流讀取數 GB 大小的 PDF,並強制遵守 4 GiB 檔案大小上限
使用 PDFium Component 在 Delphi 中建立並排比對用的 PDF 檢視器:採獨立面板設計、各自透過 TPdfView.Zoom 屬性控制縮放比例,並同步頁面瀏覽位置
現代 PDF 將結構隱藏在壓縮的物件與 XRef 串流中。瞭解 Delphi 驗證器如何展開 ObjStm 並透過 PDFium 讀取 XRef 串流尾部。 您編寫了一個小型的驗證器。它開啟 PDF,尋找到末尾,找到 ,讀取偏移量,並期望定位到關鍵字 (其下方有一個固定寬度的交叉參照表)
在 Delphi 中驗證可供列印的 PDF/X 檔案:PDFium 元件的 ValidatePdfX 會執行 ISO 15930 檢查,涵蓋 TrimBox、Trapped、OPI、LZW 以及字型內嵌等。 Delphi 的 PDFium 元件透過 驗證可供列印的 PDF/X 文件
PDFium Delphi 元件如何在 macOS 透過 CMSDecoder 和 SecTrust 驗證 PDF 簽章:合併 ByteRange、狀態映射與 CFRelease 規則
說明 PDF 驗證工具為何會拒絕 PAdES 簽章:全零的 ByteRange 欄位、缺少 D: 日期前綴,以及增量更新後遺失的 /Encrypt 項目,並結合 PDFium Component 說明
使用 PDFium Component 在 Delphi 中管理 PDF 附件:AttachmentCount、Attachment、CreateAttachment、DeleteAttachment、安全路徑處理,以及原地儲存