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
ResPathharus 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#
| Tipe | Properti | Default | Deskripsi |
|---|---|---|---|
bool | ShowThumbs | true | Tampilkan panel thumbnail. |
bool | AutoLoad | false | Muat secara otomatis setelah inisialisasi. Alur token normal memanggil View(token) secara eksplisit. |
bool | AutoFocus | true | Pindahkan fokus/scroll browser ke penampil selama inisialisasi. |
bool | AutoPageFocus | true | Pertahankan thumbnail saat ini terlihat saat halaman berubah. |
int | PageZoom | 100 | Persentase zoom awal. |
int | ZoomStep | 10 | Persentase yang ditambahkan atau dikurangi oleh perintah zoom. |
int | MaxZoom | 300 | Persentase zoom maksimum. |
bool | ShowToolTip | true | Tampilkan tooltip posisi halaman saat menggulir. |
string | ToolTipPageText | "Page " | Awalan yang digunakan dalam tooltip halaman. |
bool | CacheEnabled | false | Pertahankan jendela bergerak gambar halaman di memori browser. Tidak menggunakan localStorage. |
bool | LargeDoc | false | Tambahkan elemen halaman dalam batch berwaktu untuk dokumen besar. |
bool | ShowHyperlinks | false | Render overlay hyperlink ketika konfigurasi server mengekstraknya. |
bool | FixedZoom | true | Gunakan persentase zoom tetap alih‑alih perhitungan responsif. |
int | FixedZoomPercent | 100 | Zoom desktop tetap. |
int | FixedZoomPercentMobile | 75 | Zoom seluler tetap. |
string | BasePath | "/" | Cabang tempat host memetakan UseDoconut(). |
string | ResPath | "doconut-res" | Basis sumber daya yang digunakan widget. Pada pengaturan normal arahkan ke <ResourcesPath>/images. |
string | FitType | "width" | "width", "height", atau kosong untuk tidak ada penyesuaian otomatis. "page" tidak diterima oleh widget saat ini. |
bool | RetryOn409 | false | Aktifkan polling ketika produksi halaman asinkron/terdistribusi merespon 202 Accepted; 409 juga diterima untuk kompatibilitas dengan server lama. Tidak diperlukan oleh penampil sinkron normal. |
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 |
|---|---|
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 |
Default JavaScript
Widget memiliki default yang lebih lama dan berbeda dari kelas C#. Nilai‑nilai berikut diambil dari implementasi docViewer.js saat ini.
| Opsi | Default | Catatan |
|---|---|---|
leftMinWidth / leftMaxWidth | 220 / 800 | Batas lebar panel thumbnail. |
showThumbs | true | Visibilitas thumbnail awal. |
autoFocus / autoPageFocus | true / false | autoPageFocus berbeda dari default C#. |
thumbWidth / thumbHeight / thumbPadding | 150 / 200 / 10 | Geometri thumbnail dalam piksel. |
pageZoom / zoomStep / maxZoom | 100 / 10 / 200 | maxZoom JavaScript berbeda dari C# (300). |
showToolTip / toolTipPageText | true / "Page " | Tooltip posisi halaman. |
format / doc / AccessToken | "" / 0 / "" | Nilai inisialisasi internal; biasanya diisi oleh View(token). |
debugMode | false | Diagnostik 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 / cacheDelay | false / 3 / 3 | Jendela dan penundaan preloading halaman di memori. |
autoLoad | false | Alur token eksplisit disarankan. |
largeDoc | true | Berbeda dari default C#. |
fixedZoom | false | Berbeda dari default C#. |
fixedZoomPercent / fixedZoomPercentMobile | 100 / 50 | Nilai seluler berbeda dari C# (75). |
showHyperlinks | true | Memerlukan ekstraksi sisi server untuk menghasilkan overlay. |
Tetapkan semua nilai yang penting secara perilaku alih‑alih mengandalkan salah satu set default. Contoh penggunaan:
<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
| Callback | Argumen | Tujuan |
|---|---|---|
onPageLoading | pageNum | Permintaan halaman sedang dimulai. |
onPageLoaded | pageNum | Gambar halaman selesai dimuat. |
onThumbnailClicked | pageNum | Pengguna memilih thumbnail. |
onPageClicked | pageNum | Pengguna memilih halaman. |
onDoubleClick | none | Penampil menerima double‑click. |
onViewerBusy | none | Penampil masuk ke keadaan sibuk. |
onViewerReady | none | Inisialisasi selesai. |
onViewerError | none | Penampil masuk ke keadaan error. |
onError | message | Operasi mengembalikan pesan error. |
onCopy | data | Data salinan teks tersedia. |
onAutoLoadStatus | pageNum | Auto‑loading maju ke halaman. |
onThumbsShown | none | Panel thumbnail menjadi terlihat. |
onAnnLoaded | none | Data anotasi dimuat. |
onAnnSaved | none | Data anotasi disimpan. |
onAnnSaveError | none | Penyimpanan anotasi gagal. |
onAnnClosed | none | UI 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:
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
| Grup | Metode umum |
|---|---|
| Siklus Hidup | View(token, accessToken?), Close(server?), Token(), Init(), IsLoaded() |
| Navigasi | GotoPage(page), ShowPage(page, focus?), Next(next), CurrentPage(), TotalPages() |
| Zoom dan penyesuaian | Zoom(zoomIn), CurrentZoom(), FitType(value), Refit() |
| Orientasi | Rotate(page, angle), Flip(page, flipType) |
| Thumbnail | HideThumbs(hide), ThumbSize(size), ReloadThumbs(width), ScrollToThumb(thumb) |
| Pencarian | CanSearch(), Search(...), SearchMatchCount(), SearchSummary(...), GotoSearchMatch(...) |
| Anotasi | SaveAnnotations(), GetAnnotations(), PushAnnotations(...), CloseAnnotations(...), ShowAnnotations(...) |
| Salin | Copy(...), 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:
| Opsi | Default |
|---|---|
retryInitialDelayMs | 250 |
retryBackoffFactor | 1.6 |
retryMaxDelayMs | 2500 |
retryMaxAttempts | 60 |
retryMaxTotalMs | 120000 |
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.MiddlewarePathharus menggambarkan cabang yang sebenarnya Anda petakan.BasePathharus menargetkan cabang tersebut. Aplikasi referensi mempertahankan bentuk permintaan historisDocImage.axdpada cabangMapWhendan oleh karena itu mengaturBasePath: '/'.DoconutOptions.ResourcesPathadalah rute sumber daya tersemat.ResPathbiasanya menargetkan subfolder/images‑nya —'doconut-res/images'dengan prefiks default.ResPathkosong benar pada perpustakaan sebelumnya, di mana sumber daya berasal dari akar aplikasi; ini tidak benar di sini, dan akan gagal tanpa error.ExtractHyperlinksharus diaktifkan dalam konfigurasi format server sebelumshowHyperlinksdapat menampilkan apa pun.
Apakah halaman ini membantu?