ViewerConfig
Klientvisare widget‑alternativ
ViewerConfig (namespace Doconut) beskriver webbläsarens visares 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ämtar inte längre globala funktionsnamn från behållar‑id — och
ResPathmåste peka på resursprefixet snarare än applikationsroten. Båda låter servern fungera perfekt och rapporterar inget i webbläsarkonsolen. Om du bär med dig en sida från det föregående biblioteket, läs Callbacks och Path checklist innan något annat.
C#‑egenskaper
| Typ | Egenskap | Standard | Beskrivning |
|---|---|---|---|
bool | ShowThumbs | true | Visa miniatyrpanelen. |
bool | AutoLoad | false | Ladda 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 zoom‑procent. |
int | ZoomStep | 10 | Procent som läggs till eller tas bort av zoom‑kommandon. |
int | MaxZoom | 300 | Maximal zoom‑procent. |
bool | ShowToolTip | true | Visa verktygstips för sidposition medan du rullar. |
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änks‑överlappningar när serverkonfigurationen extraherade dem. |
bool | FixedZoom | true | Använd en fast zoom‑procent istället för responsiv omräkning. |
int | FixedZoomPercent | 100 | Fast skrivbords‑zoom. |
int | FixedZoomPercentMobile | 75 | Fast mobil‑zoom. |
string | BasePath | "/" | Var visaren skickar sidförfrågningar. "/" är DocImage.axd vid webbplatsens rot; annars den gren där värden mappar UseDoconut(), utan ett inledande / ("doconut" betyder /doconut/DocImage.axd). |
string | ResPath | "doconut-res/images" (26.9.0; "doconut-res" before) | Mapp som widgeten laddar sina egna bilder från: images‑mappen under ResourcesPath, utan ett inledande /. |
string | FitType | "width" | "width", "height", eller tom 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ök‑/anpassningsnycklar ä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-implementeringen.
| Alternativ | Standard | Noteringar |
|---|---|---|
leftMinWidth / leftMaxWidth | 220 / 800 | Gränser för miniatyrpanelens bredd. |
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 de i av View(token). |
debugMode | false | Ytterligare klientdiagnostik. |
FitType | "" | Ingen automatisk anpassning om den inte anges. |
BasePath | "DocImage.axd" | Historiskt klientstandardvärde behållet för kompatibilitet. Aktuella ASP.NET Core-värdar måste sätta det explicit till den mappade middleware-grenen. |
ResPath | "" | Sätt explicit till den inbäddade bildsökvägen. |
cacheEnabled / cacheCount / cacheDelay | false / 3 / 3 | Fönster och fördröjning för sidförladdning i minnet. |
autoLoad | false | Explicitt tokenflöde 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. |
Ställ in alla beteendemässigt viktiga värden istället för att förlita dig 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 | Initiering slutförd. |
onViewerError | none | Visaren gick in i feltilstånd. |
onError | message | En operation returnerade ett felmeddelande. |
onCopy | data | Textkopieringsdata är tillgänglig. |
onAutoLoadStatus | pageNum | Automatisk laddning gick vidare till en sida. |
onThumbsShown | none | Miniatyrpanelen blev synlig. |
onAnnLoaded | none | Annotationsdata laddades. |
onAnnSaved | none | Annotationsdata sparades. |
onAnnSaveError | none | Sparning av annotation misslyckades. |
onAnnClosed | none | Annotations‑UI stängdes. |
Håll återuppringningarna snabba; skicka telemetri asynkront och blockera inte sidrenderingen.
Var och en av dessa är ett alternativ på init‑objektet. Den tidigare visaren letade upp globala funktioner vars namn den härledde från behållar‑id‑t – en sida med <div id="div_ctlDoc"> behövde bara deklarera function ctlDoc_OnViewerReady(). Den uppslagningen är borta. Skicka funktionen explicit:
objctlDoc = $('#div_ctlDoc').docViewer({
// ... dina befintliga alternativ ...
onViewerBusy: ctlDoc_OnViewerBusy, // hittades med namn
onViewerReady: ctlDoc_OnViewerReady, // hittades med 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 – hyperlänkhantering ä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) |
| Miniatyrer | HideThumbs(hide), ThumbSize(size), ReloadThumbs(width), ScrollToThumb(thumb) |
| Sök | CanSearch(), Search(...), SearchMatchCount(), SearchSummary(...), GotoSearchMatch(...) |
| Annotering | SaveAnnotations(), GetAnnotations(), PushAnnotations(...), CloseAnnotations(...), ShowAnnotations(...) |
| Kopiera | Copy(...), CopyPage(pageNumber), CopyMode(enabled) |
JavaScript-filen innehåller också interna hjälpfunktioner. Behandla endast metoder som används av referens‑UI 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 för asynkron sidproduktion och återförsöker den aktuella 202 Accepted-beredskapsresponsen samt den äldre 409 Conflict-signalen. 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 den inaktiverad för den normala enkelnodsvyn. Att aktivera den kan inte göra en ej stödd synkron rendering asynkron.
Aktivera den när sidor levereras från delat lagringsutrymme med FirstPagePriority, där senare sidor legitimit svarar med 202 Accepted tills de skrivs. En klient som inte återförsöker visar trasiga rutor för sidor som fortfarande renderas — se Distributed Deployments.
Sökvägskontrollista
DoconutOptions.MiddlewarePathmåste beskriva den gren du faktiskt mappar.BasePathmåste rikta in sig på den grenen, skriven utan ett inledande/('doconut', inte'/doconut': vyn 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.ResPathriktar normalt mot sinimages-undermapp, utan ett inledande/—'doconut-res/images'med standardprefixet. En tomResPathvar korrekt i det tidigare biblioteket, där resurser kom från applikationsroten; den är inte korrekt här, och den misslyckas utan ett fel.ExtractHyperlinksmåste vara aktiverad i serverns formatkonfiguration innanshowHyperlinkskan visa något.
Var den här sidan hjälpsam?