THotPDF.PreparePDFForSigning Method
透過保留 signature container area 並產生 caller 要簽署的 byte ranges,準備 unsigned PDF 供 external signing 使用
宣告
class function PreparePDFForSigning(var PDFBytes: AnsiString; out Range1Start: Integer; out Range1Length: Integer; out Range2Start: Integer; out Range2Length: Integer; out ContentsHexStart: Integer; out ContentsHexLen: Integer): boolean;
備註
PDFBytes 是 THPDFPage.AddSignedSignatureField 準備好的已儲存文件。此方法會就地把 /ByteRange 佔位內容換成實際值,找不到佔位內容時回傳 False
Range1Start、Range1Length、Range2Start與Range2Length是以 0 為起點的檔案位移與長度。依序對這兩個範圍做雜湊,即可得到 CMS 簽章涵蓋的摘要- 兩個範圍之間的位元組是完整的
/Contents十六進位字串,含<與>分隔字元,這是 ISO/IEC 32000-1 12.8.3.3 的要求 ContentsHexStart是PDFBytes中第一個十六進位數位的 1 起始索引,ContentsHexLen則是保留的十六進位數位數量。把十六進位編碼的簽章交給InsertSignatureHex,長度不足時它會在尾端補零