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

Повторить после HTTP 409

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

ОпцияПо умолчанию
retryInitialDelayMs250
retryBackoffFactor1.6
retryMaxDelayMs2500
retryMaxAttempts60
retryMaxTotalMs120000

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

Контрольный список путей

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

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