ViewerConfig
Client viewer widget options
ViewerConfig(名前空間 Doconut)はブラウザビューアの外観と動作を記述します。文書のレンダリング品質には影響しません;そのためにはフォーマット設定を使用してください。C# クラスと長年使用されている JavaScript ウィジェットはデフォルトが異なるため、値は明示的にマッピングしてください。
このリリースのクライアント側変更は2つあり、いずれも黙って失敗します。 ハンドラ関数はオプションとして渡され、ウィジェットはコンテナ ID からグローバル関数名を導出しなくなりました。また、
ResPathはアプリケーションルートではなくリソースプレフィックスを指す必要があります。これらはサーバー側には問題なく動作し、ブラウザコンソールにも何も報告されません。前のライブラリからページを引き継いでいる場合は、まず コールバック と パスチェックリスト をお読みください。
C# プロパティ
| Type | Property | Default | Description |
|---|---|---|---|
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 | "/" | UseDoconut() がマップされるホスト側のブランチ。 |
string | ResPath | "doconut-res" | ウィジェットが使用するリソースベース。通常の設定では <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",
ResPath = "/doconut-res/images",
ShowHyperlinks = true
};C# から JavaScript へのマッピング
Do not pass a directly serialized ViewerConfig to docViewer(...). Most widget keys are camelCase, while three established path/fit keys are PascalCase.
| 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 デフォルト
The widget has older defaults that differ from the C# class. The following values come from the current docViewer.js implementation.
| 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({
// ... your existing options ...
onViewerBusy: ctlDoc_OnViewerBusy, // was found by name
onViewerReady: ctlDoc_OnViewerReady, // was found by name
onCopy: ctlDoc_Copy, // was ctlDoc_Copy(text)
onAutoLoadStatus: ctlDoc_AutoLoadStatus // was ctlDoc_AutoLoadStatus(page)
});古い検索は空の catch でラップされていたため、何も報告されませんでした。このリリースでは関数は単に実行されません:一般的な症状は、onViewerReady が隠すはずだったスピナーが止まらないことです。背後の文書は正しくレンダリングされています。
リンククリック用のコールバックはありません — ハイパーリンク処理は組み込みで、showHyperlinks によって制御されます。
パブリックメソッドグループ
| Group | Common methods |
|---|---|
| Lifecycle | View(token, accessToken?), Close(server?), Token(), Init(), IsLoaded() |
| Navigation | GotoPage(page), ShowPage(page, focus?), Next(next), CurrentPage(), TotalPages() |
| Zoom and fit | Zoom(zoomIn), CurrentZoom(), FitType(value), Refit() |
| Orientation | Rotate(page, angle), Flip(page, flipType) |
| Thumbnails | HideThumbs(hide), ThumbSize(size), ReloadThumbs(width), ScrollToThumb(thumb) |
| Search | CanSearch(), Search(...), SearchMatchCount(), SearchSummary(...), GotoSearchMatch(...) |
| Annotation | SaveAnnotations(), GetAnnotations(), PushAnnotations(...), CloseAnnotations(...), ShowAnnotations(...) |
| Copy | Copy(...), CopyPage(pageNumber), CopyMode(enabled) |
JavaScript ファイルには内部ヘルパーも含まれています。ここや機能ガイドで文書化され、リファレンス UI で使用されているメソッドだけを安定した統合ポイントとして扱ってください。
分散ページがまだレンダリング中の間のリトライ
retryOn409 は歴史的な名前を保持しています。非同期ページ生成用で、現在の 202 Accepted の準備応答と古い 409 Conflict シグナルの両方をリトライします。有効にすると、ウィジェットは以下の JavaScript デフォルトでポーリングします:
| Option | Default |
|---|---|
retryInitialDelayMs | 250 |
retryBackoffFactor | 1.6 |
retryMaxDelayMs | 2500 |
retryMaxAttempts | 60 |
retryMaxTotalMs | 120000 |
通常のシングルノードビューアでは無効のままにしてください。有効化しても、サポートされていない同期レンダリングを非同期に変えることはできません。
FirstPagePriority を使用して共有ストレージからページが提供され、後続のページが書き込まれるまで正当な 202 Accepted を返す場合に有効にしてください。リトライしないクライアントは、まだレンダリング中のページで破損したタイルを表示します — 詳細は 分散デプロイメント を参照してください。
パスチェックリスト
DoconutOptions.MiddlewarePathは実際にマップするブランチを記述する必要があります。BasePathはそのブランチを指す必要があります。リファレンスアプリケーションはMapWhenブランチ上で歴史的なDocImage.axdリクエスト形態を保持しているため、BasePath: '/'を設定しています。DoconutOptions.ResourcesPathは埋め込みリソースのルートです。ResPathは通常その/imagesサブフォルダを指します — デフォルトプレフィックスで'doconut-res/images'。以前のライブラリではリソースがアプリケーションルートから提供されていたため空のResPathが正しかったですが、ここでは正しくなく、エラーなしで失敗します。ExtractHyperlinksはサーバー側のフォーマット設定で有効にする必要があり、そうしないとshowHyperlinksが何も表示できません。
このページは役に立ちましたか?