THotPDF.LoadFromFile

THotPDF

 

傳回頂部  上一頁  下一頁

載入既有 PDF 檔案

 

Delphi 語法:

function LoadFromFile ( FileName: TFileName ): Integer;

function LoadFromFile ( FileName: TFileName; const Password: AnsiString ): Integer;

function LoadFromFile ( FileName: TFileName; AutoDecrypt: Boolean ): Integer;

 

C++ 語法:

int __fastcall LoadFromFile ( AnsiString FileName );

int __fastcall LoadFromFile ( AnsiString FileName, System::AnsiString Password );

int __fastcall LoadFromFile ( AnsiString FileName, bool AutoDecrypt );

 

說明

呼叫 LoadFromFile 載入既有 PDF file。LoadFromFile function 會傳回載入檔案中的頁數。找不到任何頁面的檔案(例如空檔案或非 PDF 檔案)會傳回 0 或擲回例外。頁面藏在加密 object stream 裡的加密檔案,沒有正確密碼就無法產出可用的頁面結果;請改用密碼 overload

交叉參照串流的組態從它自己的字典鍵讀取,包括 PDF name 轉義。巢狀的直接 /Encrypt 字典提供 security handler 參數,不會覆寫外層串流的 /Length、/Filter、/W、/Index 或 trailer 參照。這支援帶未過濾 xref 串流與加密 object stream 的真實 AES-256 revision 6 文件

/DecodeParms 裡的 PNG predictor 參數同樣會解析轉義的 PDF name,並拒絕語意重複的鍵。xref 串流標記是在完整外層字典之後定位,因此含有 stream 的名稱、字串與註解不會變成酬載邊界。讀取只消耗標記之後所需的換行,並保留以空白字元開頭的第一個酬載 byte

達到 LocalFileMappingThreshold 以上的本機檔案會使用有界的視窗式記憶體對應,並以共享的 LRU 視窗快取供 parser 讀取與不可變的 lazy stream 範圍使用。對應幾何可用 LocalFileMappingWindowSize 與 LocalFileMappingCacheWindows 設定;把閾值設為零可保留 TFileStream 路徑。對應失敗會自動退回。較小的檔案,以及對應關閉或失敗時的所有檔案,都透過檔案串流上 64 KB 的讀取緩衝區讀取

支援的 RC4 與 AES Standard 加密 PDF 請使用密碼 overload。HotPDF 會驗證 user 或 owner 密碼,從有界的 trailer、xref、文件 ID 與加密字典範圍還原檔案金鑰,在記憶體中解密已載入的字串與串流,清除已載入的加密狀態,並讓 SaveLoadedDocument 寫出未加密副本。不帶密碼載入時,會按權威 xref 偏移量擷取原始加密物件,讓後續的 DecryptLoadedDocument 呼叫不必重新開檔就能使用確切的二進位 security handler 值。不支援的加密修訂版會擲回例外。有界金鑰還原自 HotPDF v2.489.0 起可用,零重讀延遲解密自 HotPDF v2.490.0 起可用

AutoDecrypt overload 以檢視器的方式開啟文件。AutoDecrypt 為 True 且文件以空的使用者密碼加密(只限制權限的文件就是這樣寫出的)時,會在記憶體中解密,效果與密碼 overload 傳入空密碼完全相同,因此可以擷取、轉譯與匯出其文字;此時 IsEncrypted 為 False,後續的 SaveLoadedDocument 會寫出未加密副本。需要密碼的文件與未加密的文件,都照普通 overload 的方式載入。空密碼能否開啟文件會先從相同的有界範圍判斷,不會載入文件兩次。AutoDecrypt 為 False 時,此 overload 就是普通 overload

匯入既有 PDF objects 時,HotPDF 會先解碼 ISO 32000-1 PDF name #XX escape sequences,再將 name values 儲存在內部。像 /PANTONE#20216#20CVC、/lime#20Green 與 /The_Key_of_F#23_Minor 這類 names,在檔案稍後複製或儲存時會保留其預期 byte values

 

 

請參閱: LoadFromStream, DecryptLoadedDocument