ViewerConfig
Client viewer widget options
ViewerConfig (namespace Doconut) describes the browser viewer's appearance and behavior. It does not affect document rendering quality; use a format config for that. The C# class and the legacy JavaScript plugin have different defaults, so map values explicitly.
C# properties
| Type | Property | Default | Description |
|---|---|---|---|
bool | ShowThumbs | true | Show the thumbnail panel. |
bool | AutoLoad | false | Automatically load after initialization. The normal token flow calls View(token) explicitly. |
bool | AutoFocus | true | Move browser focus/scroll to the viewer during initialization. |
bool | AutoPageFocus | true | Keep the current thumbnail visible while pages change. |
int | PageZoom | 100 | Initial zoom percentage. |
int | ZoomStep | 10 | Percentage added or removed by zoom commands. |
int | MaxZoom | 300 | Maximum zoom percentage. |
bool | ShowToolTip | true | Show the page-position tooltip while scrolling. |
string | ToolTipPageText | "Page " | Prefix used in the page tooltip. |
bool | CacheEnabled | false | Retain a moving window of page images in browser memory. It does not use localStorage. |
bool | LargeDoc | false | Append page elements in timed batches for large documents. |
bool | ShowHyperlinks | false | Render hyperlink overlays when the server config extracted them. |
bool | FixedZoom | true | Use a fixed zoom percentage rather than responsive recalculation. |
int | FixedZoomPercent | 100 | Fixed desktop zoom. |
int | FixedZoomPercentMobile | 75 | Fixed mobile zoom. |
string | BasePath | "/" | Where the viewer sends page requests. "/" is the DocImage.axd handler at the site root. For an application in a virtual directory, use the directory name without a leading / ("myapp" means /myapp/DocImage.axd). |
string | ResPath | "doconut-res/images" | Folder the widget loads its own images from: the images folder under ResourcesPath, without a leading /. |
string | FitType | "width" | "width", "height", or empty for no automatic fit. "page" is not accepted by the current widget. |
bool | RetryOn409 | false | Retries page requests that answer "still rendering". DocImage.axd renders synchronously and never sends that signal; leave it false. |
var config = new ViewerConfig
{
ShowThumbs = true,
AutoLoad = false,
PageZoom = 100,
MaxZoom = 300,
FitType = "width",
BasePath = "/", // "/" = the DocImage.axd handler at the site root (Web.config)
ResPath = "doconut-res/images", // the images folder under ResourcesPath, no leading '/'
ShowHyperlinks = true
};
// Emit it with viewer.RenderViewer("viewerEl", token, config) - see the Viewer reference.Emitting a ViewerConfig with RenderViewer
Viewer.RenderViewer(elementId, token, config) turns a ViewerConfig into the widget's initialisation script. It writes six of the properties above — BasePath, ResPath, ShowThumbs, AutoLoad, PageZoom, and FitType — and then calls View(token). The other properties are not written: for MaxZoom, ShowHyperlinks, the zoom settings, or any callback, initialise the widget yourself with the JavaScript options below. See Viewer for RenderViewer.
C# to JavaScript mapping
Do not pass a directly serialized ViewerConfig to docViewer(...). Most widget keys are camelCase, while three established path/fit keys are 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 defaults
The widget has older defaults that differ from the C# class. The following values come from the current docViewer.js implementation.
| Option | Default | Notes |
|---|---|---|
leftMinWidth / leftMaxWidth | 220 / 800 | Thumbnail pane width bounds. |
showThumbs | true | Initial thumbnail visibility. |
autoFocus / autoPageFocus | true / false | autoPageFocus differs from the C# default. |
thumbWidth / thumbHeight / thumbPadding | 150 / 200 / 10 | Thumbnail geometry in pixels. |
pageZoom / zoomStep / maxZoom | 100 / 10 / 200 | JavaScript maxZoom differs from C# (300). |
showToolTip / toolTipPageText | true / "Page " | Page-position tooltip. |
format / doc / AccessToken | "" / 0 / "" | Internal initialization values; normally populated by View(token). |
debugMode | false | Additional client diagnostics. |
FitType | "" | No automatic fit unless supplied. |
BasePath | "DocImage.axd" | Legacy default. Set it explicitly: '/' for the handler at the site root. |
ResPath | "" | Set explicitly to the embedded images path. |
cacheEnabled / cacheCount / cacheDelay | false / 3 / 3 | In-memory page preloading window and delay. |
autoLoad | false | Explicit token flow is recommended. |
largeDoc | true | Differs from the C# default. |
fixedZoom | false | Differs from the C# default. |
fixedZoomPercent / fixedZoomPercentMobile | 100 / 50 | Mobile value differs from C# (75). |
showHyperlinks | true | Requires server-side extraction to produce overlays. |
Set all behaviorally important values instead of relying on either set of defaults:
<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: '/',
ResPath: 'doconut-res/images',
onViewerReady: function () {},
onError: function (message) { console.error('DocViewer:', message); }
});
</script>Callbacks
| Callback | Arguments | Purpose |
|---|---|---|
onPageLoading | pageNum | A page request is starting. |
onPageLoaded | pageNum | A page image finished loading. |
onThumbnailClicked | pageNum | The user selected a thumbnail. |
onPageClicked | pageNum | The user selected a page. |
onDoubleClick | none | The viewer received a double-click. |
onViewerBusy | none | The viewer entered a busy state. |
onViewerReady | none | Initialization completed. |
onViewerError | none | The viewer entered its error state. |
onError | message | An operation returned an error message. |
onCopy | data | Text-copy data is available. |
onAutoLoadStatus | pageNum | Auto-loading progressed to a page. |
onThumbsShown | none | The thumbnail panel became visible. |
onAnnLoaded | none | Annotation data loaded. |
onAnnSaved | none | Annotation data saved. |
onAnnSaveError | none | Annotation saving failed. |
onAnnClosed | none | Annotation UI closed. |
Keep callbacks fast; send telemetry asynchronously and do not block page rendering.
Public method groups
| Group | Common methods |
|---|---|
| Lifecycle | View(token, accessToken?), Close(server?), Token(), Init(), IsLoaded() |
| Navigation | GotoPage(page), ShowPage(page, focus?), Next(next), CurrentPage(), TotalPages() |
| Zoom and fit | Zoom(zoomIn), CurrentZoom(), FitType(value), Refit() |
| Orientation | Rotate(page, angle), Flip(page, flipType) |
| Thumbnails | HideThumbs(hide), ThumbSize(size), ReloadThumbs(width), ScrollToThumb(thumb) |
| Search | CanSearch(), Search(...), SearchMatchCount(), SearchSummary(...), GotoSearchMatch(...) |
| Annotation | SaveAnnotations(), GetAnnotations(), PushAnnotations(...), CloseAnnotations(...), ShowAnnotations(...) |
| Copy | Copy(...), CopyPage(pageNumber), CopyMode(enabled) |
The JavaScript file contains internal helpers too. Treat only methods used by the reference UI and documented here or in the feature guides as stable integration points.
Retry options
The widget also accepts retryOn409 and its backoff settings (retryInitialDelayMs, retryBackoffFactor, retryMaxDelayMs, retryMaxAttempts, retryMaxTotalMs). They serve deployments whose pages are produced in the background. DocImage.axd renders every page during the request, so leave retryOn409 off.
Path checklist
BasePathis'/'when theDocImage.axdhandler is at the site root — thepathattribute of the handler inWeb.configdecides where it answers. In a virtual directory, use the directory name without a leading/('myapp', not'/myapp': the viewer adds the slash, and//myapp/...is a request to another host).DoconutOptions.ResourcesPathis where the resource module serves the embedded files (/doconut-resby default).ResPathtargets itsimagessubfolder, also without a leading/('doconut-res/images'). Pointing it at'doconut-res'makes every icon 404 while the document still renders.- In MVC,
routes.IgnoreRoute("doconut-res/{*pathInfo}")must followResourcesPathif you change it. ExtractHyperlinksmust be enabled in the server format config beforeshowHyperlinkscan display anything.
האם דף זה היה מועיל?