DAOpenFromURL
ドキュメント管理、ダイレクトアクセス機能
説明
バイトレンジ要求でHTTP経由のリモートPDFをダイレクトアクセス用に開きます
トランスポートはバイトレンジ対応の確認と全体長の把握のためにURLを1度プローブし、その後はシーク可能なストリームが既存のランダムアクセスリーダーを駆動するため、実際に読まれたオブジェクトだけがネットワーク経由で取得されます
ドキュメントがリニア化されていてキャッシュウォーミングが有効な場合、最初のページのセクションは保持バイト予算内でプリフェッチされるため、ファイルの残りに触れる前にページ1が描画されます
構文
Delphi
Function TPDFlib.DAOpenFromURL(Const URL, Password: WideString; Options: Integer= 0; ChunkSize: LongInt= 0; CacheLimitBytes: Int64= 0; CoalesceWindowMS: Cardinal= PDF_NET_DEFAULT_COALESCE_WINDOW_MS): Integer;DLL
int DLDAOpenFromURL(int InstanceID, const wchar_t* URL, const wchar_t* Password, int Options);ActiveX
Function PDFlib::DAOpenFromURL(URL As String, Password As String, Options As Long) As Longパラメータ
| URL | リモートPDFのhttpまたはhttpsアドレス |
|---|---|
| Password | ドキュメントのパスワード。PDFが暗号化されていない場合は空文字列 |
| Options | 0は既定のウォーム付き先頭ページオープン、PDF_NET_OPT_NO_WARMINGは完全なオンデマンドオープン |
| ChunkSize | Delphi専用。整列されたレンジフェッチの粒度。0を指定すると64 KiBが選択されます |
| CacheLimitBytes | Delphi専用。保持されるソースバイトの上限。0を指定すると4 MiBが選択され、1チャンク未満の値は1チャンクに引き上げられます |
| CoalesceWindowMS | Delphi専用。各絶対読み取りの最初の未キャッシュチャンクに対する収集ウィンドウ。既定は2ミリ秒で、0を指定すると初期遅延が無効になります |
戻り値
| >0 | ダイレクトアクセスドキュメントハンドル |
|---|---|
| 0 | ドキュメントを開けませんでした。LastErrorCodeにはPDFLIB_ERROR_NET_OPEN、PDFLIB_ERROR_NET_RANGE_UNSUPPORTED、PDFLIB_ERROR_NET_HTTP、または構造やパスワードに関するコードが設定されます |
備考
サーバーはバイトレンジ対応を通知しなければなりません。そうでない場合、呼び出しはファイル全体をダウンロードするのではなくPDFLIB_ERROR_NET_RANGE_UNSUPPORTEDで速やかに失敗します
返されたハンドルはDACloseFileで閉じます。これにより基盤のトランスポートストリームも解放されます
同時実行の遅延読み込みは同じチャンクの要求を共有し、隣接するキューチャンクを16 MiBまでのソース読み込みへ結合します
ドキュメントを開かずにページ1のバイトレンジレイアウトを調べるには、GetLinearizedURLAccessPlanを使用します
Delphiダイレクトアクセスキャッシュの観察や変更には、DAGetRangeSourceCacheInfo、DASetRangeSourceCacheLimit、DAClearRangeSourceCacheを使用します