THPDFLinearizationValidationInfo Record
線性化來源各部分的判定:線性化字典、首頁區段、頁面位移提示與共用物件提示,外加解析出的標頭值與診斷字串
宣告
THPDFLinearizationValidationInfo= record
DictionaryValid: boolean;
FirstPageSectionValid: boolean;
PageOffsetHintsValid: boolean;
SharedObjectHintsValid: boolean;
FirstPageObjectNumber: Integer;
PageCount: Integer;
HintOffset: Int64;
HintLength: Int64;
FirstPageEndOffset: Int64;
MainXRefOffset: Int64;
Valid: boolean;
Diagnostic: AnsiString;
end;
單元
HPDFDoc
欄位
| 欄位 | 用途 |
|---|---|
DictionaryValid | /L、/O、/E、/N、/T、/H 字典項目都可解析,且其範圍與檔案大小一致時為 true |
FirstPageSectionValid | 首頁物件區段檢查通過時為 true,包括宣告的結束偏移 |
PageOffsetHintsValid | 頁面位移提示串流可解碼且其值與文件相符時為 true |
SharedObjectHintsValid | 共用物件提示串流可解碼且其值與文件相符時為 true |
FirstPageObjectNumber | 從字典 /O 項目解析出的物件編號 |
PageCount | 從字典的 /N 項目解析出的頁數 |
HintOffset / HintLength | 取自字典 /H 項目的主要 hint stream 位元組範圍 |
FirstPageEndOffset | 取自字典 /E 項目的第一頁區段結束位移 |
MainXRefOffset | 取自字典 /T 項目的主要交叉參照表位移 |
Valid | 整體判定,只有全部特定部分檢查都通過時才為 true;與函式傳回值一致 |
Diagnostic | fail-closed 原因文字,指名第一個失敗的檢查 |
使用說明
- 針對任何
THPDFRandomAccessSource由THotPDF.ValidateLinearizedSource填入;驗證在第一個失敗部分即停止,並把原因記入Diagnostic - 先利用各部分旗標區分損壞的提示串流與損壞的字典,再決定漸進式載入是否安全
- 字典檢查一通過,解析出的標頭值就會填入,即使後續提示檢查失敗也一樣