LoadFromMappedFile
ドキュメント管理、パフォーマンス、ファイル入力
説明
境界付き読み取り専用マップビューを通じてローカルPDFを読み込んで選択します。大きな遅延オブジェクト読み取りとストリーム読み取りが、ソース全体をメモリに保持せずにOSのファイルページを再利用できます
構文
Delphi
Function TPDFlib.LoadFromMappedFile(Const FileName, Password: WideString;
WindowSize: Int64= 0; Options: Integer= 0): Integer;パラメータ
| FileName | ローカルPDFのパスです |
|---|---|
| Password | PDFを開くために使うパスワードです。暗号化されていないドキュメントでは空文字列です |
| WindowSize | 要求されたマップビューサイズ(バイト)です。0を指定すると64 MiBが選択され、OSの割り当て粒度未満の値はその粒度に引き上げられ、1 GiBを超える値は上限で切られます |
| Options | 0は読み取り専用ファイルストリームへのフォールバックを許可します。PDF_MAPPED_FILE_REQUIRE_MAPPINGは、マップビューがアクティブでない限り失敗します |
戻り値
| 0 | 引数が無効だった、ファイルを開けなかった、要求されたマッピングが利用できなかった、またはPDFを読み込めませんでした。LastErrorCodeを確認してください |
|---|---|
| 1 | ドキュメントが読み込まれ、選択されました |
備考
Windowsビルドは読み取り専用ビューを1つ保持し、アロケーション粒度の境界で必要に応じて再マップします。他のプラットフォームとマッピング失敗時は、マッピングが必須でない限り、通常の読み取り専用ファイルストリーム越しに同じ絶対読み取り契約を使います
既定の64 MiBビューはソースサイズとは無関係にアドレス空間使用を抑え、大きなローカルファイルへの疎なアクセスに適しています。より小さいビューは再マップの増加と引き換えに常駐アドレス空間を減らせます
絶対オブジェクトスライス読み込みは、位置指定ストリームカーソルを変えずに現在のビューからパーサー所有の保存領域へ直接コピーします。再マッピングがビューアドレスを無効化するため、永続的なゼロコピーポインターAPIではありません
ソースは読み込まれたドキュメントが取り除かれるまで開いたまま残り、保存や遅延抽出が読み込みを続けられます
OnPasswordが割り当てられている場合、拒否されたパスワードのリトライごとに新しいマップ済みストリームとパーサー状態が渡されます
マッピングがアクティブか確認し、現在のビューと読み込み統計を調べるにはGetMappedFileInfoを使用します