原生標註審閱 PDF

在原生的增量 PDF 副本中建立真實可見的審閱螢光標註,同時保留原始頁面內容、資源、加密與簽章位元組範圍

{"schemaVersion":1,"type":"compare.contract","format":"pdf","side":"after","options":{"maxHighlights":1000}}

以兩個已載入 handle、必填的 PDF 輸出 callback 與必填的結果 callback 呼叫 hpdf_document_compare_json_v1;side 選擇 before 或 after,預設為 after

JSON 結果包含完整的語意比較、mediaType:application/pdf 與選定的側邊;二進位 callback 收到的是實際準備好的 PDF 修訂

Pascal 進入點

HPDFSaveHeadlessContractAnnotatedPDF 把完整比較報告對應到來源行螢光標註,匯出前會對照選定的已載入文件驗證頁數、文字與定位行幾何

SaveReviewHighlightsToFile 接受明確的頁面矩形與 Unicode 說明文字,供其他審閱工作流程使用

輸出與權限

每個螢光標註都有真實的 Highlight 標註、矩形、四邊形、Unicode 內容、列印旗標,以及黃色填色與 Multiply 透明度的 normal Form 外觀

既有標註與簽章 widget 保持存在;兩個進入點都不會改動已載入文件的標註或 dirty 狀態

已驗證的 DocMDP P3 允許審閱標註;P1 與 P2 會在發布前拒絕,更嚴格的已驗證欄位鎖定權限、以及沒有標註權的加密使用者權限也一樣

有效的 P3 審閱修訂可以重新開啟並再次儲存;驗證只會一次性保留原始 widget,並持續保護頁面內容、資源與已簽署或鎖定的欄位

限制與取消

修改 MaxHighlights、MaxWorkingBytes 或 CancellationToken 之前,先初始化 THPDFHeadlessReviewOptions.Default;預設為 10000 個螢光標註與 67108864 準備位元組

文件的物件數、物件位元組、檔案位元組與深度限制同樣適用;說明文字必須是不含 NUL 的有效 UTF-16,矩形必須具備有限且有界的座標與正的尺寸

寫入器私下準備、flush 暫存檔,並以原子改名發布;來源別名、驗證失敗、預算耗盡與取消會保留既有目的地,並移除未發布的暫存檔

文件與其審閱選項共用同一個 cancellation token;即使已要求取消,臨時文件限制仍會還原

閱讀器驗證

驗收會透過分片的原生 callback 檢查明文、巢狀 Form、AES R5/R6、Unicode 說明文字、重複修訂、受信任 CAdES 簽章的保留、實際可見的 MuPDF 像素,以及兩個來源側

即使停用標註繪製,閱讀器仍可能從標註資源選用透明頁面合成,進而改變文字反鋸齒;獨立移除這些標註即可還原與原本完全相同的頁面像素

比較矩形涵蓋受影響的語意行,而非精確的字元輪廓;一般影像比較熱點圖與帶標註的非契約比較仍是獨立能力

原生審閱行為與限制 · 原生契約比較