ViewerConfig
İstemci görüntüleyici widget seçenekleri
ViewerConfig (namespace Doconut) tarayıcı görüntüleyicisinin görünüm ve davranışını tanımlar. Belge render kalitesini etkilemez; bunun için bir format yapılandırması kullanın. C# sınıfı ve uzun süredir var olan JavaScript widget'ı farklı varsayılanlara sahiptir, bu yüzden değerleri açıkça eşleyin.
Bu sürümde iki istemci tarafı değişiklik sessizce başarısız olur. seçenek olarak iletilir — widget artık konteyner kimliğinden global fonksiyon adları türetmez — ve
ResPathkaynak önekine, uygulama köküne değil, işaret etmelidir. Her ikisi de sunucunun mükemmel çalışmasını sağlar ve tarayıcı konsolunda hiçbir şey raporlamaz. Eğer önceki kütüphaneden bir sayfayı taşıyorsanız, okuyunGeri Çağrılar ve Yol Kontrol Listesi önce başka bir şey yapmadan önce.
C# özellikleri
| Tür | Özellik | Varsayılan | Açıklama |
|---|---|---|---|
bool | ShowThumbs | true | Küçük resim panelini göster. |
bool | AutoLoad | false | Başlatmadan sonra otomatik olarak yükle. Normal token akışı View(token)'ı açıkça çağırır. |
bool | AutoFocus | true | Başlatma sırasında tarayıcı odak/scrollunu görüntüleyiciye taşı. |
bool | AutoPageFocus | true | Sayfalar değişirken mevcut küçük resmi görünür tut. |
int | PageZoom | 100 | İlk yakınlaştırma yüzdesi. |
int | ZoomStep | 10 | Yakınlaştırma komutlarıyla eklenen veya çıkarılan yüzde. |
int | MaxZoom | 300 | Maksimum yakınlaştırma yüzdesi. |
bool | ShowToolTip | true | Kaydırma sırasında sayfa konumu araç ipucunu göster. |
string | ToolTipPageText | "Page " | Sayfa araç ipucunda kullanılan önek. |
bool | CacheEnabled | false | Tarayıcı belleğinde sayfa görüntülerinin hareketli bir penceresini tut. localStorage kullanmaz. |
bool | LargeDoc | false | Büyük belgeler için sayfa öğelerini zamanlanmış toplu ekle. |
bool | ShowHyperlinks | false | Sunucu yapılandırması onları çıkardığında hiperlink bindirmelerini render et. |
bool | FixedZoom | true | Duyarlı yeniden hesaplama yerine sabit bir yakınlaştırma yüzdesi kullan. |
int | FixedZoomPercent | 100 | Sabit masaüstü yakınlaştırması. |
int | FixedZoomPercentMobile | 75 | Sabit mobil yakınlaştırma. |
string | BasePath | "/" | Görüntüleyicinin sayfa isteklerini gönderdiği yer. "/" site kökünde DocImage.axd; aksi takdirde, ana bilgisayarın UseDoconut() eşlediği dal, başında / olmadan ("doconut", /doconut/DocImage.axd anlamına gelir). |
string | ResPath | "doconut-res/images" (26.9.0; "doconut-res" before) | Widget'in kendi görüntülerini yüklediği klasör: ResourcesPath altında images klasörü, başında / olmadan. |
string | FitType | "width" | "width", "height", ya da otomatik sığdırma olmaması için boş. "page" mevcut widget tarafından kabul edilmez. |
bool | RetryOn409 | false | Asenkron/dağıtık sayfa üretimi 202 Accepted yanıt verdiğinde yoklamayı etkinleştir; eski sunucularla uyumluluk için 409 da kabul edilir. Normal senkron görüntüleyici için gerekmez. |
var config = new ViewerConfig
{
ShowThumbs = true,
AutoLoad = false,
PageZoom = 100,
MaxZoom = 300,
FitType = "width",
BasePath = "doconut", // başında '/' yok: görüntüleyici ekler ("/doconut" //doconut, başka bir sunucu olur)
ResPath = "doconut-res/images",
ShowHyperlinks = true
};C#'tan JavaScript'e eşleme
Doğrudan serileştirilmiş bir ViewerConfig'ı docViewer(...)'a geçirmeyin. Çoğu widget anahtarı camelCase iken, üç yerleşik yol/fit anahtarı PascalCase'dir.
| 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 varsayılanları
Widget, C# sınıfından farklı eski varsayıllara sahiptir. Aşağıdaki değerler mevcut docViewer.js uygulamasından gelmektedir.
| Seçenek | Varsayılan | Notlar |
|---|---|---|
leftMinWidth / leftMaxWidth | 220 / 800 | Küçük resim bölmesi genişliği sınırları. |
showThumbs | true | İlk küçük resim görünürlüğü. |
autoFocus / autoPageFocus | true / false | autoPageFocus C# varsayılanından farklıdır. |
thumbWidth / thumbHeight / thumbPadding | 150 / 200 / 10 | Küçük resim geometrisi piksel cinsinden. |
pageZoom / zoomStep / maxZoom | 100 / 10 / 200 | JavaScript maxZoom C# (300) ile farklıdır. |
showToolTip / toolTipPageText | true / "Page " | Sayfa konumu araç ipucu. |
format / doc / AccessToken | "" / 0 / "" | Dahili başlatma değerleri; genellikle View(token) tarafından doldurulur. |
debugMode | false | Ek istemci tanılamaları. |
FitType | "" | Sağlanmadıkça otomatik uyum yok. |
BasePath | "DocImage.axd" | Uyumluluk için tarihsel istemci varsayılanı korunur. Mevcut ASP.NET Core barındırıcıları, bunu açıkça eşlenen ara katman dalına ayarlamalıdır. |
ResPath | "" | Gömülü resim yoluna açıkça ayarlayın. |
cacheEnabled / cacheCount / cacheDelay | false / 3 / 3 | Bellek içi sayfa ön yükleme penceresi ve gecikmesi. |
autoLoad | false | Açık token akışı önerilir. |
largeDoc | true | C# varsayılanından farklıdır. |
fixedZoom | false | C# varsayılanından farklıdır. |
fixedZoomPercent / fixedZoomPercentMobile | 100 / 50 | Mobil değer C# (75) ile farklıdır. |
showHyperlinks | true | Kaplamalar üretmek için sunucu tarafı çıkarımı gerekir. |
Davranışsal olarak önemli tüm değerleri ayarlayın, varsayılanlardan birine güvenmek yerine:
<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>Geri Çağrılar
| Geri Çağrı | Argümanlar | Amaç |
|---|---|---|
onPageLoading | pageNum | Bir sayfa isteği başlıyor. |
onPageLoaded | pageNum | Bir sayfa resmi yüklemeyi tamamladı. |
onThumbnailClicked | pageNum | Kullanıcı bir küçük resim seçti. |
onPageClicked | pageNum | Kullanıcı bir sayfa seçti. |
onDoubleClick | none | Görüntüleyici çift tıklama aldı. |
onViewerBusy | none | Görüntüleyici meşgul duruma girdi. |
onViewerReady | none | Başlatma tamamlandı. |
onViewerError | none | Görüntüleyici hata durumuna girdi. |
onError | message | Bir işlem hata mesajı döndürdü. |
onCopy | data | Metin kopyalama verisi mevcut. |
onAutoLoadStatus | pageNum | Otomatik yükleme bir sayfaya ilerledi. |
onThumbsShown | none | Küçük resim paneli görünür oldu. |
onAnnLoaded | none | Açıklama verisi yüklendi. |
onAnnSaved | none | Açıklama verisi kaydedildi. |
onAnnSaveError | none | Açıklama kaydetme başarısız oldu. |
onAnnClosed | none | Açıklama UI kapatıldı. |
Geri çağrıları hızlı tutun; telemetrileri asenkron gönderin ve sayfa renderını engellemeyin.
Bu seçeneklerin her biri init nesnesindeki bir seçenektir. Önceki görüntüleyici, adını konteyner kimliğinden türettiği global fonksiyonları arıyordu — <div id="div_ctlDoc"> içeren bir sayfa sadece function ctlDoc_OnViewerReady() bildirmek zorundaydı. Bu arama artık yok. Fonksiyonu açıkça geçirin:
objctlDoc = $('#div_ctlDoc').docViewer({
// ... mevcut seçenekleriniz ...
onViewerBusy: ctlDoc_OnViewerBusy, // adıyla bulundu
onViewerReady: ctlDoc_OnViewerReady, // adıyla bulundu
onCopy: ctlDoc_Copy, // idi ctlDoc_Copy(text)
onAutoLoadStatus: ctlDoc_AutoLoadStatus // idi ctlDoc_AutoLoadStatus(page)
});Eski arama boş bir catch içinde sarılmıştı, bu yüzden hiçbir şey raporlanmadı. Bu
sürümde fonksiyonlar basitçe hiç çalışmaz: yaygın semptom, hiç durmayan meşgul dönen göstergedir,
çünkü onu gizleyen işleyici onViewerReady idi. Arkasındaki belge
doğru şekilde renderlanıyor.
Bağlantı tıklama geri çağrısı yok — hiperlink işleme yerleşiktir ve showHyperlinks tarafından yönlendirilir.
Genel yöntem grupları
| Grup | Ortak yöntemler |
|---|---|
| Yaşam döngüsü | View(token, accessToken?), Close(server?), Token(), Init(), IsLoaded() |
| Gezinti | GotoPage(page), ShowPage(page, focus?), Next(next), CurrentPage(), TotalPages() |
| Yakınlaştırma ve sığdırma | Zoom(zoomIn), CurrentZoom(), FitType(value), Refit() |
| Yönlendirme | Rotate(page, angle), Flip(page, flipType) |
| Küçük resimler | HideThumbs(hide), ThumbSize(size), ReloadThumbs(width), ScrollToThumb(thumb) |
| Arama | CanSearch(), Search(...), SearchMatchCount(), SearchSummary(...), GotoSearchMatch(...) |
| Açıklama | SaveAnnotations(), GetAnnotations(), PushAnnotations(...), CloseAnnotations(...), ShowAnnotations(...) |
| Kopyala | Copy(...), CopyPage(pageNumber), CopyMode(enabled) |
JavaScript dosyası ayrıca dahili yardımcılar da içerir. Yalnızca referans UI tarafından kullanılan ve burada ya da özellik kılavuzlarında belgelenen yöntemleri, kararlı entegrasyon noktaları olarak ele alın.
Dağıtılmış bir sayfa hâlâ işlenirken Yeniden deneme
retryOn409 tarihsel adını korur. Asenkron sayfa üretimi içindir ve mevcut 202 Accepted hazırlık yanıtını ve ayrıca eski 409 Conflict sinyalini yeniden dener. Etkinleştirildiğinde, widget bu JavaScript varsayılanlarıyla sorgular:
| Seçenek | Varsayılan |
|---|---|
retryInitialDelayMs | 250 |
retryBackoffFactor | 1.6 |
retryMaxDelayMs | 2500 |
retryMaxAttempts | 60 |
retryMaxTotalMs | 120000 |
Normal tek düğüm görüntüleyici için devre dışı bırakın. Etkinleştirmek, desteklenmeyen senkron bir render'ı asenkron hâle getiremez.
FirstPagePriority ile paylaşımlı depolamadan sunulan sayfalar olduğunda bunu etkinleştirin; bu durumda sonraki sayfalar, yazılana kadar 202 Accepted yanıtını meşru olarak verir. Yeniden denemeyen bir istemci, hâlâ işlenen sayfalar için bozuk döşemeler gösterir — bkz. Dağıtılmış Dağıtımlar.
Yol kontrol listesi
DoconutOptions.MiddlewarePath, gerçekte eşlediğiniz dalı tanımlamalıdır.BasePath, o dalı hedeflemelidir; başında/olmadan yazılmış olmalıdır ('doconut','/doconut'değil: görüntüleyici eğik çizgiyi ekler ve//doconut/...başka bir ana bilgisayara istek demektir). Referans uygulama, tarihiDocImage.axdistek biçimini birMapWhendalında tutar ve bu nedenleBasePath: '/'ayarlar.DoconutOptions.ResourcesPath, gömülü kaynak yoludur.ResPathgenellikleimagesalt klasörünü hedefler, başında/olmadan — varsayılan önekle'doconut-res/images'. Boş birResPath, kaynakların uygulama kökünden geldiği önceki kütüphanede doğruydu; burada doğru değildir ve hata vermeden başarısız olur.ExtractHyperlinks,showHyperlinksbir şey görüntüleyebilmeden önce sunucu format yapılandırmasında etkinleştirilmelidir.
Bu sayfa yardımcı oldu mu?