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
ResPathmusí 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#
| Typ | Vlastnost | Výchozí | Popis |
|---|---|---|---|
bool | ShowThumbs | true | Zobrazit panel miniatur. |
bool | AutoLoad | false | Automaticky načíst po inicializaci. Normální tok tokenu volá View(token) explicitně. |
bool | AutoFocus | true | Přesunout fokus/posun prohlížeče na prohlížeč během inicializace. |
bool | AutoPageFocus | true | Udržet aktuální miniaturu viditelnou při změně stránek. |
int | PageZoom | 100 | Počáteční procento přiblížení. |
int | ZoomStep | 10 | Procento přidané nebo odebrané příkazy přiblížení. |
int | MaxZoom | 300 | Maximální procento přiblížení. |
bool | ShowToolTip | true | Zobrazit tooltip s pozicí stránky při rolování. |
string | ToolTipPageText | "Page " | Předpona používaná v tooltipu stránky. |
bool | CacheEnabled | false | Udržovat pohyblivé okno obrázků stránek v paměti prohlížeče. Nepoužívá localStorage. |
bool | LargeDoc | false | Přidávat prvky stránek ve časově řízených dávkách pro velké dokumenty. |
bool | ShowHyperlinks | false | Vykreslovat překryvy hyperodkazů, když je serverová konfigurace extrahovala. |
bool | FixedZoom | true | Použít pevné procento přiblížení místo responzivního přepočtu. |
int | FixedZoomPercent | 100 | Pevné přiblížení pro desktop. |
int | FixedZoomPercentMobile | 75 | Pevné přiblížení pro mobil. |
string | BasePath | "/" | 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). |
string | ResPath | "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 /. |
string | FitType | "width" | "width", "height" nebo prázdné pro žádné automatické přizpůsobení. "page" není aktuálním widgetem podporováno. |
bool | RetryOn409 | false | Povolit 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č. |
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 |
|---|---|
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 |
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žnost | Výchozí | Poznámky |
|---|---|---|
leftMinWidth / leftMaxWidth | 220 / 800 | Meze šířky panelu miniatur. |
showThumbs | true | Počáteční viditelnost miniatur. |
autoFocus / autoPageFocus | true / false | autoPageFocus se liší od výchozí hodnoty v C#. |
thumbWidth / thumbHeight / thumbPadding | 150 / 200 / 10 | Geometrie miniatur v pixelech. |
pageZoom / zoomStep / maxZoom | 100 / 10 / 200 | JavaScript maxZoom se liší od C# (300). |
showToolTip / toolTipPageText | true / "Page " | Tooltip s pozicí stránky. |
format / doc / AccessToken | "" / 0 / "" | Interní inicializační hodnoty; obvykle naplněny pomocí View(token). |
debugMode | false | Další 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 / cacheDelay | false / 3 / 3 | Okno a zpoždění přednačítání stránek v paměti. |
autoLoad | false | Doporučuje se explicitní tok tokenu. |
largeDoc | true | Liší se od výchozí hodnoty v C#. |
fixedZoom | false | Liší se od výchozí hodnoty v C#. |
fixedZoomPercent / fixedZoomPercentMobile | 100 / 50 | Mobilní hodnota se liší od C# (75). |
showHyperlinks | true | Vyž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:
<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í
| Callback | Argumenty | Účel |
|---|---|---|
onPageLoading | pageNum | Počíná požadavek na stránku. |
onPageLoaded | pageNum | Obrázek stránky byl načten. |
onThumbnailClicked | pageNum | Uživatel vybral miniaturu. |
onPageClicked | pageNum | Uživatel vybral stránku. |
onDoubleClick | none | Prohlížeč obdržel dvojklik. |
onViewerBusy | none | Prohlížeč vstoupil do stavu zaneprázdněnosti. |
onViewerReady | none | Inicializace dokončena. |
onViewerError | none | Prohlížeč vstoupil do chybového stavu. |
onError | message | Operace vrátila chybovou zprávu. |
onCopy | data | Data pro kopírování textu jsou k dispozici. |
onAutoLoadStatus | pageNum | Automatické načítání postupovalo na stránku. |
onThumbsShown | none | Panel miniatur se stal viditelným. |
onAnnLoaded | none | Data anotací načtena. |
onAnnSaved | none | Data anotací uložena. |
onAnnSaveError | none | Uložení anotací selhalo. |
onAnnClosed | none | Už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ě:
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
| Skupina | Společné metody |
|---|---|
| Životní cyklus | View(token, accessToken?), Close(server?), Token(), Init(), IsLoaded() |
| Navigace | GotoPage(page), ShowPage(page, focus?), Next(next), CurrentPage(), TotalPages() |
| Zoom a přizpůsobení | Zoom(zoomIn), CurrentZoom(), FitType(value), Refit() |
| Orientace | Rotate(page, angle), Flip(page, flipType) |
| Náhledy | HideThumbs(hide), ThumbSize(size), ReloadThumbs(width), ScrollToThumb(thumb) |
| Vyhledávání | CanSearch(), Search(...), SearchMatchCount(), SearchSummary(...), GotoSearchMatch(...) |
| Anotace | SaveAnnotations(), 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žnost | Výchozí |
|---|---|
retryInitialDelayMs | 250 |
retryBackoffFactor | 1.6 |
retryMaxDelayMs | 2500 |
retryMaxAttempts | 60 |
retryMaxTotalMs | 120000 |
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.MiddlewarePathmusí popisovat větev, kterou skutečně mapujete.BasePathmusí 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žadavkuDocImage.axdna větviMapWhena proto nastavujeBasePath: '/'.DoconutOptions.ResourcesPathje cesta k vloženým prostředkům.ResPathobvykle cílí na svůj podsložkuimages, bez úvodního/—'doconut-res/images's výchozím prefixem. PrázdnýResPathbyl 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.ExtractHyperlinksmusí být povoleno v konfiguraci formátu serveru, nežshowHyperlinksmůže něco zobrazit.
Byla tato stránka užitečná?