ViewerConfig
Опции клиентского виджета просмотра
ViewerConfig (namespace Doconut) описывает внешний вид и поведение браузерного просмотрщика. Он не влияет на качество рендеринга документа; для этого используйте конфигурацию формата. Класс C# и устаревший плагин JavaScript имеют разные значения по умолчанию, поэтому явно сопоставляйте значения.
Свойства C#
| Тип | Свойство | По умолчанию | Описание |
|---|---|---|---|
bool | ShowThumbs | true | Показывать панель миниатюр. |
bool | AutoLoad | false | Автоматически загружать после инициализации. Обычный поток токенов вызывает View(token) явно. |
bool | AutoFocus | true | Перемещать фокус/прокрутку браузера к просмотровщику во время инициализации. |
bool | AutoPageFocus | true | Сохранять текущую миниатюру видимой при смене страниц. |
int | PageZoom | 100 | Начальный процент масштабирования. |
int | ZoomStep | 10 | Процент, добавляемый или удаляемый командами масштабирования. |
int | MaxZoom | 300 | Максимальный процент масштабирования. |
bool | ShowToolTip | true | Показывать подсказку позиции страницы во время прокрутки. |
string | ToolTipPageText | "Page " | Префикс, используемый в подсказке страницы. |
bool | CacheEnabled | false | Сохранять движущееся окно изображений страниц в памяти браузера. Не использует localStorage. |
bool | LargeDoc | false | Добавлять элементы страниц пакетами с задержкой для больших документов. |
bool | ShowHyperlinks | false | Отрисовывать наложения гиперссылок, когда серверная конфигурация их извлекла. |
bool | FixedZoom | true | Использовать фиксированный процент масштабирования вместо адаптивного пересчёта. |
int | FixedZoomPercent | 100 | Фиксированный масштаб для настольных устройств. |
int | FixedZoomPercentMobile | 75 | Фиксированный масштаб для мобильных устройств. |
string | BasePath | "/" | Куда просмотрщик отправляет запросы страниц. "/" находится DocImage.axd в корне сайта; иначе ветка, где хост сопоставляет UseDoconut(), без начального / ("doconut" означает /doconut/DocImage.axd). |
string | ResPath | "doconut-res/images" (26.9.0; "doconut-res" before) | Папка, из которой виджет загружает свои собственные изображения: папка images внутри ResourcesPath, без начального /. |
string | FitType | "width" | "width", "height", или пусто для отключения автоматической подгонки. "page" не принимается текущим виджетом. |
bool | RetryOn409 | false | Включить опрос, когда асинхронный/распределённый запрос страницы отвечает 409. Не требуется обычному синхронному просмотрщику. |
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 |
|---|---|
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
У виджета есть более старые значения по умолчанию, отличающиеся от класса C#. Следующие значения получены из текущей реализации docViewer.js.
| Опция | По умолчанию | Примечания |
|---|---|---|
leftMinWidth / leftMaxWidth | 220 / 800 | Границы ширины панели миниатюр. |
showThumbs | true | Начальная видимость миниатюр. |
autoFocus / autoPageFocus | true / false | autoPageFocus отличается от значения по умолчанию в C#. |
thumbWidth / thumbHeight / thumbPadding | 150 / 200 / 10 | Геометрия миниатюр в пикселях. |
pageZoom / zoomStep / maxZoom | 100 / 10 / 200 | JavaScript maxZoom отличается от C# (300). |
showToolTip / toolTipPageText | true / "Page " | Подсказка позиции страницы. |
format / doc / AccessToken | "" / 0 / "" | Внутренние значения инициализации; обычно заполняются View(token). |
debugMode | false | Дополнительная диагностика клиента. |
FitType | "" | Нет автоматической подгонки, если не указано. |
BasePath | "DocImage.axd" | Значение по умолчанию устаревшего обработчика. Установите явно для ASP.NET Core. |
ResPath | "" | Установить явно путь к встроенным изображениям. |
cacheEnabled / cacheCount / cacheDelay | false / 3 / 3 | Окно предзагрузки страниц в памяти и задержка. |
autoLoad | false | Рекомендуется явный поток токенов. |
largeDoc | true | Отличается от значения по умолчанию в C#. |
fixedZoom | false | Отличается от значения по умолчанию в C#. |
fixedZoomPercent / fixedZoomPercentMobile | 100 / 50 | Мобильное значение отличается от C# (75). |
showHyperlinks | true | Требует извлечения на сервере для создания наложений. |
Установите все важные для поведения значения вместо того, чтобы полагаться на любой набор значений по умолчанию:
<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>Обратные вызовы
| Обратный вызов | Аргументы | Назначение |
|---|---|---|
onPageLoading | pageNum | Запрос страницы начинается. |
onPageLoaded | pageNum | Изображение страницы завершило загрузку. |
onThumbnailClicked | pageNum | Пользователь выбрал миниатюру. |
onPageClicked | pageNum | Пользователь выбрал страницу. |
onDoubleClick | none | Просмотрщик получил двойной клик. |
onViewerBusy | none | Просмотрщик вошёл в занятое состояние. |
onViewerReady | none | Инициализация завершена. |
onViewerError | none | Просмотрщик вошёл в состояние ошибки. |
onError | message | Операция вернула сообщение об ошибке. |
onCopy | data | Данные копирования текста доступны. |
onAutoLoadStatus | pageNum | Автозагрузка продвинулась до страницы. |
onThumbsShown | none | Панель миниатюр стала видимой. |
onAnnLoaded | none | Данные аннотаций загружены. |
onAnnSaved | none | Данные аннотаций сохранены. |
onAnnSaveError | none | Сохранение аннотаций не удалось. |
onAnnClosed | none | Интерфейс аннотаций закрыт. |
Сделайте обратные вызовы быстрыми; отправляйте телеметрию асинхронно и не блокируйте рендеринг страницы.
Группы публичных методов
| Группа | Общие методы |
|---|---|
| Жизненный цикл | 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:
| Опция | По умолчанию |
|---|---|
retryInitialDelayMs | 250 |
retryBackoffFactor | 1.6 |
retryMaxDelayMs | 2500 |
retryMaxAttempts | 60 |
retryMaxTotalMs | 120000 |
Оставьте его отключённым для обычного просмотрщика. Включение не может сделать неподдерживаемый синхронный рендер асинхронным.
Контрольный список путей
DoconutOptions.MiddlewarePathдолжен описывать ветку, которую вы действительно маппите.BasePathдолжен указывать на эту ветку, записанную без начального/('doconut', а не'/doconut': просмотрщик добавляет слеш, а//doconut/...— запрос к другому хосту).DoconutOptions.ResourcesPath— это маршрут встроенного ресурса.ResPathобычно указывает на его подпапкуimages, также без начального/('doconut-res/images').ExtractHyperlinksдолжен быть включён в конфигурации формата сервера, прежде чемshowHyperlinksсможет что‑то отобразить.
Была ли эта страница полезной?