THotPDF.LoadFromFile

THotPDF

 

先頭  前へ  次へ

既存の PDF ファイルを読み込みます

 

Delphi syntax:

function LoadFromFile ( FileName: TFileName ): Integer;

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

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

 

C++ syntax:

int __fastcall LoadFromFile ( AnsiString FileName );

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

int __fastcall LoadFromFile ( AnsiString FileName, bool AutoDecrypt );

 

説明

LoadFromFile を呼び出すと、既存の PDF ファイルを読み込みます。LoadFromFile 関数は、読み込んだファイルのページ数を返します。ページが 1 つも見つからないファイル(空のファイルや非 PDF ファイルなど)は 0 を返すか例外を発生させます。ページが暗号化されたオブジェクトストリームの中にある暗号化ファイルは、有効なパスワードなしでは利用可能なページ結果を得られません。パスワード付きオーバーロードを使ってください

クロスリファレンスストリームの設定は、PDF 名エスケープを含む辞書自身のキーから読み取られます。ネストした直接の /Encrypt 辞書は、外側のストリームの /Length、/Filter、/W、/Index や trailer 参照を上書きすることなくセキュリティハンドラーのパラメータを供給します。これにより、フィルターされていない xref ストリームと暗号化オブジェクトストリームを持つ実際の AES-256 revision 6 ドキュメントを扱えます

/DecodeParms の PNG プレディクターパラメータも、エスケープされた PDF 名を解決し、意味が重複するキーを拒否します。xref ストリームマーカーは完全な外側辞書の後に配置されるため、stream を含む名前・文字列・コメントがペイロード境界になることはありません。読み取りではマーカー後に必須の改行コードだけを消費し、先頭ペイロードバイトが空白値でも保持します

LocalFileMappingThreshold 以上のローカルファイルは、パーサー読み取りと不変の遅延ストリーム範囲のために、共有 LRU ウィンドウキャッシュを使う境界付きウィンドウメモリマッピングで扱われます。マッピングのジオメトリは LocalFileMappingWindowSize と LocalFileMappingCacheWindows で設定し、しきい値を 0 にすると TFileStream パスを保持します。マッピングの失敗は自動的にフォールバックします。それより小さいファイルと、マッピングが無効または失敗したときのすべてのファイルは、ファイルストリーム上の 64 KB 読み取りバッファを通して読み込まれます

対応する RC4 / AES Standard 暗号化 PDF には、パスワード付きオーバーロードを使ってください。HotPDF はユーザー / オーナーのパスワードを検証し、境界付き trailer、xref、ドキュメント ID、暗号化辞書の範囲からファイルキーを復元し、読み込んだ文字列とストリームをメモリ内で復号し、読み込まれた暗号化状態をクリアして、SaveLoadedDocument に暗号化されていないコピーを書き込ませます。パスワードなしでの読み込みでは、生の暗号化オブジェクトを権威ある xref オフセットで取得するため、後から DecryptLoadedDocument を呼び出せばファイルを開き直さずに正確なバイナリのセキュリティハンドラー値を使えます。対応しない暗号化リビジョンは例外を発生させます。境界付きキー復元は HotPDF v2.489.0 から、再読み取り不要の遅延復号は HotPDF v2.490.0 から利用できます

AutoDecrypt オーバーロードは、ビューアと同じやり方でドキュメントを開きます。AutoDecrypt が True で、ドキュメントが空のユーザーパスワードで暗号化されている場合(権限だけを制限するドキュメントはこの形式で書き出されます)は、パスワード付きオーバーロードに空のパスワードを渡した場合とまったく同じようにメモリ内で復号されるため、テキストの抽出、レンダリング、エクスポートが可能になります。このとき IsEncrypted は False になり、後で SaveLoadedDocument を呼び出すと暗号化されていないコピーが書き込まれます。パスワードが必要なドキュメントも、暗号化されていないドキュメントも、通常のオーバーロードと同じように読み込まれます。空のパスワードで開けるかどうかは、同じ境界付き範囲から先に確認され、ドキュメントが 2 度読み込まれることはありません。AutoDecrypt が False の場合、このオーバーロードは通常のオーバーロードと同じです

既存の PDF オブジェクトを取り込む際、HotPDF は ISO 32000-1 の PDF 名 #XX エスケープシーケンスをデコードしてから内部的に名前値を保存します。/PANTONE#20216#20CVC、/lime#20Green、/The_Key_of_F#23_Minor といった名前は、意図されたバイト値のまま保持され、後でドキュメントをコピーまたは保存しても失われません

 

 

See also: ウィンドウ化ローカルファイルマッピング, LoadFromStream, DecryptLoadedDocument