ViewerConfig

Client viewer widget options

ViewerConfig(名前空間 Doconut)はブラウザビューアの外観と動作を記述します。文書のレンダリング品質には影響しません;そのためにはフォーマット設定を使用してください。C# クラスと長年使用されている JavaScript ウィジェットはデフォルトが異なるため、値は明示的にマッピングしてください。

このリリースのクライアント側変更は2つあり、いずれも黙って失敗します。 ハンドラ関数はオプションとして渡され、ウィジェットはコンテナ ID からグローバル関数名を導出しなくなりました。また、ResPath はアプリケーションルートではなくリソースプレフィックスを指す必要があります。これらはサーバー側には問題なく動作し、ブラウザコンソールにも何も報告されません。前のライブラリからページを引き継いでいる場合は、まず コールバックパスチェックリスト をお読みください。

C# プロパティ

TypePropertyDefaultDescription
boolShowThumbstrueサムネイルパネルを表示します。
boolAutoLoadfalse初期化後に自動的にロードします。通常のトークンフローでは View(token) を明示的に呼び出します。
boolAutoFocustrue初期化時にブラウザのフォーカス/スクロールをビューアへ移動します。
boolAutoPageFocustrueページが変わっても現在のサムネイルを表示し続けます。
intPageZoom100初期ズーム率(パーセンテージ)。
intZoomStep10ズームコマンドで加算または減算されるパーセンテージ。
intMaxZoom300最大ズーム率(パーセンテージ)。
boolShowToolTiptrueスクロール中にページ位置のツールチップを表示します。
stringToolTipPageText"Page "ページツールチップで使用されるプレフィックス。
boolCacheEnabledfalseブラウザメモリ内にページ画像の移動ウィンドウを保持します。localStorage は使用しません。
boolLargeDocfalse大きな文書向けに、ページ要素を時間分割で追加します。
boolShowHyperlinksfalseサーバー設定で抽出されたハイパーリンクオーバーレイをレンダリングします。
boolFixedZoomtrueレスポンシブな再計算ではなく、固定ズーム率を使用します。
intFixedZoomPercent100固定デスクトップズーム。
intFixedZoomPercentMobile75固定モバイルズーム。
stringBasePath"/"UseDoconut() がマップされるホスト側のブランチ。
stringResPath"doconut-res"ウィジェットが使用するリソースベース。通常の設定では <ResourcesPath>/images を指します。
stringFitType"width""width""height"、または自動フィットしない場合は空。現在のウィジェットでは "page" は受け付けません。
boolRetryOn409false非同期/分散ページ生成が 202 Accepted を返したときにポーリングを有効にします。互換性のため 409 も受け入れます。通常の同期ビューアでは不要です。
csharp
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
ShowThumbsshowThumbs
AutoLoadautoLoad
AutoFocusautoFocus
AutoPageFocusautoPageFocus
PageZoompageZoom
ZoomStepzoomStep
MaxZoommaxZoom
ShowToolTipshowToolTip
ToolTipPageTexttoolTipPageText
CacheEnabledcacheEnabled
LargeDoclargeDoc
ShowHyperlinksshowHyperlinks
FixedZoomfixedZoom
FixedZoomPercentfixedZoomPercent
FixedZoomPercentMobilefixedZoomPercentMobile
BasePathBasePath
ResPathResPath
FitTypeFitType
RetryOn409retryOn409

JavaScript デフォルト

The widget has older defaults that differ from the C# class. The following values come from the current docViewer.js implementation.

OptionDefaultNotes
leftMinWidth / leftMaxWidth220 / 800サムネイルペインの幅の範囲。
showThumbstrue初期サムネイルの表示状態。
autoFocus / autoPageFocustrue / falseautoPageFocus は C# のデフォルトと異なります。
thumbWidth / thumbHeight / thumbPadding150 / 200 / 10ピクセル単位のサムネイルサイズ。
pageZoom / zoomStep / maxZoom100 / 10 / 200JavaScript の maxZoom は C#(300)とは異なります。
showToolTip / toolTipPageTexttrue / "Page "ページ位置のツールチップ。
format / doc / AccessToken"" / 0 / ""内部初期化値。通常は View(token) によって設定されます。
debugModefalse追加のクライアント診断情報。
FitType""指定がない限り自動フィットしません。
BasePath"DocImage.axd"互換性のために保持された過去のクライアントデフォルト。現在の ASP.NET Core ホストでは、マップされたミドルウェアブランチに明示的に設定する必要があります。
ResPath""埋め込み画像パスに明示的に設定します。
cacheEnabled / cacheCount / cacheDelayfalse / 3 / 3メモリ内ページ事前読み込みウィンドウと遅延。
autoLoadfalse明示的なトークンフローが推奨されます。
largeDoctrueC# のデフォルトとは異なります。
fixedZoomfalseC# のデフォルトとは異なります。
fixedZoomPercent / fixedZoomPercentMobile100 / 50モバイルの値は C#(75)とは異なります。
showHyperlinkstrueオーバーレイを生成するにはサーバー側で抽出が必要です。

デフォルトに依存せず、動作上重要なすべての値を設定してください:

html
<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>

コールバック

CallbackArgumentsPurpose
onPageLoadingpageNumページリクエストが開始されます。
onPageLoadedpageNumページ画像の読み込みが完了しました。
onThumbnailClickedpageNumユーザーがサムネイルを選択しました。
onPageClickedpageNumユーザーがページを選択しました。
onDoubleClicknoneビューアがダブルクリックを受け取りました。
onViewerBusynoneビューアがビジー状態になりました。
onViewerReadynone初期化が完了しました。
onViewerErrornoneビューアがエラー状態になりました。
onErrormessage操作がエラーメッセージを返しました。
onCopydataテキストコピー用データが利用可能です。
onAutoLoadStatuspageNumオートロードがページに進みました。
onThumbsShownnoneサムネイルパネルが表示されました。
onAnnLoadednoneアノテーションデータが読み込まれました。
onAnnSavednoneアノテーションデータが保存されました。
onAnnSaveErrornoneアノテーションの保存に失敗しました。
onAnnClosednoneアノテーション UI が閉じられました。

コールバックは高速に保ち、テレメトリは非同期で送信し、ページのレンダリングをブロックしないでください。

これらはすべて初期化オブジェクトのオプションです。 以前のビューアはコンテナ ID から導出したグローバル関数名を検索していました — <div id="div_ctlDoc"> があるページでは function ctlDoc_OnViewerReady() を宣言するだけで済んでいました。その検索は廃止されました。関数は明示的に渡してください:

javascript
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 によって制御されます。

パブリックメソッドグループ

GroupCommon methods
LifecycleView(token, accessToken?), Close(server?), Token(), Init(), IsLoaded()
NavigationGotoPage(page), ShowPage(page, focus?), Next(next), CurrentPage(), TotalPages()
Zoom and fitZoom(zoomIn), CurrentZoom(), FitType(value), Refit()
OrientationRotate(page, angle), Flip(page, flipType)
ThumbnailsHideThumbs(hide), ThumbSize(size), ReloadThumbs(width), ScrollToThumb(thumb)
SearchCanSearch(), Search(...), SearchMatchCount(), SearchSummary(...), GotoSearchMatch(...)
AnnotationSaveAnnotations(), GetAnnotations(), PushAnnotations(...), CloseAnnotations(...), ShowAnnotations(...)
CopyCopy(...), CopyPage(pageNumber), CopyMode(enabled)

JavaScript ファイルには内部ヘルパーも含まれています。ここや機能ガイドで文書化され、リファレンス UI で使用されているメソッドだけを安定した統合ポイントとして扱ってください。

分散ページがまだレンダリング中の間のリトライ

retryOn409 は歴史的な名前を保持しています。非同期ページ生成用で、現在の 202 Accepted の準備応答と古い 409 Conflict シグナルの両方をリトライします。有効にすると、ウィジェットは以下の JavaScript デフォルトでポーリングします:

OptionDefault
retryInitialDelayMs250
retryBackoffFactor1.6
retryMaxDelayMs2500
retryMaxAttempts60
retryMaxTotalMs120000

通常のシングルノードビューアでは無効のままにしてください。有効化しても、サポートされていない同期レンダリングを非同期に変えることはできません。

FirstPagePriority を使用して共有ストレージからページが提供され、後続のページが書き込まれるまで正当な 202 Accepted を返す場合に有効にしてください。リトライしないクライアントは、まだレンダリング中のページで破損したタイルを表示します — 詳細は 分散デプロイメント を参照してください。

パスチェックリスト

  • DoconutOptions.MiddlewarePath は実際にマップするブランチを記述する必要があります。
  • BasePath はそのブランチを指す必要があります。リファレンスアプリケーションは MapWhen ブランチ上で歴史的な DocImage.axd リクエスト形態を保持しているため、BasePath: '/' を設定しています。
  • DoconutOptions.ResourcesPath は埋め込みリソースのルートです。
  • ResPath は通常その /images サブフォルダを指します — デフォルトプレフィックスで 'doconut-res/images'。以前のライブラリではリソースがアプリケーションルートから提供されていたため空の ResPath が正しかったですが、ここでは正しくなく、エラーなしで失敗します。
  • ExtractHyperlinks はサーバー側のフォーマット設定で有効にする必要があり、そうしないと showHyperlinks が何も表示できません。

このページは役に立ちましたか?