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"/"Ветка, где хост сопоставляет UseDoconut().
stringResPath"doconut-res"Базовый путь ресурсов, используемый виджетом. В обычной настройке укажите <ResourcesPath>/images.
stringFitType"width""width", "height" или пусто — без автоматического подгонения. "page" не поддерживается текущим виджетом.
boolRetryOn409falseВключить опрос, когда асинхронный/распределённый запрос страницы возвращает 409. Не требуется для обычного синхронного просмотрщика.
csharp
var config = new ViewerConfig
{
    ShowThumbs = true,
    AutoLoad = false,
    PageZoom = 100,
    MaxZoom = 300,
    FitType = "width",
    BasePath = "/doconut",
    ResPath = "/doconut-res/images",
    ShowHyperlinks = true
};

Преобразование 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 / 200maxZoom в JavaScript отличается от C# (300).
showToolTip / toolTipPageTexttrue / "Page "Подсказка позиции страницы.
format / doc / AccessToken"" / 0 / ""Внутренние значения инициализации; обычно заполняются View(token).
debugModefalseДополнительная диагностика на клиенте.
FitType""Автоматическое подгонка не применяется, если не указано.
BasePath"DocImage.axd"Устаревший обработчик. Установите явно для ASP.NET Core.
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: '/doconut',
    ResPath: '/doconut-res/images',
    onViewerReady: function () {},
    onError: function (message) { console.error('DocViewer:', message); }
});
</script>

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

Обратный вызовАргументыНазначение
onPageLoadingpageNumЗапрос страницы начинается.
onPageLoadedpageNumИзображение страницы завершило загрузку.
onThumbnailClickedpageNumПользователь выбрал миниатюру.
onPageClickedpageNumПользователь выбрал страницу.
onDoubleClickПросмотрщик получил двойной клик.
onViewerBusyПросмотрщик вошёл в состояние занятости.
onViewerReadyИнициализация завершена.
onViewerErrorПросмотрщик перешёл в состояние ошибки.
onErrormessageОперация вернула сообщение об ошибке.
onCopydataДоступны данные копирования текста.
onAutoLoadStatuspageNumАвтозагрузка продвинулась до указанной страницы.
onThumbsShownПанель миниатюр стала видимой.
onAnnLoadedДанные аннотации загружены.
onAnnSavedДанные аннотации сохранены.
onAnnSaveErrorСохранение аннотации не удалось.
onAnnClosedИнтерфейс аннотации закрыт.

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

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

ГруппаОбщие методы
Жизненный цикл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 также содержит внутренние вспомогательные функции. Рассматривайте только те методы, которые задокументированы в этом справочнике или в руководствах по функциям, как стабильные точки интеграции.

Повторные попытки после HTTP 409

retryOn409 предназначен для асинхронного создания страниц. При включении виджет опрашивает сервер с этими значениями по умолчанию JavaScript:

ПараметрПо умолчанию
retryInitialDelayMs250
retryBackoffFactor1.6
retryMaxDelayMs2500
retryMaxAttempts60
retryMaxTotalMs120000

Оставьте его отключённым для обычного просмотрщика. Включение не может превратить неподдерживаемый синхронный рендер в асинхронный.

Проверочный список путей

  • DoconutOptions.MiddlewarePath — должна описывать ветку, которую вы действительно сопоставляете.
  • BasePath — должен указывать на эту ветку.
  • DoconutOptions.ResourcesPath — путь к встроенным ресурсам.
  • ResPath — обычно указывает на подпапку /images.
  • ExtractHyperlinks — должен быть включён в конфигурацию формата сервера, прежде чем showHyperlinks сможет что‑либо отображать.

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