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Включить опрос, когда асинхронное/распределённое создание страниц отвечает 202 Accepted; 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

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

Повторные попытки, пока распределённая страница ещё рендерится

retryOn409 сохраняет своё историческое название. Он предназначен для асинхронного создания страниц и повторно запрашивает текущий ответ готовности 202 Accepted, а также более старый сигнал 409 Conflict. При включении виджет опрашивает с этими значениями по умолчанию JavaScript:

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

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

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

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

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