JSON 工作設定

THPDFJobProcessor 接受一份描述有序 PDF 操作的 JSON 文件,並傳回帶有每個操作狀態的 JSON 結果

支援的操作

merge 使用 AppendPagesFromDocument 把多個輸入 PDF 合併成單一輸出檔案

split 使用 ExtractLoadedPagesToPDF 從輸入 PDF 擷取頁面範圍到各自的輸出檔案

optimise 在超過最小節省門檻時重新壓縮 FlateDecode 與 LZWDecode 串流

encrypt 以呼叫端指定的密碼與金鑰類型套用 AES-256、AES-128、RC4-128 或 RC4-40 加密

validate 執行內建驗證原則並傳回報告文字

ocr.layer 透過預設的內建 ASCII 引擎或明確設定的本機 Tesseract/RapidOCR CLI 與 DLL 配接器建立可搜尋文字;請見外部 OCR 作業設定

JSON schema

輸入必須包含一個完整的 JSON 值:分隔符有效、容器閉合、字串跳脫有效,字串之外只能有 JSON 空白;尾隨內容與超出有限 Double 範圍的數字都會被拒絕

解析器最多接受 64 層巢狀值,根值算第一層;格式錯誤或巢狀過深的工作會在任何操作執行前失敗,部分解析的值也會被釋放

輸入是一個帶有 operations 陣列的物件;每個操作都有 type 欄位與該類型專屬的參數

輸出是一個帶有 results 陣列的物件;每個結果都帶有 type、status(ok、error 或 skipped)與操作專屬欄位

字串值保留跳脫的 Unicode 字元,包括 \u0000;有限數字使用與地區無關的小數點,序列化時可超出帶正負號的 64 位元範圍

數值以 Double 儲存,精度遵循編譯器執行階段的浮點轉換,超出其精確整數範圍的整數可能在輸入時被捨入;捨入後的值超出帶正負號整數範圍時,GetInt 與 GetInt64 回傳指定的預設值

每個操作的預算

每個操作都可以包含 budget 物件,內含 memoryBytes、timeMilliseconds、objectCount、decompressionRatio 與 outputBytes 上限

{"operations":[{"type":"optimise","input":"in.pdf","output":"out.pdf",
  "budget":{"memoryBytes":268435456,"timeMilliseconds":30000,
  "objectCount":1000000,"decompressionRatio":200,"outputBytes":1073741824}}]}

超限時會傳回 status=budget-exceeded,並附上 metric、observed、limit 與 elapsedMilliseconds,後續操作不會因此中止

記憶體預算也會套用到每個串流與文件的解碼計量,讓膨脹在保留大型緩衝區之前就被約束

不透明控制代碼 API

HPDFDocCreate 傳回包著 THotPDF 執行個體的不透明 THPDFDocHandle;HPDFDocLoadFromFile、HPDFDocGetPageCount、HPDFDocSaveLoadedDocument 與 HPDFDocRunJob 都以該控制代碼操作,HPDFDocDestroy 則釋放它

這些原始碼相容的 Pascal 輔助函式仍然可供 Delphi 與 C++Builder 呼叫端使用

HotPDF 穩定 C 回呼 ABI 為隨機存取輸入、串流輸出、取消、進度、診斷與不透明控制代碼生命週期提供平坦的版本化 C 邊界