ViewerConfig

Опции клиентского виджета просмотрщика

ViewerConfig (namespace Doconut) описывает внешний вид и поведение браузерного просмотрщика. Он не влияет на качество рендеринга документа; для этого используйте конфигурацию формата. Класс C# и устаревший плагин JavaScript имеют разные значения по умолчанию, поэтому сопоставляйте параметры явно.

Свойства C#

ТипСвойствоПо умолчаниюОписание
boolShowThumbstrueОтображать панель миниатюр.
boolAutoLoadfalseАвтоматически загружать после инициализации. Обычный поток токенов явно вызывает View(token).
boolAutoFocustrueПеремещать фокус/прокрутку браузера к просмотрщику во время инициализации.
boolAutoPageFocustrueСохранять текущую миниатюру видимой при смене страниц.
intPageZoom100Начальный процент масштабирования.
intZoomStep10Процент, добавляемый или удаляемый командами масштабирования.
intMaxZoom300Максимальный процент масштабирования.
boolShowToolTiptrueОтображать подсказку с позицией страницы при прокрутке.
stringToolTipPageText"Page "Префикс, используемый в подсказке страницы.
boolCacheEnabledfalseСохранять скользящее окно изображений страниц в памяти браузера. Не использует localStorage.
boolLargeDocfalseДобавлять элементы страниц пакетами с задержкой для больших документов.
boolShowHyperlinksfalseОтображать наложения гиперссылок, когда серверная конфигурация их извлекла.
boolFixedZoomtrueИспользовать фиксированный процент масштабирования вместо адаптивного пересчёта.
intFixedZoomPercent100Фиксированный масштаб для настольных устройств.
intFixedZoomPercentMobile75Фиксированный масштаб для мобильных устройств.
stringBasePath"/"Куда просмотрщик отправляет запросы страниц. "/" — это обработчик DocImage.axd в корне сайта. Для приложения в виртуальном каталоге используйте имя каталога без начального / ("myapp" означает /myapp/DocImage.axd).
stringResPath"doconut-res/images"Папка, из которой виджет загружает свои изображения: папка images внутри ResourcesPath, без начального /.
stringFitType"width""width", "height" или пусто для отключения автоматического подгонения. "page" не поддерживается текущим виджетом.
boolRetryOn409falseПовторно пытается выполнить запросы страниц, которые отвечают «still rendering». DocImage.axd рендерит синхронно и никогда не посылает этот сигнал; оставьте false.
csharp
var config = new ViewerConfig
{
    ShowThumbs = true,
    AutoLoad = false,
    PageZoom = 100,
    MaxZoom = 300,
    FitType = "width",
    BasePath = "/",                 // "/" = обработчик DocImage.axd в корне сайта (Web.config)
    ResPath = "doconut-res/images", // папка изображений внутри ResourcesPath, без начального '/'
    ShowHyperlinks = true
};
// Вывести его с помощью viewer.RenderViewer("viewerEl", token, config) - см. справку по Viewer.

Создание ViewerConfig с помощью RenderViewer

Viewer.RenderViewer(elementId, token, config) преобразует ViewerConfig в скрипт инициализации виджета. Он записывает шесть свойств из перечисленных — BasePath, ResPath, ShowThumbs, AutoLoad, PageZoom и FitType — и затем вызывает View(token). Остальные свойства не записываются: для MaxZoom, ShowHyperlinks, настроек масштабирования или любых обратных вызовов инициализируйте виджет самостоятельно, используя параметры JavaScript ниже. См. Просмотрщик для RenderViewer.

Сопоставление C# → JavaScript

Не передавайте напрямую сериализованный ViewerConfig в docViewer(...). Большинство ключей виджета используют camelCase, тогда как три установленных ключа пути/подгонки используют PascalCase.

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

Значения по умолчанию JavaScript

Виджет имеет более старые значения по умолчанию, которые отличаются от класса C#. Ниже перечислены значения, взятые из текущей реализации docViewer.js.

ОпцияПо умолчаниюПримечания
leftMinWidth / leftMaxWidth220 / 800Границы ширины панели миниатюр.
showThumbstrueНачальная видимость миниатюр.
autoFocus / autoPageFocustrue / falseautoPageFocus отличается от значения по умолчанию в C#.
thumbWidth / thumbHeight / thumbPadding150 / 200 / 10Геометрия миниатюр в пикселях.
pageZoom / zoomStep / maxZoom100 / 10 / 200JavaScript maxZoom отличается от C# (300).
showToolTip / toolTipPageTexttrue / "Page "Всплывающая подсказка с номером страницы.
format / doc / AccessToken"" / 0 / ""Внутренние значения инициализации; обычно заполняются функцией View(token).
debugModefalseДополнительная диагностика клиента.
FitType""Автоматическое подгонка не применяется, если не указано.
BasePath"DocImage.axd"Устаревшее значение по умолчанию. Установите явно: '/' для обработчика в корне сайта.
ResPath""Установите явно путь к встроенным изображениям.
cacheEnabled / cacheCount / cacheDelayfalse / 3 / 3Окно и задержка предзагрузки страниц в памяти.
autoLoadfalseРекомендуется явный поток токенов.
largeDoctrueОтличается от значения по умолчанию в C#.
fixedZoomfalseОтличается от значения по умолчанию в C#.
fixedZoomPercent / fixedZoomPercentMobile100 / 50Мобильное значение отличается от C# (75).
showHyperlinkstrueТребует извлечения на сервере для создания наложений.

Установите все важные для поведения значения явно, вместо того чтобы полагаться на любой набор значений по умолчанию:

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: '/',
    ResPath: 'doconut-res/images',
    onViewerReady: function () {},
    onError: function (message) { console.error('DocViewer:', message); }
});
</script>

Обратные вызовы

Обратный вызовАргументыНазначение
onPageLoadingpageNumЗапрос страницы начинается.
onPageLoadedpageNumИзображение страницы завершило загрузку.
onThumbnailClickedpageNumПользователь выбрал миниатюру.
onPageClickedpageNumПользователь выбрал страницу.
onDoubleClicknoneПросмотрщик получил двойной клик.
onViewerBusynoneПросмотрщик вошёл в состояние занятости.
onViewerReadynoneИнициализация завершена.
onViewerErrornoneПросмотрщик перешёл в состояние ошибки.
onErrormessageОперация вернула сообщение об ошибке.
onCopydataДоступны данные копирования текста.
onAutoLoadStatuspageNumАвтозагрузка продвинулась до страницы.
onThumbsShownnoneПанель миниатюр стала видимой.
onAnnLoadednoneДанные аннотации загружены.
onAnnSavednoneДанные аннотации сохранены.
onAnnSaveErrornoneСохранение аннотации не удалось.
onAnnClosednoneИнтерфейс аннотации закрыт.

Сохраняйте обратные вызовы быстрыми; отправляйте телеметрию асинхронно и не блокируйте рендеринг страницы.

Группы публичных методов

ГруппаОбщие методы
Жизненный циклView(token, accessToken?), Close(server?), Token(), Init(), IsLoaded()
НавигацияGotoPage(page), ShowPage(page, focus?), Next(next), CurrentPage(), TotalPages()
Масштаб и подгонкаZoom(zoomIn), CurrentZoom(), FitType(value), Refit()
ОриентацияRotate(page, angle), Flip(page, flipType)
МиниатюрыHideThumbs(hide), ThumbSize(size), ReloadThumbs(width), ScrollToThumb(thumb)
ПоискCanSearch(), Search(...), SearchMatchCount(), SearchSummary(...), GotoSearchMatch(...)
АннотацииSaveAnnotations(), GetAnnotations(), PushAnnotations(...), CloseAnnotations(...), ShowAnnotations(...)
КопированиеCopy(...), CopyPage(pageNumber), CopyMode(enabled)

Файл JavaScript также содержит внутренние вспомогательные функции. Считайте стабильными только те методы, которые используются в справочном UI и задокументированы здесь или в руководствах по функциям.

Параметры повторных попыток

Виджет также принимает retryOn409 и его настройки отката (retryInitialDelayMs, retryBackoffFactor, retryMaxDelayMs, retryMaxAttempts, retryMaxTotalMs). Они предназначены для развертываний, у которых страницы генерируются в фоновом режиме. DocImage.axd рендерит каждую страницу во время запроса, поэтому оставьте retryOn409 выключенным.

Список проверок пути

  • BasePath равен '/', когда обработчик DocImage.axd находится в корне сайта — атрибут path обработчика в Web.config определяет, где он отвечает. В виртуальном каталоге используйте имя каталога без начального / ('myapp', а не '/myapp': просмотрщик добавляет слеш, и //myapp/... является запросом к другому хосту).
  • DoconutOptions.ResourcesPath указывает, где модуль ресурсов обслуживает встроенные файлы (/doconut-res по умолчанию).
  • ResPath указывает на подпапку images, также без начального / ('doconut-res/images'). Указание 'doconut-res' приводит к тому, что все иконки возвращают 404, хотя документ всё ещё рендерится.
  • В MVC routes.IgnoreRoute("doconut-res/{*pathInfo}") должен следовать за ResourcesPath, если вы изменяете его.
  • ExtractHyperlinks должен быть включён в конфигурации формата сервера, прежде чем showHyperlinks сможет что‑то отобразить.

Была ли эта страница полезной?