ViewerConfig
Opciones del widget de visualizador cliente
ViewerConfig (namespace Doconut) describe la apariencia y el comportamiento del visualizador del navegador. No afecta la calidad de renderizado del documento; use una configuración de formato para eso. La clase C# y el widget JavaScript de larga data tienen valores predeterminados diferentes, así que mapee los valores explícitamente.
Dos cambios del lado del cliente en esta versión fallan silenciosamente. Las funciones manejadoras se pasan como opciones — el widget ya no deriva nombres de funciones globales del id del contenedor — y
ResPathdebe apuntar al prefijo de recursos en lugar de la raíz de la aplicación. Ambos dejan el servidor funcionando perfectamente y no informan nada en la consola del navegador. Si está trasladando una página desde la biblioteca anterior, lea Llamadas de retorno y Lista de verificación de rutas antes que nada.
Propiedades de C#
| Tipo | Propiedad | Predeterminado | Descripción |
|---|---|---|---|
bool | ShowThumbs | true | Mostrar el panel de miniaturas. |
bool | AutoLoad | false | Cargar automáticamente después de la inicialización. El flujo normal de tokens llama a View(token) explícitamente. |
bool | AutoFocus | true | Mover el foco/desplazamiento del navegador al visualizador durante la inicialización. |
bool | AutoPageFocus | true | Mantener la miniatura actual visible mientras cambian las páginas. |
int | PageZoom | 100 | Porcentaje de zoom inicial. |
int | ZoomStep | 10 | Porcentaje añadido o eliminado por los comandos de zoom. |
int | MaxZoom | 300 | Porcentaje máximo de zoom. |
bool | ShowToolTip | true | Mostrar la información sobre posición de página mientras se desplaza. |
string | ToolTipPageText | "Page " | Prefijo usado en la información sobre la página. |
bool | CacheEnabled | false | Conservar una ventana móvil de imágenes de página en la memoria del navegador. No usa localStorage. |
bool | LargeDoc | false | Añadir elementos de página en lotes temporizados para documentos grandes. |
bool | ShowHyperlinks | false | Renderizar superposiciones de hipervínculos cuando la configuración del servidor los extrajo. |
bool | FixedZoom | true | Usar un porcentaje de zoom fijo en lugar de recálculo responsivo. |
int | FixedZoomPercent | 100 | Zoom fijo de escritorio. |
int | FixedZoomPercentMobile | 75 | Zoom fijo móvil. |
string | BasePath | "/" | Dónde el visualizador envía solicitudes de página. "/" está DocImage.axd en la raíz del sitio; de lo contrario, la rama donde el host asigna UseDoconut(), sin un / inicial ("doconut" significa /doconut/DocImage.axd). |
string | ResPath | "doconut-res/images" (26.9.0; "doconut-res" antes) | La carpeta desde la que el widget carga sus propias imágenes: la carpeta images bajo ResourcesPath, sin un / inicial. |
string | FitType | "width" | "width", "height", o vacío para sin ajuste automático. "page" no es aceptado por el widget actual. |
bool | RetryOn409 | false | Habilitar sondeo cuando la producción de páginas asíncrona/distribuida responde 202 Accepted; 409 también es aceptado para compatibilidad con servidores más antiguos. No es necesario para el visualizador síncrono normal. |
var config = new ViewerConfig
{
ShowThumbs = true,
AutoLoad = false,
PageZoom = 100,
MaxZoom = 300,
FitType = "width",
BasePath = "doconut", // sin '/' inicial: el visor lo agrega ("/doconut" se convertiría en //doconut, otro host)
ResPath = "doconut-res/images",
ShowHyperlinks = true
};Mapeo de C# a JavaScript
No pase un ViewerConfig serializado directamente a docViewer(...). La mayoría de las claves del widget están en camelCase, mientras que tres claves establecidas de ruta/ajuste están en 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 |
Valores predeterminados de JavaScript
El widget tiene valores predeterminados más antiguos que difieren de la clase C#. Los siguientes valores provienen de la implementación actual de docViewer.js.
| Opción | Predeterminado | Notas |
|---|---|---|
leftMinWidth / leftMaxWidth | 220 / 800 | Límites del ancho del panel de miniaturas. |
showThumbs | true | Visibilidad inicial de miniaturas. |
autoFocus / autoPageFocus | true / false | autoPageFocus difiere del valor predeterminado de C#. |
thumbWidth / thumbHeight / thumbPadding | 150 / 200 / 10 | Geometría de miniaturas en píxeles. |
pageZoom / zoomStep / maxZoom | 100 / 10 / 200 | JavaScript maxZoom difiere de C# (300). |
showToolTip / toolTipPageText | true / "Page " | Información sobre posición de página. |
format / doc / AccessToken | "" / 0 / "" | Valores internos de inicialización; normalmente poblados por View(token). |
debugMode | false | Diagnósticos adicionales del cliente. |
FitType | "" | No ajuste automático a menos que se proporcione. |
BasePath | "DocImage.axd" | Valor predeterminado histórico del cliente retenido por compatibilidad. Los hosts actuales de ASP.NET Core deben establecerlo explícitamente en la rama de middleware asignada. |
ResPath | "" | Establecer explícitamente a la ruta de imágenes incrustadas. |
cacheEnabled / cacheCount / cacheDelay | false / 3 / 3 | Ventana y retraso de precarga de página en memoria. |
autoLoad | false | Se recomienda un flujo de token explícito. |
largeDoc | true | Difiere del valor predeterminado de C#. |
fixedZoom | false | Difiere del valor predeterminado de C#. |
fixedZoomPercent / fixedZoomPercentMobile | 100 / 50 | Valor móvil difiere de C# (75). |
showHyperlinks | true | Requiere extracción del lado del servidor para producir superposiciones. |
Establezca todos los valores importantes de comportamiento en lugar de depender de cualquiera de los conjuntos de valores predeterminados:
<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>Retrollamadas
| Retrollamada | Argumentos | Propósito |
|---|---|---|
onPageLoading | pageNum | Se está iniciando una solicitud de página. |
onPageLoaded | pageNum | Una imagen de página ha terminado de cargarse. |
onThumbnailClicked | pageNum | El usuario seleccionó una miniatura. |
onPageClicked | pageNum | El usuario seleccionó una página. |
onDoubleClick | ninguno | El visor recibió un doble clic. |
onViewerBusy | ninguno | El visor entró en estado ocupado. |
onViewerReady | ninguno | Inicialización completada. |
onViewerError | ninguno | El visor entró en su estado de error. |
onError | message | Una operación devolvió un mensaje de error. |
onCopy | data | Los datos de copia de texto están disponibles. |
onAutoLoadStatus | pageNum | La carga automática avanzó a una página. |
onThumbsShown | ninguno | El panel de miniaturas se volvió visible. |
onAnnLoaded | ninguno | Datos de anotación cargados. |
onAnnSaved | ninguno | Datos de anotación guardados. |
onAnnSaveError | ninguno | Falló el guardado de anotaciones. |
onAnnClosed | ninguno | Interfaz de anotación cerrada. |
Mantenga las retrollamadas rápidas; envíe telemetría de forma asíncrona y no bloquee la renderización de la página.
Cada una de estas es una opción en el objeto de inicialización. El visor anterior buscaba funciones globales cuyos nombres derivaba del id del contenedor — una página con <div id="div_ctlDoc"> solo tenía que declarar function ctlDoc_OnViewerReady(). Esa búsqueda ha desaparecido. Pase la función explícitamente:
objctlDoc = $('#div_ctlDoc').docViewer({
// ... sus opciones existentes ...
onViewerBusy: ctlDoc_OnViewerBusy, // se encontró por nombre
onViewerReady: ctlDoc_OnViewerReady, // se encontró por nombre
onCopy: ctlDoc_Copy, // fue ctlDoc_Copy(text)
onAutoLoadStatus: ctlDoc_AutoLoadStatus // fue ctlDoc_AutoLoadStatus(page)
});La búsqueda antigua estaba envuelta en un catch vacío, por lo que nunca se informó nada. En esta versión las funciones simplemente nunca se ejecutan: el síntoma habitual es un indicador de carga que nunca se detiene, porque el controlador que lo ocultaba era onViewerReady. El documento detrás de él se está renderizando correctamente.
No hay una retrollamada de clic en enlace — el manejo de hipervínculos está incorporado y es controlado por showHyperlinks.
Grupos de métodos públicos
| Grupo | Métodos comunes |
|---|---|
| Ciclo de vida | View(token, accessToken?), Close(server?), Token(), Init(), IsLoaded() |
| Navegación | GotoPage(page), ShowPage(page, focus?), Next(next), CurrentPage(), TotalPages() |
| Zoom y ajuste | Zoom(zoomIn), CurrentZoom(), FitType(value), Refit() |
| Orientación | Rotate(page, angle), Flip(page, flipType) |
| Miniaturas | HideThumbs(hide), ThumbSize(size), ReloadThumbs(width), ScrollToThumb(thumb) |
| Búsqueda | CanSearch(), Search(...), SearchMatchCount(), SearchSummary(...), GotoSearchMatch(...) |
| Anotación | SaveAnnotations(), GetAnnotations(), PushAnnotations(...), CloseAnnotations(...), ShowAnnotations(...) |
| Copiar | Copy(...), CopyPage(pageNumber), CopyMode(enabled) |
El archivo JavaScript también contiene ayudantes internos. Trate solo los métodos utilizados por la UI de referencia y documentados aquí o en las guías de características como puntos de integración estables.
Reintentar mientras una página distribuida aún se está renderizando
retryOn409 conserva su nombre histórico. Es para la producción de páginas asíncrona y reintenta la respuesta de disponibilidad actual 202 Accepted así como la señal más antigua 409 Conflict. Cuando está habilitado, el widget consulta con estos valores predeterminados de JavaScript:
| Opción | Predeterminado |
|---|---|
retryInitialDelayMs | 250 |
retryBackoffFactor | 1.6 |
retryMaxDelayMs | 2500 |
retryMaxAttempts | 60 |
retryMaxTotalMs | 120000 |
Déjelo deshabilitado para el visor de nodo único normal. Habilitarlo no puede convertir una renderización sincrónica no compatible en asíncrona.
Habilítelo cuando las páginas se sirven desde almacenamiento compartido con FirstPagePriority, donde las páginas posteriores responden legítimamente 202 Accepted hasta que se escriben. Un cliente que no reintenta muestra mosaicos rotos para páginas que aún se están renderizando — vea Despliegues distribuidos.
Lista de verificación de rutas
DoconutOptions.MiddlewarePathdebe describir la rama que realmente mapea.BasePathdebe apuntar a esa rama, escrita sin un/inicial ('doconut', no'/doconut': el visor agrega la barra diagonal, y//doconut/...es una solicitud a otro host). La aplicación de referencia mantiene la forma histórica de solicitudDocImage.axden una ramaMapWheny por lo tanto estableceBasePath: '/'.DoconutOptions.ResourcesPathes la ruta de recurso incrustada.ResPathnormalmente apunta a su subcarpetaimages, sin un/inicial —'doconut-res/images'con el prefijo predeterminado. UnResPathvacío era correcto en la biblioteca anterior, donde los recursos provenían de la raíz de la aplicación; aquí no es correcto, y falla sin un error.ExtractHyperlinksdebe estar habilitado en la configuración de formato del servidor antes de queshowHyperlinkspueda mostrar algo.
¿Fue útil esta página?