ViewerConfig
クライアントビューアウィジェットのオプション
ViewerConfig(名前空間 Doconut)は、ブラウザビューアの外観と動作を記述します。ドキュメントのレンダリング品質には影響しません;そのためにはフォーマット設定を使用してください。C# クラスと長年使用されている JavaScript ウィジェットはデフォルトが異なるため、値は明示的にマッピングしてください。
このリリースのクライアント側変更2つは黙って失敗します。 ハンドラ関数はオプションとして渡されます — ウィジェットはもはやコンテナ ID からグローバル関数名を導出しません — そして
ResPathはアプリケーションルートではなくリソースプレフィックスを指す必要があります。どちらもサーバーは正常に動作し続け、ブラウザコンソールには何も報告されません。前のライブラリからページを引き継いでいる場合は、まず コールバック と パスチェックリスト をお読みください。
C# プロパティ
| 型 | プロパティ | デフォルト | 説明 |
|---|---|---|---|
bool | ShowThumbs | true | サムネイルパネルを表示します。 |
bool | AutoLoad | false | 初期化後に自動的にロードします。通常のトークンフローでは View(token) を明示的に呼び出します。 |
bool | AutoFocus | true | 初期化時にブラウザのフォーカス/スクロールをビューアへ移動します。 |
bool | AutoPageFocus | true | ページが変わる間、現在のサムネイルを表示し続けます。 |
int | PageZoom | 100 | 初期ズーム率(パーセンテージ)。 |
int | ZoomStep | 10 | ズームコマンドで加算または減算されるパーセンテージ。 |
int | MaxZoom | 300 | 最大ズーム率(パーセンテージ)。 |
bool | ShowToolTip | true | スクロール中にページ位置のツールチップを表示します。 |
string | ToolTipPageText | "Page " | ページツールチップで使用されるプレフィックス。 |
bool | CacheEnabled | false | ブラウザメモリにページ画像の移動ウィンドウを保持します。localStorage は使用しません。 |
bool | LargeDoc | false | 大きなドキュメント向けに、ページ要素を時間間隔でバッチ追加します。 |
bool | ShowHyperlinks | false | サーバー設定が抽出したハイパーリンクオーバーレイを描画します。 |
bool | FixedZoom | true | レスポンシブな再計算ではなく、固定ズーム率を使用します。 |
int | FixedZoomPercent | 100 | 固定デスクトップズーム。 |
int | FixedZoomPercentMobile | 75 | 固定モバイルズーム。 |
string | BasePath | "/" | ビューアがページリクエストを送信する場所。"/" はサイトルートの DocImage.axd を指します。それ以外の場合は、ホストが UseDoconut() をマッピングするブランチです。先頭に / を付けない("doconut" は /doconut/DocImage.axd を意味します)。 |
string | ResPath | "doconut-res/images" (26.9.0; "doconut-res" before) | ウィジェットが自身の画像を読み込むフォルダー:ResourcesPath の下の images フォルダーです。先頭に / を付けません。 |
string | FitType | "width" | "width"、"height"、または自動フィットしない場合は空文字。現在のウィジェットでは "page" は受け付けられません。 |
bool | RetryOn409 | false | 非同期/分散ページ生成が 202 Accepted を返したときにポーリングを有効にします。互換性のために 409 も受け入れます。通常の同期ビューアでは必要ありません。 |
var config = new ViewerConfig
{
ShowThumbs = true,
AutoLoad = false,
PageZoom = 100,
MaxZoom = 300,
FitType = "width",
BasePath = "doconut", // 先頭に '/' を付けない: ビューアが自動で付加します("/doconut" は //doconut になり、別のホストになります)
ResPath = "doconut-res/images",
ShowHyperlinks = true
};C# から JavaScript へのマッピング
ViewerConfig を直接シリアライズしたまま docViewer(...) に渡さないでください。ほとんどのウィジェットキーはキャメルケースですが、パス/フィットに関する確立された 3 つのキーはパスカルケースです。
| C# | JavaScript |
|---|---|
ShowThumbs | showThumbs |
AutoLoad | autoLoad |
AutoFocus | autoFocus |
AutoPageFocus | autoPageFocus |
PageZoom | pageZoom |
ZoomStep | zoomStep |
MaxZoom | maxZoom |
ShowToolTip | showToolTip |
ToolTipPageText | toolTipPageText |
CacheEnabled | cacheEnabled |
LargeDoc | largeDoc |
ShowHyperlinks | showHyperlinks |
FixedZoom | fixedZoom |
FixedZoomPercent | fixedZoomPercent |
FixedZoomPercentMobile | fixedZoomPercentMobile |
BasePath | BasePath |
ResPath | ResPath |
FitType | FitType |
RetryOn409 | retryOn409 |
JavaScript のデフォルト
ウィジェットには C# クラスとは異なる古いデフォルトがあります。以下の値は現在の docViewer.js 実装から取得したものです。
| Option | Default | Notes |
|---|---|---|
leftMinWidth / leftMaxWidth | 220 / 800 | サムネイルペインの幅の範囲。 |
showThumbs | true | 初期サムネイルの表示状態。 |
autoFocus / autoPageFocus | true / false | autoPageFocus は C# のデフォルトとは異なります。 |
thumbWidth / thumbHeight / thumbPadding | 150 / 200 / 10 | ピクセル単位のサムネイルのサイズ。 |
pageZoom / zoomStep / maxZoom | 100 / 10 / 200 | JavaScript の maxZoom は C#(300)とは異なります。 |
showToolTip / toolTipPageText | true / "Page " | ページ位置のツールチップ。 |
format / doc / AccessToken | "" / 0 / "" | 内部初期化値。通常は View(token) によって設定されます。 |
debugMode | false | 追加のクライアント診断情報。 |
FitType | "" | 指定がない限り自動フィットは行われません。 |
BasePath | "DocImage.axd" | 互換性のために保持された過去のクライアントデフォルト。現在の ASP.NET Core ホストは、マッピングされたミドルウェアブランチに明示的に設定する必要があります。 |
ResPath | "" | 埋め込み画像のパスに明示的に設定します。 |
cacheEnabled / cacheCount / cacheDelay | false / 3 / 3 | メモリ内ページの事前読み込みウィンドウと遅延。 |
autoLoad | false | 明示的なトークンフローが推奨されます。 |
largeDoc | true | C# のデフォルトとは異なります。 |
fixedZoom | false | C# のデフォルトとは異なります。 |
fixedZoomPercent / fixedZoomPercentMobile | 100 / 50 | モバイル用の値は C#(75)とは異なります。 |
showHyperlinks | true | オーバーレイを生成するにはサーバー側で抽出が必要です。 |
デフォルトのいずれかに依存せず、動作上重要なすべての値を設定してください:
<div id="divDocViewer"><div id="div_ctlDoc"></div></div>
<script>
const objViewer = $('#div_ctlDoc').docViewer({
showThumbs: true,
autoLoad: false,
autoFocus: true,
autoPageFocus: true,
pageZoom: 100,
zoomStep: 10,
maxZoom: 300,
FitType: 'width',
cacheEnabled: false,
largeDoc: false,
showHyperlinks: true,
fixedZoom: true,
fixedZoomPercent: 100,
fixedZoomPercentMobile: 75,
BasePath: 'doconut',
ResPath: 'doconut-res/images',
onViewerReady: function () {},
onError: function (message) { console.error('DocViewer:', message); }
});
</script>コールバック
| Callback | Arguments | Purpose |
|---|---|---|
onPageLoading | pageNum | ページリクエストが開始されます。 |
onPageLoaded | pageNum | ページ画像の読み込みが完了しました。 |
onThumbnailClicked | pageNum | ユーザーがサムネイルを選択しました。 |
onPageClicked | pageNum | ユーザーがページを選択しました。 |
onDoubleClick | none | ビューアがダブルクリックを受け取りました。 |
onViewerBusy | none | ビューアがビジー状態になりました。 |
onViewerReady | none | 初期化が完了しました。 |
onViewerError | none | ビューアがエラー状態になりました。 |
onError | message | 操作がエラーメッセージを返しました。 |
onCopy | data | テキストコピーのデータが利用可能です。 |
onAutoLoadStatus | pageNum | 自動読み込みがページに進みました。 |
onThumbsShown | none | サムネイルパネルが表示されました。 |
onAnnLoaded | none | 注釈データがロードされました。 |
onAnnSaved | none | 注釈データが保存されました。 |
onAnnSaveError | none | 注釈の保存に失敗しました。 |
onAnnClosed | none | 注釈 UI が閉じられました。 |
コールバックは高速に保ち、テレメトリは非同期で送信し、ページのレンダリングをブロックしないでください。
これらはすべて初期化オブジェクトのオプションです。 以前のビューアは、コンテナ ID から導出した名前のグローバル関数を検索していました — <div id="div_ctlDoc"> を持つページは function ctlDoc_OnViewerReady() を宣言するだけで済みました。その検索は廃止されました。関数を明示的に渡してください:
objctlDoc = $('#div_ctlDoc').docViewer({
// ... 既存のオプション ...
onViewerBusy: ctlDoc_OnViewerBusy, // 名前で見つかっていました
onViewerReady: ctlDoc_OnViewerReady, // 名前で見つかっていました
onCopy: ctlDoc_Copy, // ctlDoc_Copy(text) が呼び出されていました
onAutoLoadStatus: ctlDoc_AutoLoadStatus // ctlDoc_AutoLoadStatus(page) が呼び出されていました
});古い検索は空の catch でラップされていたため、何も報告されませんでした。このリリースでは関数は単に実行されません。一般的な症状は、onViewerReady が非表示にするハンドラだったため、停止しないビジー スピナーが表示され続けることです。背後のドキュメントは正しくレンダリングされています。
リンククリックのコールバックはありません — ハイパーリンクの処理は組み込みで、showHyperlinks によって制御されます。
パブリックメソッドグループ
| グループ | 共通メソッド |
|---|---|
| ライフサイクル | View(token, accessToken?), Close(server?), Token(), Init(), IsLoaded() |
| ナビゲーション | GotoPage(page), ShowPage(page, focus?), Next(next), CurrentPage(), TotalPages() |
| ズームとフィット | Zoom(zoomIn), CurrentZoom(), FitType(value), Refit() |
| 向き | Rotate(page, angle), Flip(page, flipType) |
| サムネイル | HideThumbs(hide), ThumbSize(size), ReloadThumbs(width), ScrollToThumb(thumb) |
| 検索 | CanSearch(), Search(...), SearchMatchCount(), SearchSummary(...), GotoSearchMatch(...) |
| アノテーション | SaveAnnotations(), GetAnnotations(), PushAnnotations(...), CloseAnnotations(...), ShowAnnotations(...) |
| コピー | Copy(...), CopyPage(pageNumber), CopyMode(enabled) |
JavaScript ファイルには内部ヘルパーも含まれています。ここや機能ガイドで文書化され、リファレンス UI が使用するメソッドだけを、安定した統合ポイントとして扱ってください。
分散ページがまだレンダリング中の間のリトライ
retryOn409 は歴史的な名前を保持しています。これは非同期ページ生成用で、現在の 202 Accepted 準備完了レスポンスと、従来の 409 Conflict シグナルの両方をリトライします。有効化すると、ウィジェットは以下の JavaScript デフォルトでポーリングします。
| オプション | デフォルト |
|---|---|
retryInitialDelayMs | 250 |
retryBackoffFactor | 1.6 |
retryMaxDelayMs | 2500 |
retryMaxAttempts | 60 |
retryMaxTotalMs | 120000 |
通常のシングルノードビューアでは無効のままにしてください。有効化しても、サポートされていない同期レンダリングを非同期に変えることはできません。
FirstPagePriority を使用した共有ストレージからページが提供され、後続のページが書き込まれるまで正当に 202 Accepted を返す場合に有効にしてください。リトライしないクライアントは、まだレンダリング中のページでタイルが壊れた状態になります — 詳細は分散デプロイメントをご覧ください。
パスチェックリスト
DoconutOptions.MiddlewarePathは、実際にマッピングするブランチを記述する必要があります。BasePathはそのブランチを対象とし、先頭の/を付けずに記述します('doconut'、'/doconut'ではなく:ビューアがスラッシュを付加し、//doconut/...は別ホストへのリクエストになります)。リファレンスアプリケーションはMapWhenブランチ上で歴史的なDocImage.axdリクエスト形状を保持しているため、BasePath: '/'を設定します。DoconutOptions.ResourcesPathは埋め込みリソースのルートです。ResPathは通常、先頭の/を付けずにそのimagesサブフォルダを対象とします(デフォルトプレフィックス付きで'doconut-res/images')。以前のライブラリでは空のResPathが正しかったため、リソースはアプリケーションルートから取得されていましたが、こちらでは正しくなく、エラーなしで失敗します。ExtractHyperlinksは、showHyperlinksが何かを表示できるようになる前に、サーバーフォーマット設定で有効にする必要があります。
このページは役に立ちましたか?