ViewerConfig

Možnosti widgetu prohlížeče klienta

ViewerConfig (namespace Doconut) popisuje vzhled a chování prohlížeče ve webovém prohlížeči. Nemá vliv na kvalitu vykreslování dokumentu; pro to použijte konfigurační formát. Třída C# a dlouholetý JavaScript widget mají odlišné výchozí hodnoty, proto mapujte hodnoty explicitně.

Dvě změny na straně klienta v tomto vydání selhávají tiše. Funkce obsluhy jsou předávány jako možnosti — widget již neodvozuje globální názvy funkcí z ID kontejneru — a ResPath musí ukazovat na předponu zdrojů místo kořene aplikace. Obě ponechávají server v perfektním stavu a nic nehlásí v konzoli prohlížeče. Pokud přenášíte stránku z předchozí knihovny, přečtěte si Zpětné volání a Kontrolní seznam cest před čímkoli jiným.

Vlastnosti C#

TypVlastnostVýchozíPopis
boolShowThumbstrueZobrazit panel miniatur.
boolAutoLoadfalseAutomaticky načíst po inicializaci. Normální tok tokenu volá View(token) explicitně.
boolAutoFocustruePřesunout fokus/posun prohlížeče na prohlížeč během inicializace.
boolAutoPageFocustrueUdržet aktuální miniaturu viditelnou při změně stránek.
intPageZoom100Počáteční procento přiblížení.
intZoomStep10Procento přidané nebo odebrané příkazy přiblížení.
intMaxZoom300Maximální procento přiblížení.
boolShowToolTiptrueZobrazit tooltip s pozicí stránky při rolování.
stringToolTipPageText"Page "Předpona používaná v tooltipu stránky.
boolCacheEnabledfalseUdržovat pohyblivé okno obrázků stránek v paměti prohlížeče. Nepoužívá localStorage.
boolLargeDocfalsePřidávat prvky stránek ve časově řízených dávkách pro velké dokumenty.
boolShowHyperlinksfalseVykreslovat překryvy hyperodkazů, když je serverová konfigurace extrahovala.
boolFixedZoomtruePoužít pevné procento přiblížení místo responzivního přepočtu.
intFixedZoomPercent100Pevné přiblížení pro desktop.
intFixedZoomPercentMobile75Pevné přiblížení pro mobil.
stringBasePath"/"Kam prohlížeč odesílá požadavky na stránky. "/" je DocImage.axd v kořeni webu; jinak větev, kde host mapuje UseDoconut(), bez úvodního / ("doconut" znamená /doconut/DocImage.axd).
stringResPath"doconut-res/images" (26.9.0; "doconut-res" before)Složka, ze které widget načítá své vlastní obrázky: složka images pod ResourcesPath, bez úvodního /.
stringFitType"width""width", "height" nebo prázdné pro žádné automatické přizpůsobení. "page" není aktuálním widgetem podporováno.
boolRetryOn409falsePovolit dotazování, když asynchronní/rozptýlená produkce stránek odpoví 202 Accepted; 409 je také akceptováno pro kompatibilitu se staršími servery. Není potřeba pro běžný synchronní prohlížeč.
csharp
var config = new ViewerConfig
{
    ShowThumbs = true,
    AutoLoad = false,
    PageZoom = 100,
    MaxZoom = 300,
    FitType = "width",
    BasePath = "doconut",           // bez úvodního '/': prohlížeč jej přidá ("/doconut" by se stal //doconut, jiný host)
    ResPath = "doconut-res/images",
    ShowHyperlinks = true
};

Mapování C# na JavaScript

Nepředávejte přímo serializovaný ViewerConfig do docViewer(...). Většina klíčů widgetu je v camelCase, zatímco tři zavedené klíče cesty/přizpůsobení jsou v PascalCase.

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

Výchozí hodnoty JavaScriptu

Widget má starší výchozí hodnoty, které se liší od třídy C#. Následující hodnoty pocházejí z aktuální implementace docViewer.js.

MožnostVýchozíPoznámky
leftMinWidth / leftMaxWidth220 / 800Meze šířky panelu miniatur.
showThumbstruePočáteční viditelnost miniatur.
autoFocus / autoPageFocustrue / falseautoPageFocus se liší od výchozí hodnoty v C#.
thumbWidth / thumbHeight / thumbPadding150 / 200 / 10Geometrie miniatur v pixelech.
pageZoom / zoomStep / maxZoom100 / 10 / 200JavaScript maxZoom se liší od C# (300).
showToolTip / toolTipPageTexttrue / "Page "Tooltip s pozicí stránky.
format / doc / AccessToken"" / 0 / ""Interní inicializační hodnoty; obvykle naplněny pomocí View(token).
debugModefalseDalší diagnostika na straně klienta.
FitType""Žádné automatické přizpůsobení, pokud není zadáno.
BasePath"DocImage.axd"Historická výchozí hodnota klienta zachována pro kompatibilitu. Aktuální hostitelé ASP.NET Core ji musí nastavit explicitně na mapovanou větev middleware.
ResPath""Nastavte explicitně na cestu k vloženým obrázkům.
cacheEnabled / cacheCount / cacheDelayfalse / 3 / 3Okno a zpoždění přednačítání stránek v paměti.
autoLoadfalseDoporučuje se explicitní tok tokenu.
largeDoctrueLiší se od výchozí hodnoty v C#.
fixedZoomfalseLiší se od výchozí hodnoty v C#.
fixedZoomPercent / fixedZoomPercentMobile100 / 50Mobilní hodnota se liší od C# (75).
showHyperlinkstrueVyžaduje serverové extrahování pro vytvoření překryvů.

Nastavte všechny behaviorálně důležité hodnoty místo spoléhaní se na některou sadu výchozích hodnot:

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>

Zpětné volání

CallbackArgumentyÚčel
onPageLoadingpageNumPočíná požadavek na stránku.
onPageLoadedpageNumObrázek stránky byl načten.
onThumbnailClickedpageNumUživatel vybral miniaturu.
onPageClickedpageNumUživatel vybral stránku.
onDoubleClicknoneProhlížeč obdržel dvojklik.
onViewerBusynoneProhlížeč vstoupil do stavu zaneprázdněnosti.
onViewerReadynoneInicializace dokončena.
onViewerErrornoneProhlížeč vstoupil do chybového stavu.
onErrormessageOperace vrátila chybovou zprávu.
onCopydataData pro kopírování textu jsou k dispozici.
onAutoLoadStatuspageNumAutomatické načítání postupovalo na stránku.
onThumbsShownnonePanel miniatur se stal viditelným.
onAnnLoadednoneData anotací načtena.
onAnnSavednoneData anotací uložena.
onAnnSaveErrornoneUložení anotací selhalo.
onAnnClosednoneUživatelské rozhraní anotací uzavřeno.

Udržujte zpětná volání rychlá; odesílejte telemetrii asynchronně a neblokujte vykreslování stránky.

Každý z nich je možností v init objektu. Předchozí prohlížeč vyhledával globální funkce, jejichž názvy odvozoval od ID kontejneru — stránka s <div id="div_ctlDoc"> musela pouze deklarovat function ctlDoc_OnViewerReady(). Toto vyhledávání bylo odstraněno. Předávejte funkci explicitně:

javascript
objctlDoc = $('#div_ctlDoc').docViewer({
    // ... vaše stávající možnosti ...
    onViewerBusy:     ctlDoc_OnViewerBusy,      // bylo nalezeno podle názvu
    onViewerReady:    ctlDoc_OnViewerReady,     // bylo nalezeno podle názvu
    onCopy:           ctlDoc_Copy,              // bylo ctlDoc_Copy(text)
    onAutoLoadStatus: ctlDoc_AutoLoadStatus     // bylo ctlDoc_AutoLoadStatus(page)
});

Staré vyhledávání bylo zabalené do prázdného catch, takže se nic nehlásilo. V tomto vydání funkce jednoduše neběží: typickým příznakem je neustále se točící spinner, který se nikdy nezastaví, protože obslužná rutina, která jej skryla, byla onViewerReady. Dokument za ním se vykresluje správně.

Neexistuje zpětné volání pro kliknutí na odkaz — zpracování hyperodkazů je vestavěné a řízené pomocí showHyperlinks.

Veřejné skupiny metod

SkupinaSpolečné metody
Životní cyklusView(token, accessToken?), Close(server?), Token(), Init(), IsLoaded()
NavigaceGotoPage(page), ShowPage(page, focus?), Next(next), CurrentPage(), TotalPages()
Zoom a přizpůsobeníZoom(zoomIn), CurrentZoom(), FitType(value), Refit()
OrientaceRotate(page, angle), Flip(page, flipType)
NáhledyHideThumbs(hide), ThumbSize(size), ReloadThumbs(width), ScrollToThumb(thumb)
VyhledáváníCanSearch(), Search(...), SearchMatchCount(), SearchSummary(...), GotoSearchMatch(...)
AnotaceSaveAnnotations(), GetAnnotations(), PushAnnotations(...), CloseAnnotations(...), ShowAnnotations(...)
KopírováníCopy(...), CopyPage(pageNumber), CopyMode(enabled)

Soubor JavaScript obsahuje také interní pomocné funkce. Považujte za stabilní integrační body pouze metody používané referenčním UI a dokumentované zde nebo v průvodcích funkcemi.

Opakování, dokud je distribuovaná stránka stále vykreslována

retryOn409 si zachovává svůj historický název. Slouží k asynchronní tvorbě stránek a opakuje aktuální odpověď připravenosti 202 Accepted i starší signál 409 Conflict. Když je povoleno, widget dotazuje s těmito výchozími hodnotami JavaScriptu:

MožnostVýchozí
retryInitialDelayMs250
retryBackoffFactor1.6
retryMaxDelayMs2500
retryMaxAttempts60
retryMaxTotalMs120000

Nechte jej vypnutý pro běžného jednojádrového prohlížeče. Povolení nemůže učinit nepodporované synchronní vykreslování asynchronním.

Povolte jej, když jsou stránky poskytovány ze sdíleného úložiště s FirstPagePriority, kde pozdější stránky legitimně odpovídají 202 Accepted, dokud nejsou zapsány. Klient, který neprovádí opakování, zobrazuje poškozené dlaždice pro stránky, které se stále vykreslují — viz Distribuovaná nasazení.

Kontrolní seznam cesty

  • DoconutOptions.MiddlewarePath musí popisovat větev, kterou skutečně mapujete.
  • BasePath musí cílit na tuto větev, zapisováno bez úvodního / ('doconut', ne '/doconut': prohlížeč přidá lomítko a //doconut/... je požadavek na jiný host). Referenční aplikace zachovává historický tvar požadavku DocImage.axd na větvi MapWhen a proto nastavuje BasePath: '/'.
  • DoconutOptions.ResourcesPath je cesta k vloženým prostředkům.
  • ResPath obvykle cílí na svůj podsložku images, bez úvodního / — 'doconut-res/images' s výchozím prefixem. Prázdný ResPath byl správný v předchozí knihovně, kde prostředky pocházely z kořene aplikace; zde to není správné a selže bez chyby.
  • ExtractHyperlinks musí být povoleno v konfiguraci formátu serveru, než showHyperlinks může něco zobrazit.

Byla tato stránka užitečná?