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 default yang berbeda, jadi petakan nilai secara eksplisit.

Dua perubahan sisi klien dalam rilis ini gagal secara diam‑diam. Fungsi handler diteruskan sebagai opsi — widget tidak lagi menurunkan nama fungsi global dari id kontainer — dan ResPath harus mengarah ke prefiks sumber daya bukan ke akar aplikasi. Kedua hal tersebut membuat server berfungsi sempurna 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 ditambahkan 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"/"Cabang tempat host memetakan UseDoconut().
stringResPath"doconut-res"Basis sumber daya yang digunakan widget. Pada pengaturan normal arahkan ke <ResourcesPath>/images.
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 merespon 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",
    ResPath = "/doconut-res/images",
    ShowHyperlinks = true
};

Pemetaan C# ke JavaScript

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 default yang lebih lama dan berbeda dari kelas C#. Nilai‑nilai berikut diambil 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 di 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.

Tetapkan semua nilai yang penting secara perilaku alih‑alih mengandalkan salah satu set default. Contoh penggunaan:

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.
onDoubleClicknonePenampil menerima double‑click.
onViewerBusynonePenampil masuk ke keadaan sibuk.
onViewerReadynoneInisialisasi selesai.
onViewerErrornonePenampil masuk ke keadaan error.
onErrormessageOperasi mengembalikan pesan error.
onCopydataData salinan teks tersedia.
onAutoLoadStatuspageNumAuto‑loading maju ke halaman.
onThumbsShownnonePanel thumbnail menjadi terlihat.
onAnnLoadednoneData anotasi dimuat.
onAnnSavednoneData anotasi disimpan.
onAnnSaveErrornonePenyimpanan anotasi gagal.
onAnnClosednoneUI anotasi ditutup.

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

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

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)
});

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 handler yang menyembunyikannya adalah onViewerReady. Dokumen di belakangnya dirender dengan benar.

Tidak ada callback klik tautan — penanganan hyperlink sudah terintegrasi 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 didokumentasikan di sini atau dalam panduan fitur sebagai titik integrasi yang stabil.

Retry saat halaman terdistribusi masih dirender

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

OpsiDefault
retryInitialDelayMs250
retryBackoffFactor1.6
retryMaxDelayMs2500
retryMaxAttempts60
retryMaxTotalMs120000

Tetap nonaktifkan 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 sah menjawab 202 Accepted hingga ditulis. Klien yang tidak melakukan retry akan menampilkan ubin rusak untuk halaman yang masih dirender — lihat Penyebaran Terdistribusi.

Daftar periksa jalur

  • DoconutOptions.MiddlewarePath harus menggambarkan cabang yang sebenarnya Anda petakan.
  • BasePath harus menargetkan cabang tersebut. Aplikasi referensi mempertahankan bentuk permintaan historis DocImage.axd pada cabang MapWhen dan oleh karena itu mengatur BasePath: '/'.
  • DoconutOptions.ResourcesPath adalah rute sumber daya tersemat.
  • ResPath biasanya menargetkan subfolder /images‑nya — 'doconut-res/images' dengan prefiks default. ResPath kosong benar pada perpustakaan sebelumnya, di mana sumber daya berasal dari akar aplikasi; ini 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?