ViewerConfig

Client-Viewer-Widget-Optionen

ViewerConfig (namespace Doconut) beschreibt das Aussehen und Verhalten des Browser‑Viewers. Es beeinflusst nicht die Qualität der Dokumentendarstellung; dafür verwenden Sie eine Format‑Konfiguration. Die C#‑Klasse und das seit langem bestehende JavaScript‑Widget haben unterschiedliche Vorgaben, daher Werte explizit zuordnen.

Zwei clientseitige Änderungen in diesem Release schlagen stillschweigend fehl. Handler‑Funktionen werden als Optionen übergeben — das Widget leitet keine globalen Funktionsnamen mehr aus der Container‑ID ab — und ResPath muss auf das Ressourcen‑Präfix statt auf die Anwendungswurzel zeigen. Beide lassen den Server einwandfrei arbeiten und melden nichts in der Browser‑Konsole. Wenn Sie eine Seite aus der vorherigen Bibliothek übernehmen, lesen Sie zuerst Rückrufe und Pfad‑Checkliste.

C# properties

TypEigenschaftStandardBeschreibung
boolShowThumbstrueZeigt das Miniatur‑Panel an.
boolAutoLoadfalseLädt automatisch nach der Initialisierung. Der normale Token‑Ablauf ruft View(token) explizit auf.
boolAutoFocustrueVerschiebt den Browser‑Fokus/Scroll zum Viewer während der Initialisierung.
boolAutoPageFocustrueHält die aktuelle Miniatur sichtbar, während sich die Seiten ändern.
intPageZoom100Anfangs‑Zoom‑Prozentsatz.
intZoomStep10Prozentsatz, der durch Zoom‑Befehle hinzugefügt oder entfernt wird.
intMaxZoom300Maximaler Zoom‑Prozentsatz.
boolShowToolTiptrueZeigt das Seiten‑Positions‑Tooltip beim Scrollen an.
stringToolTipPageText"Page "Präfix, das im Seiten‑Tooltip verwendet wird.
boolCacheEnabledfalseBehält ein rollierendes Fenster von Seitenbildern im Browser‑Speicher. Es verwendet nicht localStorage.
boolLargeDocfalseFügt Seitenelemente in zeitgesteuerten Chargen für große Dokumente hinzu.
boolShowHyperlinksfalseRendert Hyperlink‑Overlays, wenn die Server‑Konfiguration sie extrahiert hat.
boolFixedZoomtrueVerwendet einen festen Zoom‑Prozentsatz statt einer responsiven Neuberechnung.
intFixedZoomPercent100Fester Desktop‑Zoom.
intFixedZoomPercentMobile75Fester mobiler Zoom.
stringBasePath"/"Zweig, an dem der Host UseDoconut() mappt.
stringResPath"doconut-res"Ressourcen‑Basis, die vom Widget verwendet wird. In einer normalen Einrichtung auf <ResourcesPath>/images zeigen.
stringFitType"width""width", "height" oder leer für kein automatisches Anpassen. "page" wird vom aktuellen Widget nicht akzeptiert.
boolRetryOn409falseAktiviert das Polling, wenn asynchrone/verteilte Seitenerzeugung 202 Accepted zurückgibt; 409 wird ebenfalls für die Kompatibilität mit älteren Servern akzeptiert. Nicht nötig für den normalen synchronen Viewer.
csharp
var config = new ViewerConfig
{
    ShowThumbs = true,
    AutoLoad = false,
    PageZoom = 100,
    MaxZoom = 300,
    FitType = "width",
    BasePath = "/doconut",
    ResPath = "/doconut-res/images",
    ShowHyperlinks = true
};

C# to JavaScript mapping

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

JavaScript defaults

OptionStandardAnmerkungen
leftMinWidth / leftMaxWidth220 / 800Minimal‑ bzw. Maximalbreite des Miniatur‑Bereichs.
showThumbstrueAnfangs‑Sichtbarkeit der Miniatur.
autoFocus / autoPageFocustrue / falseautoPageFocus unterscheidet sich vom C#‑Standard.
thumbWidth / thumbHeight / thumbPadding150 / 200 / 10Miniatur‑Geometrie in Pixeln.
pageZoom / zoomStep / maxZoom100 / 10 / 200JavaScript‑maxZoom unterscheidet sich von C# (300).
showToolTip / toolTipPageTexttrue / "Page "Seiten‑Positions‑Tooltip.
format / doc / AccessToken"" / 0 / ""Interne Initialisierungswerte; normalerweise von View(token) befüllt.
debugModefalseZusätzliche Client‑Diagnostik.
FitType""Kein automatisches Anpassen, sofern nicht angegeben.
BasePath"DocImage.axd"Historischer Client‑Standard, aus Kompatibilitätsgründen beibehalten. Aktuelle ASP.NET‑Core‑Hosts müssen ihn explizit auf den gemappten Middleware‑Zweig setzen.
ResPath""Explizit auf den eingebetteten Bilder‑Pfad setzen.
cacheEnabled / cacheCount / cacheDelayfalse / 3 / 3In‑Memory‑Seiten‑Vorlade‑Fenster und Verzögerung.
autoLoadfalseExpliziter Token‑Ablauf wird empfohlen.
largeDoctrueUnterscheidet sich vom C#‑Standard.
fixedZoomfalseUnterscheidet sich vom C#‑Standard.
fixedZoomPercent / fixedZoomPercentMobile100 / 50Mobiler Wert unterscheidet sich von C# (75).
showHyperlinkstrueErfordert serverseitige Extraktion, um Overlays zu erzeugen.
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>

Callbacks

CallbackArgumenteZweck
onPageLoadingpageNumEin Seiten‑Request startet.
onPageLoadedpageNumEin Seiten‑Bild hat das Laden abgeschlossen.
onThumbnailClickedpageNumDer Benutzer hat eine Miniatur ausgewählt.
onPageClickedpageNumDer Benutzer hat eine Seite ausgewählt.
onDoubleClicknoneDer Viewer erhielt einen Doppelklick.
onViewerBusynoneDer Viewer trat in einen beschäftigten Zustand ein.
onViewerReadynoneInitialisierung abgeschlossen.
onViewerErrornoneDer Viewer trat in seinen Fehlzustand ein.
onErrormessageEin Vorgang gab eine Fehlermeldung zurück.
onCopydataText‑Kopier‑Daten sind verfügbar.
onAutoLoadStatuspageNumAuto‑Laden hat eine Seite erreicht.
onThumbsShownnoneDas Miniatur‑Panel wurde sichtbar.
onAnnLoadednoneAnnotations‑Daten geladen.
onAnnSavednoneAnnotations‑Daten gespeichert.
onAnnSaveErrornoneAnnotations‑Speichern fehlgeschlagen.
onAnnClosednoneAnnotations‑UI geschlossen.

Halten Sie Callbacks kurz; senden Sie Telemetrie asynchron und blockieren Sie das Laden der Seite nicht.

Jede dieser ist eine Option im Initialisierungs‑Objekt. Der vorherige Viewer suchte globale Funktionen, deren Namen er aus der Container‑ID ableitete — eine Seite mit <div id="div_ctlDoc"> musste nur function ctlDoc_OnViewerReady() deklarieren. Diese Suche ist weggefallen. Übergeben Sie die Funktion explizit:

javascript
objctlDoc = $('#div_ctlDoc').docViewer({
    // ... your existing options ...
    onViewerBusy:     ctlDoc_OnViewerBusy,      // was found by name
    onViewerReady:    ctlDoc_OnViewerReady,     // was found by name
    onCopy:           ctlDoc_Copy,              // was ctlDoc_Copy(text)
    onAutoLoadStatus: ctlDoc_AutoLoadStatus     // was ctlDoc_AutoLoadStatus(page)
});

Die alte Suche war in ein leeres catch eingebettet, sodass nie etwas gemeldet wurde. In diesem Release werden die Funktionen einfach nie ausgeführt: Das typische Symptom ist ein dauernd drehender Lade‑Spinner, weil der Handler, der ihn versteckt hätte, onViewerReady war. Das Dokument dahinter wird korrekt gerendert.

Es gibt keinen Callback für Link‑Klicks — die Hyperlink‑Verarbeitung ist eingebaut und wird von showHyperlinks gesteuert.

Public method groups

GruppeGemeinsame Methoden
LebenszyklusView(token, accessToken?), Close(server?), Token(), Init(), IsLoaded()
NavigationGotoPage(page), ShowPage(page, focus?), Next(next), CurrentPage(), TotalPages()
Zoom und AnpassenZoom(zoomIn), CurrentZoom(), FitType(value), Refit()
OrientierungRotate(page, angle), Flip(page, flipType)
MiniaturenHideThumbs(hide), ThumbSize(size), ReloadThumbs(width), ScrollToThumb(thumb)
SucheCanSearch(), Search(...), SearchMatchCount(), SearchSummary(...), GotoSearchMatch(...)
AnnotationSaveAnnotations(), GetAnnotations(), PushAnnotations(...), CloseAnnotations(...), ShowAnnotations(...)
KopierenCopy(...), CopyPage(pageNumber), CopyMode(enabled)

Die JavaScript‑Datei enthält ebenfalls interne Hilfsfunktionen. Betrachten Sie nur die Methoden, die von der Referenz‑UI verwendet und hier oder in den Feature‑Leitfäden dokumentiert sind, als stabile Integrationspunkte.

Retry while a distributed page is still rendering

retryOn409 behält seinen historischen Namen. Es dient der asynchronen Seitenerzeugung und wiederholt die aktuelle 202 Accepted‑Bereitschafts‑Antwort sowie das ältere 409 Conflict‑Signal. Wenn aktiviert, pollt das Widget mit diesen JavaScript‑Standardeinstellungen:

OptionStandard
retryInitialDelayMs250
retryBackoffFactor1.6
retryMaxDelayMs2500
retryMaxAttempts60
retryMaxTotalMs120000

Lassen Sie es für den normalen Single‑Node‑Viewer deaktiviert. Das Aktivieren kann eine nicht unterstützte synchrone Darstellung nicht asynchron machen.

Aktivieren Sie es, wenn Seiten aus gemeinsam genutztem Speicher mit FirstPagePriority bereitgestellt werden, wobei spätere Seiten legitimerweise 202 Accepted zurückgeben, bis sie geschrieben sind. Ein Client, der nicht erneut versucht, zeigt fehlerhafte Kacheln für noch rendernde Seiten — siehe Verteilte Bereitstellungen.

Path checklist

  • DoconutOptions.MiddlewarePath muss den Zweig beschreiben, den Sie tatsächlich mappen.
  • BasePath muss auf diesen Zweig zeigen. Die Referenz‑Anwendung behält die historische DocImage.axd‑Anfrageform auf einem MapWhen‑Zweig bei und setzt daher BasePath: '/'.
  • DoconutOptions.ResourcesPath ist die Route zu den eingebetteten Ressourcen.
  • ResPath zielt normalerweise auf dessen Unterordner /images'doconut-res/images' mit dem Standard‑Präfix. Ein leerer ResPath war in der vorherigen Bibliothek korrekt, wo Ressourcen vom Anwendungs‑Root kamen; hier ist er nicht korrekt und führt ohne Fehlermeldung zum Scheitern.
  • ExtractHyperlinks muss in der Server‑Format‑Konfiguration aktiviert sein, bevor showHyperlinks etwas anzeigen kann.

War diese Seite hilfreich?