ViewerConfig

Opsi widget penampil klien

ViewerConfig (namespace Doconut) menjelaskan tampilan dan perilaku penampil browser. Ini tidak memengaruhi kualitas rendering dokumen; gunakan konfigurasi format untuk itu. Kelas C# dan widget JavaScript yang telah lama ada memiliki nilai default yang berbeda, jadi petakan nilai secara eksplisit.

Dua perubahan sisi klien dalam rilis ini gagal secara diam-diam. Fungsi penangan diteruskan sebagai opsi — widget tidak lagi mengambil nama fungsi global dari id kontainer — dan ResPath harus mengarah ke awalan sumber daya bukan ke akar aplikasi. Kedua hal tersebut membuat server tetap berfungsi dengan baik dan tidak melaporkan apa pun di konsol browser. Jika Anda membawa halaman dari perpustakaan sebelumnya, baca Callback dan Daftar periksa Jalur sebelum hal lain.

Properti C#

TipePropertiDefaultDeskripsi
boolShowThumbstrueTampilkan panel thumbnail.
boolAutoLoadfalseMuat secara otomatis setelah inisialisasi. Alur token normal memanggil View(token) secara eksplisit.
boolAutoFocustruePindahkan fokus/scroll browser ke penampil selama inisialisasi.
boolAutoPageFocustruePertahankan thumbnail saat ini terlihat saat halaman berubah.
intPageZoom100Persentase zoom awal.
intZoomStep10Persentase yang ditambah atau dikurangi oleh perintah zoom.
intMaxZoom300Persentase zoom maksimum.
boolShowToolTiptrueTampilkan tooltip posisi halaman saat menggulir.
stringToolTipPageText"Page "Awalan yang digunakan dalam tooltip halaman.
boolCacheEnabledfalsePertahankan jendela bergerak gambar halaman di memori browser. Tidak menggunakan localStorage.
boolLargeDocfalseTambahkan elemen halaman dalam batch berwaktu untuk dokumen besar.
boolShowHyperlinksfalseRender overlay hyperlink ketika konfigurasi server mengekstraknya.
boolFixedZoomtrueGunakan persentase zoom tetap alih-alih perhitungan responsif.
intFixedZoomPercent100Zoom desktop tetap.
intFixedZoomPercentMobile75Zoom seluler tetap.
stringBasePath"/"Tempat penampil mengirim permintaan halaman. "/" adalah DocImage.axd di akar situs; selain itu cabang tempat host memetakan UseDoconut(), tanpa / di depan ("doconut" berarti /doconut/DocImage.axd).
stringResPath"doconut-res/images" (26.9.0; "doconut-res" before)Folder tempat widget memuat gambar sendiri: folder images di bawah ResourcesPath, tanpa / di depan.
stringFitType"width""width", "height", atau kosong untuk tidak ada penyesuaian otomatis. "page" tidak diterima oleh widget saat ini.
boolRetryOn409falseAktifkan polling ketika produksi halaman asinkron/terdistribusi merespons 202 Accepted; 409 juga diterima untuk kompatibilitas dengan server lama. Tidak diperlukan oleh penampil sinkron normal.
csharp
var config = new ViewerConfig
{
    ShowThumbs = true,
    AutoLoad = false,
    PageZoom = 100,
    MaxZoom = 300,
    FitType = "width",
    BasePath = "doconut",           // tanpa '/' di depan: penampil menambahkannya ("/doconut" akan menjadi //doconut, host lain)
    ResPath = "doconut-res/images",
    ShowHyperlinks = true
};

Pemetaaan C# ke JavaScript

Jangan lewati ViewerConfig yang diserialisasi secara langsung ke docViewer(...). Kebanyakan kunci widget menggunakan camelCase, sementara tiga kunci jalur/fit yang sudah ada menggunakan PascalCase.

C#JavaScript
ShowThumbsshowThumbs
AutoLoadautoLoad
AutoFocusautoFocus
AutoPageFocusautoPageFocus
PageZoompageZoom
ZoomStepzoomStep
MaxZoommaxZoom
ShowToolTipshowToolTip
ToolTipPageTexttoolTipPageText
CacheEnabledcacheEnabled
LargeDoclargeDoc
ShowHyperlinksshowHyperlinks
FixedZoomfixedZoom
FixedZoomPercentfixedZoomPercent
FixedZoomPercentMobilefixedZoomPercentMobile
BasePathBasePath
ResPathResPath
FitTypeFitType
RetryOn409retryOn409

Default JavaScript

Widget memiliki nilai default lama yang berbeda dari kelas C#. Nilai berikut berasal dari implementasi docViewer.js saat ini.

OpsiDefaultCatatan
leftMinWidth / leftMaxWidth220 / 800Batas lebar panel thumbnail.
showThumbstrueVisibilitas thumbnail awal.
autoFocus / autoPageFocustrue / falseautoPageFocus berbeda dari default C#.
thumbWidth / thumbHeight / thumbPadding150 / 200 / 10Geometri thumbnail dalam piksel.
pageZoom / zoomStep / maxZoom100 / 10 / 200maxZoom JavaScript berbeda dari C# (300).
showToolTip / toolTipPageTexttrue / "Page "Tooltip posisi halaman.
format / doc / AccessToken"" / 0 / ""Nilai inisialisasi internal; biasanya diisi oleh View(token).
debugModefalseDiagnostik klien tambahan.
FitType""Tidak ada penyesuaian otomatis kecuali disediakan.
BasePath"DocImage.axd"Default klien historis dipertahankan untuk kompatibilitas. Host ASP.NET Core saat ini harus mengaturnya secara eksplisit ke cabang middleware yang dipetakan.
ResPath""Atur secara eksplisit ke jalur gambar tersemat.
cacheEnabled / cacheCount / cacheDelayfalse / 3 / 3Jendela dan penundaan preloading halaman dalam memori.
autoLoadfalseAlur token eksplisit disarankan.
largeDoctrueBerbeda dari default C#.
fixedZoomfalseBerbeda dari default C#.
fixedZoomPercent / fixedZoomPercentMobile100 / 50Nilai seluler berbeda dari C# (75).
showHyperlinkstrueMemerlukan ekstraksi sisi server untuk menghasilkan overlay.

Atur semua nilai penting perilaku alih-alih bergantung pada salah satu set default:

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>

Callback

CallbackArgumenTujuan
onPageLoadingpageNumPermintaan halaman sedang dimulai.
onPageLoadedpageNumGambar halaman selesai dimuat.
onThumbnailClickedpageNumPengguna memilih thumbnail.
onPageClickedpageNumPengguna memilih halaman.
onDoubleClicknoneViewer menerima double-click.
onViewerBusynoneViewer masuk ke keadaan sibuk.
onViewerReadynoneInisialisasi selesai.
onViewerErrornoneViewer masuk ke keadaan error.
onErrormessageOperasi mengembalikan pesan error.
onCopydataData salinan teks tersedia.
onAutoLoadStatuspageNumAuto-loading maju ke sebuah halaman.
onThumbsShownnonePanel thumbnail menjadi terlihat.
onAnnLoadednoneData anotasi dimuat.
onAnnSavednoneData anotasi disimpan.
onAnnSaveErrornonePenyimpanan anotasi gagal.
onAnnClosednoneUI anotasi ditutup.

Jaga callback tetap cepat; kirim telemetri secara asinkron dan jangan memblokir rendering halaman.

Setiap yang ini adalah opsi pada objek init. Viewer sebelumnya mencari fungsi global yang namanya diambil dari id kontainer — sebuah halaman dengan <div id="div_ctlDoc"> hanya perlu mendeklarasikan function ctlDoc_OnViewerReady(). Pencarian itu sudah tidak ada. Berikan fungsi secara eksplisit:

javascript
objctlDoc = $('#div_ctlDoc').docViewer({
    // ... opsi Anda yang ada ...
    onViewerBusy:     ctlDoc_OnViewerBusy,      // ditemukan berdasarkan nama
    onViewerReady:    ctlDoc_OnViewerReady,     // ditemukan berdasarkan nama
    onCopy:           ctlDoc_Copy,              // sebelumnya ctlDoc_Copy(teks)
    onAutoLoadStatus: ctlDoc_AutoLoadStatus     // sebelumnya ctlDoc_AutoLoadStatus(halaman)
});

Pencarian lama dibungkus dalam catch kosong, sehingga tidak ada yang pernah dilaporkan. Pada rilis ini fungsi-fungsi tidak pernah dijalankan: gejala umum adalah spinner sibuk yang tidak pernah berhenti, karena penangan yang menyembunyikannya adalah onViewerReady. Dokumen di belakangnya dirender dengan benar.

Tidak ada callback klik tautan — penanganan hyperlink sudah built-in dan dikendalikan oleh showHyperlinks.

Grup metode publik

GrupMetode umum
Siklus hidupView(token, accessToken?), Close(server?), Token(), Init(), IsLoaded()
NavigasiGotoPage(page), ShowPage(page, focus?), Next(next), CurrentPage(), TotalPages()
Zoom dan penyesuaianZoom(zoomIn), CurrentZoom(), FitType(value), Refit()
OrientasiRotate(page, angle), Flip(page, flipType)
ThumbnailHideThumbs(hide), ThumbSize(size), ReloadThumbs(width), ScrollToThumb(thumb)
PencarianCanSearch(), Search(...), SearchMatchCount(), SearchSummary(...), GotoSearchMatch(...)
AnotasiSaveAnnotations(), GetAnnotations(), PushAnnotations(...), CloseAnnotations(...), ShowAnnotations(...)
SalinCopy(...), CopyPage(pageNumber), CopyMode(enabled)

File JavaScript juga berisi pembantu internal. Perlakukan hanya metode yang digunakan oleh UI referensi dan yang didokumentasikan di sini atau dalam panduan fitur sebagai titik integrasi yang stabil.

Coba ulang saat halaman terdistribusi masih sedang merender

retryOn409 mempertahankan nama historisnya. Ini untuk produksi halaman asinkron dan mencoba ulang respons kesiapan 202 Accepted saat ini serta sinyal 409 Conflict yang lebih lama. Ketika diaktifkan, widget melakukan polling dengan nilai default JavaScript berikut:

OpsiBawaan
retryInitialDelayMs250
retryBackoffFactor1.6
retryMaxDelayMs2500
retryMaxAttempts60
retryMaxTotalMs120000

Biarkan nonaktif untuk penampil node tunggal normal. Mengaktifkannya tidak dapat membuat render sinkron yang tidak didukung menjadi asinkron.

Aktifkan ketika halaman disajikan dari penyimpanan bersama dengan FirstPagePriority, di mana halaman berikutnya secara sah menjawab 202 Accepted hingga ditulis. Klien yang tidak mencoba ulang akan menampilkan ubin rusak untuk halaman yang masih merender — lihat Penyebaran Terdistribusi.

Daftar periksa jalur

  • DoconutOptions.MiddlewarePath harus menggambarkan cabang yang sebenarnya Anda petakan.
  • BasePath harus menargetkan cabang itu, ditulis tanpa awalan / ('doconut', bukan '/doconut': penampil menambahkan garis miring, dan //doconut/... adalah permintaan ke host lain). Aplikasi referensi mempertahankan bentuk permintaan historis DocImage.axd pada cabang MapWhen dan oleh karena itu mengatur BasePath: '/'.
  • DoconutOptions.ResourcesPath adalah rute sumber daya yang disematkan.
  • ResPath biasanya menargetkan subfolder images‑nya, tanpa awalan / — 'doconut-res/images' dengan awalan bawaan. ResPath kosong memang benar pada pustaka sebelumnya, di mana sumber daya berasal dari akar aplikasi; itu tidak benar di sini, dan akan gagal tanpa error.
  • ExtractHyperlinks harus diaktifkan dalam konfigurasi format server sebelum showHyperlinks dapat menampilkan apa pun.

Apakah halaman ini membantu?