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şikliği sessizce başarısız olur. İşleyici fonksiyonları seçenek olarak geçirilir — widget artık konteyner kimliğinden global fonksiyon adları türetmez — ve
ResPathuygulama kökü yerine kaynak önekine işaret etmelidir. İkisi de sunucunun sorunsuz çalışmasını sağlar ve tarayıcı konsolunda hiçbir şey raporlamaz. Önceki kütüphaneden bir sayfayı taşıyorsanız, her şeyden önce Geri Çağrılar ve Yol kontrol listesi bölümlerini okuyun.
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/scroll'ını 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ış gruplar halinde ekle. |
bool | ShowHyperlinks | false | Sunucu yapılandırması bunları çı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'dir; 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" önce) | Widget'in kendi görüntülerini yüklediği klasör: ResourcesPath altındaki images klasörü, başında / olmadan. |
string | FitType | "width" | "width", "height" veya otomatik uyum yoksa 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; 409 da eski sunucularla uyumluluk için kabul edilir. Normal senkron görüntüleyici için gerekli değildir. |
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 olur, başka bir host)
ResPath = "doconut-res/images",
ShowHyperlinks = true
};C#'den JavaScript'e eşleme
| 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ılanlara 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şlik sınırları. |
showThumbs | true | Başlangıçta 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) değerinden farklıdır. |
showToolTip / toolTipPageText | true / "Page " | Sayfa konumlu araç ipucu. |
format / doc / AccessToken | "" / 0 / "" | İçsel başlatma değerleri; genellikle View(token) ile doldurulur. |
debugMode | false | Ek istemci tanılamaları. |
FitType | "" | Sağlanmadıkça otomatik uyum yok. |
BasePath | "DocImage.axd" | Uyumluluk için tutulan tarihsel istemci varsayılanı. Mevcut ASP.NET Core barındırıcıları, bunu açıkça eşlenmiş middleware dalına ayarlamalıdır. |
ResPath | "" | Gömülü resim yolu olarak 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) değerinden farklıdır. |
showHyperlinks | true | Katmanlar ü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üklenmeyi tamamladı. |
onThumbnailClicked | pageNum | Kullanıcı bir küçük resmi seçti. |
onPageClicked | pageNum | Kullanıcı bir sayfa seçti. |
onDoubleClick | none | Görüntüleyici bir ç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 bir 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 kapandı. |
Geri çağrıları hızlı tutun; telemetrileri asenkron gönderin ve sayfa renderını engellemeyin.
Bunların her biri init nesnesindeki bir seçenektir. Önceki görüntüleyici, adını kapsayıcı kimliğinden türeten global fonksiyonları arıyordu — <div id="div_ctlDoc"> içeren bir sayfa sadece function ctlDoc_OnViewerReady() tanımlamalıydı. Bu arama artık yok. Fonksiyonu açıkça geçirin:
objctlDoc = $('#div_ctlDoc').docViewer({
// ... mevcut seçenekleriniz ...
onViewerBusy: ctlDoc_OnViewerBusy, // isimle bulunmuştu
onViewerReady: ctlDoc_OnViewerReady, // isimle bulunmuştu
onCopy: ctlDoc_Copy, // ctlDoc_Copy(text) idi
onAutoLoadStatus: ctlDoc_AutoLoadStatus // ctlDoc_AutoLoadStatus(page) idi
});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ışmıyor: yaygın belirti, onViewerReady tarafından gizlenen işleyici olduğu için asla durmayan bir meşgul döndürme göstergesidir. Ardındaki belge doğru şekilde renderlanıyor.
Bağlantı tıklama geri çağrısı yoktur — hiperlink işleme dahili olarak bulunur 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 içerir. Yalnızca referans UI tarafından kullanılan ve burada ya da özellik kılavuzlarında belgelenen yöntemleri kararlı bütünleşme noktaları olarak değerlendirin.
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ır olma yanıtını ve eski 409 Conflict sinyalini yeniden dener. Etkinleştirildiğinde, widget aşağıdaki JavaScript varsayılanlarıyla periyodik istek yapar:
| 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.
Sayfalar FirstPagePriority ile paylaşımlı depolamadan sunulduğunda, daha sonraki sayfalar 202 Accepted yanıtını yazılana kadar geçerli bir şekilde verir; bu durumda etkinleştirin. Yeniden denemeyen bir istemci, hâlâ işlenen sayfalar için kırık döşemeler gösterir — bkz. Dağıtık Dağıtımlar.
Yol kontrol listesi
DoconutOptions.MiddlewarePathgerçekten eşlediğiniz dalı tanımlamalıdır.BasePatho dalı hedeflemeli, başında/olmadan yazılmalıdır ('doconut','/doconut'değil: görüntüleyici eğik çizgiyi ekler ve//doconut/...başka bir ana bilgisayara istek olur). Referans uygulama,MapWhendalında tarihselDocImage.axdistek biçimini korur ve bu nedenleBasePath: '/'ayarlar.DoconutOptions.ResourcesPathgömülü kaynak yoludur.ResPathnormaldeimagesalt klasörünü hedefler, başında/olmadan — varsayılan önekle'doconut-res/images'. Boş birResPath, kaynakların uygulama kökünden geldiği önceki kitaplıkta 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?