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 | "/" | Ветка, где хост сопоставляет UseDoconut(). |
string | ResPath | "doconut-res" | Базовый путь ресурсов, используемый виджетом. В обычной настройке указывает на <ResourcesPath>/images. |
string | FitType | "width" | "width", "height" или пусто для отключения автоматического подгонения. "page" не поддерживается текущим виджетом. |
bool | RetryOn409 | false | Включить опрос, когда асинхронное/распределённое создание страниц отвечает 202 Accepted; 409 также принимается для совместимости со старыми серверами. Не требуется обычному синхронному просмотрщику. |
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 |
|---|---|
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 | maxZoom в JavaScript отличается от C# (300). |
showToolTip / toolTipPageText | true / "Page " | Подсказка позиции страницы. |
format / doc / AccessToken | "" / 0 / "" | Внутренние значения инициализации; обычно заполняются через View(token). |
debugMode | false | Дополнительная диагностика на клиенте. |
FitType | "" | Нет автоматического подгонения, если не указано. |
BasePath | "DocImage.axd" | Историческое значение клиента, сохранённое для совместимости. Текущие хосты ASP.NET Core должны явно установить его в соответствующую ветку middleware. |
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 и задокументированные здесь или в руководствах по функциям, как стабильные точки интеграции.
Повторные попытки, пока распределённая страница ещё рендерится
retryOn409 сохраняет своё историческое название. Он предназначен для асинхронного создания страниц и повторно запрашивает текущий ответ готовности 202 Accepted, а также более старый сигнал 409 Conflict. При включении виджет опрашивает с этими значениями по умолчанию JavaScript:
| Опция | По умолчанию |
|---|---|
retryInitialDelayMs | 250 |
retryBackoffFactor | 1.6 |
retryMaxDelayMs | 2500 |
retryMaxAttempts | 60 |
retryMaxTotalMs | 120000 |
Оставьте его отключённым для обычного просмотрщика. Включение не может превратить неподдерживаемый синхронный рендер в асинхронный.
Список проверок пути
DoconutOptions.MiddlewarePathдолжен описывать ветку, которую вы действительно сопоставляете.BasePathдолжен указывать на эту ветку.DoconutOptions.ResourcesPath— путь к встроенным ресурсам.ResPathобычно указывает на подпапку/images.ExtractHyperlinksдолжен быть включён в конфигурации формата сервера, прежде чемshowHyperlinksсможет что‑либо отобразить.
Была ли эта страница полезной?