ViewerConfig
Klientvisarens widgetalternativ
ViewerConfig (namnrymd Doconut) beskriver webbläsarvisarens utseende och beteende. Det påverkar inte dokumentrenderingskvaliteten; använd en formatkonfiguration för det. C#‑klassen och den långvariga JavaScript‑widgeten har olika standardvärden, så mappa värden explicit.
Två klient‑sidiga förändringar i denna version misslyckas tyst. Handlare‑funktioner skickas som alternativ — widgeten härleder inte längre globala funktionsnamn från behållar‑id — och
ResPathmåste peka på resursprefixet snarare än applikationsroten. Båda lämnar servern att fungera perfekt och rapporterar inget i webbläsarkonsolen. Om du bär med dig en sida från det tidigare biblioteket, läs Återuppringningar och Sökvägskontrollista innan något annat.
C#‑egenskaper
| Typ | Egenskap | Standard | Beskrivning |
|---|---|---|---|
bool | ShowThumbs | true | Visa miniatyrpanelen. |
bool | AutoLoad | false | Laddar automatiskt efter initiering. Det normala tokenflödet anropar View(token) explicit. |
bool | AutoFocus | true | Flytta webbläsarens fokus/rullning till visaren under initiering. |
bool | AutoPageFocus | true | Behåll den aktuella miniatyren synlig medan sidorna ändras. |
int | PageZoom | 100 | Initial zoomprocent. |
int | ZoomStep | 10 | Procent som läggs till eller tas bort av zoomkommandon. |
int | MaxZoom | 300 | Maximal zoomprocent. |
bool | ShowToolTip | true | Visa verktygstips för sidposition vid rullning. |
string | ToolTipPageText | "Page " | Prefix som används i sidverktygstipset. |
bool | CacheEnabled | false | Behåll ett rörligt fönster av sidbilder i webbläsarens minne. Det använder inte localStorage. |
bool | LargeDoc | false | Lägg till sidelement i tidsbestämda satser för stora dokument. |
bool | ShowHyperlinks | false | Rendera hyperlänk‑övertäckningar när serverkonfigurationen extraherade dem. |
bool | FixedZoom | true | Använd en fast zoomprocent istället för responsiv omräkning. |
int | FixedZoomPercent | 100 | Fast skrivbordzoom. |
int | FixedZoomPercentMobile | 75 | Fast mobilzoom. |
string | BasePath | "/" | Var visaren skickar sidförfrågningar. "/" är DocImage.axd vid webbplatsens rot; annars är det den gren där värden mappar UseDoconut(), utan inledande / ("doconut" betyder /doconut/DocImage.axd). |
string | ResPath | "doconut-res/images" (26.9.0; "doconut-res" tidigare) | Mapp som widgeten laddar sina egna bilder från: images‑mappen under ResourcesPath, utan inledande /. |
string | FitType | "width" | "width", "height" eller tomt för ingen automatisk anpassning. "page" accepteras inte av den aktuella widgeten. |
bool | RetryOn409 | false | Aktivera polling när asynkron/distribuerad sidproduktion svarar 202 Accepted; 409 accepteras också för kompatibilitet med äldre servrar. Behövs inte av den normala synkrona visaren. |
var config = new ViewerConfig
{
ShowThumbs = true,
AutoLoad = false,
PageZoom = 100,
MaxZoom = 300,
FitType = "width",
BasePath = "doconut", // ingen inledande '/': visaren lägger till den ("/doconut" skulle bli //doconut, en annan värd)
ResPath = "doconut-res/images",
ShowHyperlinks = true
};C# till JavaScript‑mappning
Skicka inte en direkt serialiserad ViewerConfig till docViewer(...). De flesta widget‑nycklar är camelCase, medan tre etablerade sökvägs‑/passnings‑nycklar är 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 |
JavaScript-standardvärden
Widgeten har äldre standardvärden som skiljer sig från C#-klassen. Följande värden kommer från den aktuella docViewer.js-implementationen.
| Alternativ | Standard | Anteckningar |
|---|---|---|
leftMinWidth / leftMaxWidth | 220 / 800 | Gränser för bredd på miniatyrpanelen. |
showThumbs | true | Initial miniatyrsynlighet. |
autoFocus / autoPageFocus | true / false | autoPageFocus skiljer sig från C#-standardvärdet. |
thumbWidth / thumbHeight / thumbPadding | 150 / 200 / 10 | Miniatyrgeometri i pixlar. |
pageZoom / zoomStep / maxZoom | 100 / 10 / 200 | JavaScript maxZoom skiljer sig från C# (300). |
showToolTip / toolTipPageText | true / "Page " | Verktygstips för sidposition. |
format / doc / AccessToken | "" / 0 / "" | Interna initieringsvärden; normalt fylls i av View(token). |
debugMode | false | Ytterligare klientdiagnostik. |
FitType | "" | Ingen automatisk anpassning om den inte anges. |
BasePath | "DocImage.axd" | Historiskt klientstandardvärde bevarat för kompatibilitet. Aktuella ASP.NET Core-värdar måste ange det explicit till den mappade middleware-grenen. |
ResPath | "" | Ange explicit till den inbäddade bildsökvägen. |
cacheEnabled / cacheCount / cacheDelay | false / 3 / 3 | Fönster och fördröjning för förinläsning av sidor i minnet. |
autoLoad | false | Explicita tokenflöden rekommenderas. |
largeDoc | true | Skiljer sig från C#-standardvärdet. |
fixedZoom | false | Skiljer sig från C#-standardvärdet. |
fixedZoomPercent / fixedZoomPercentMobile | 100 / 50 | Mobilt värde skiljer sig från C# (75). |
showHyperlinks | true | Kräver server‑sidextraktion för att skapa överlägg. |
Ange alla beteendemässigt viktiga värden istället för att förlita sig på någon av standarduppsättningarna:
<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>Återuppringningar
| Återuppringning | Argument | Syfte |
|---|---|---|
onPageLoading | pageNum | En sidbegäran påbörjas. |
onPageLoaded | pageNum | En sidbild har laddats färdigt. |
onThumbnailClicked | pageNum | Användaren valde en miniatyr. |
onPageClicked | pageNum | Användaren valde en sida. |
onDoubleClick | none | Visaren mottog ett dubbelklick. |
onViewerBusy | none | Visaren gick in i ett upptaget tillstånd. |
onViewerReady | none | Initieringen slutförd. |
onViewerError | none | Visaren gick in i feltilstånd. |
onError | message | En operation returnerade ett felmeddelande. |
onCopy | data | Data för textkopiering är tillgänglig. |
onAutoLoadStatus | pageNum | Autoladdning fortskred till en sida. |
onThumbsShown | none | Miniatyrpanelen blev synlig. |
onAnnLoaded | none | Annotationsdata laddad. |
onAnnSaved | none | Annotationsdata sparad. |
onAnnSaveError | none | Sparning av annotation misslyckades. |
onAnnClosed | none | Annotationsgränssnittet stängt. |
Håll återuppringningarna snabba; skicka telemetri asynkront och blockera inte sidrenderingen.
Var och en av dessa är ett alternativ i init‑objektet. Den tidigare visaren letade upp globala funktioner vars namn den hämtade från container‑id‑t – en sida med <div id="div_ctlDoc"> behövde bara deklarera function ctlDoc_OnViewerReady(). Den sökningen är borta. Skicka funktionen explicit:
objctlDoc = $('#div_ctlDoc').docViewer({
// ... dina befintliga alternativ ...
onViewerBusy: ctlDoc_OnViewerBusy, // hittades via namn
onViewerReady: ctlDoc_OnViewerReady, // hittades via namn
onCopy: ctlDoc_Copy, // var ctlDoc_Copy(text)
onAutoLoadStatus: ctlDoc_AutoLoadStatus // var ctlDoc_AutoLoadStatus(page)
});Den gamla uppslagningen var inbäddad i en tom catch, så inget någonsin rapporterades. I den här releasen körs funktionerna helt enkelt aldrig: det vanliga symptomet är en upptagen spinner som aldrig slutar, eftersom hanteraren som gömde den var onViewerReady. Dokumentet bakom den renderas korrekt.
Det finns ingen återuppringning för länkklick – hantering av hyperlänkar är inbyggd och styrs av showHyperlinks.
Publika metodgrupper
| Grupp | Vanliga metoder |
|---|---|
| Livscykel | View(token, accessToken?), Close(server?), Token(), Init(), IsLoaded() |
| Navigering | GotoPage(page), ShowPage(page, focus?), Next(next), CurrentPage(), TotalPages() |
| Zoom och anpassning | Zoom(zoomIn), CurrentZoom(), FitType(value), Refit() |
| Orientering | Rotate(page, angle), Flip(page, flipType) |
| Miniatyrbilder | HideThumbs(hide), ThumbSize(size), ReloadThumbs(width), ScrollToThumb(thumb) |
| Sökning | CanSearch(), Search(...), SearchMatchCount(), SearchSummary(...), GotoSearchMatch(...) |
| Anmärkning | SaveAnnotations(), GetAnnotations(), PushAnnotations(...), CloseAnnotations(...), ShowAnnotations(...) |
| Kopiering | Copy(...), CopyPage(pageNumber), CopyMode(enabled) |
JavaScript‑filen innehåller även interna hjälpfunktioner. Behandla endast de metoder som används av referens‑UI‑t och som dokumenteras här eller i funktionsguiderna som stabila integrationspunkter.
Försök igen medan en distribuerad sida fortfarande renderas
retryOn409 behåller sitt historiska namn. Det är avsett för asynkron sidproduktion och försöker igen på det aktuella 202 Accepted‑beredskaps‑svaret samt det äldre 409 Conflict‑signalet. När det är aktiverat pollar widgeten med dessa JavaScript‑standardvärden:
| Alternativ | Standard |
|---|---|
retryInitialDelayMs | 250 |
retryBackoffFactor | 1.6 |
retryMaxDelayMs | 2500 |
retryMaxAttempts | 60 |
retryMaxTotalMs | 120000 |
Lämna det inaktiverat för den normala en‑nod‑visaren. Att aktivera det kan inte göra en osupporterad synkron rendering asynkron.
Aktivera det när sidor levereras från delat lagringsutrymme med FirstPagePriority, där senare sidor legitimerat svarar 202 Accepted tills de är skrivna. En klient som inte försöker igen visar trasiga kakel för sidor som fortfarande renderas — se Distribuerade distributioner.
Kontrollista för sökväg
DoconutOptions.MiddlewarePathmåste beskriva den gren du faktiskt mappar.BasePathmåste rikta in sig på den grenen, skrivet utan inledande/('doconut', inte'/doconut': visningsprogrammet lägger till snedstrecket, och//doconut/...är en begäran till en annan värd). Referensapplikationen behåller den historiskaDocImage.axd‑begäransformen på enMapWhen‑gren och sätter därförBasePath: '/'.DoconutOptions.ResourcesPathär den inbäddade resursrutten.ResPathpekar normalt på dessimages‑undermapp, utan inledande/—'doconut-res/images'med standardprefixet. En tomResPathvar korrekt i det tidigare biblioteket, där resurser kom från applikationsroten; det är inte korrekt här, och det misslyckas utan ett felmeddelande.ExtractHyperlinksmåste vara aktiverat i serverns formatkonfiguration innanshowHyperlinkskan visa någonting.
Var den här sidan hjälpsam?