Configuraciones de Formato

Opciones completas de renderizado por formato

Cada documento se abre con una implementación de BaseConfig. Pase una a OpenDocumentAsync (o OpenDocument) o permita que el catálogo de formatos cree su valor predeterminado. Todas las clases a continuación pertenecen al espacio de nombres Doconut.

csharp
var token = await viewer.OpenDocumentAsync(path, new PdfConfig
{
    AllowSearch = true,
    AllowCopy   = true,
    ImageResolution = 150
});

Herencia y configuraciones PDF anidadas

Cada formato hereda las cinco propiedades de BaseConfig. Los formatos que pueden redirigirse a través de PDF exponen un PdfConfig anidado. En WordConfig, ExcelConfig y PptConfig, AllowSearch y AllowCopy son propiedades de conveniencia que leen y escriben el PdfConfig anidado.

DefaultRender = true selecciona el renderizador nativo del formato. En los formatos con una redirección a PDF, false convierte primero a un PDF en memoria y luego utiliza el visor de PDF. Esa ruta suele ser útil para la búsqueda por coordenadas de texto, pero implica una conversión adicional.

A menos que se indique lo contrario, las tablas muestran los valores predeterminados de constructores/propiedades. El catálogo de formatos automático sobrescribe deliberadamente dos de ellos: crea ExcelConfig con SplitWorksheets = true y MhtConfig con DefaultRender = false.

BaseConfig

TipoPropiedadPredeterminadoComportamiento
intImageResolution00 utiliza el valor predeterminado del formato. El rango explícito válido es 25-300 DPI; las asignaciones no válidas se ignoran.
stringDocumentCulture""Configuración regional para fechas y números. Los valores no vacíos se recortan; las asignaciones en blanco se ignoran.
stringPassword""Contraseña del documento protegido. DocOptions.Password se copia aquí automáticamente.
boolShowUItruePropiedad de compatibilidad; el renderizador actual no la usa para controlar la barra de herramientas del navegador.
boolCachePagestrueAlmacena en caché las imágenes de página renderizadas para la sesión del documento.

PdfConfig

Formatos: PDF. DPI predeterminado: 200.

TipoPropiedadPredeterminadoComportamiento
boolDefaultRendertrueInterruptor de compatibilidad. La fábrica actual usa el visor PDF nativo.
boolAllowSearchfalseConstruye/usa el índice de búsqueda de texto del PDF. Requiere la capacidad de licencia Search para las solicitudes.
boolAllowCopyfalsePermite operaciones de selección y copia de texto.
boolExtractHyperlinksfalseExtrae los rectángulos de enlaces para superposiciones del cliente.
intHyperlinksPageCount0Máximo de páginas escaneadas en busca de enlaces; 0 significa todas las páginas.
boolCompressImagesfalseComprime imágenes incrustadas antes de renderizar.
intCompressQuality100Calidad JPEG usada cuando la compresión está habilitada.
boolResizeImagesfalseRedimensiona imágenes incrustadas antes de renderizar.
intResizeResolution300DPI objetivo para imágenes redimensionadas.
boolCompressFastfalsePrefiere la ruta de compresión más rápida y de menor calidad.
boolFixInvalidImagesfalseIntenta reparar imágenes incrustadas no válidas.
boolSplitSegmentsfalseReune palabras divididas en segmentos de línea para mejorar la búsqueda/copia.

showHyperlinks en ViewerConfig controla la superposición del cliente, mientras que ExtractHyperlinks controla la extracción en el servidor. Habilita ambos.

WordConfig

Formatos: DOC, DOCX, DOCM, DOT, DOTX, DOTM, RTF, ODT, OTT, XML. DPI predeterminado: 200.

TipoPropiedadPredeterminadoComportamiento
boolDefaultRendertrueRenderizado nativo de Word; false usa la redirección a PDF.
PdfConfigPdfConfignew instanceConfiguraciones usadas por la ruta PDF/búsqueda.
DocPaperSizePaperSizeA4Tamaño de papel de salida. Use Custom con ancho/alto.
intPaperWidth595Ancho personalizado en puntos.
intPaperHeight841Altura personalizada en puntos.
boolRemovePaperMarginfalseElimina los márgenes de página del documento.
boolRenderPageColortruePreserva el color de página configurado en Word; false renderiza páginas blancas.
boolExportPdfAfalseUsa PDF/A de archivo en la ruta PDF.
Encoding?FileEncodingnullSobrescribe la codificación de origen.
stringFontInfo""Información de sustitución de fuentes.
string[]?FontFoldersnullDirectorios de fuentes adicionales — útil en un servidor que carece de las fuentes que usan los documentos.
boolAllowSearchfalseDelegado a PdfConfig.AllowSearch.
boolAllowCopyfalseDelegado a PdfConfig.AllowCopy.
TableAutoFitBehaviorAutoFitAllTablesNoneNone, AutoFitToContents o AutoFitToWindow.

ExcelConfig

Formatos: XLS, XLSX, XLSM, XLSB, XLTX, XLTM, ODS, CSV. DPI predeterminado: 200.

TipoPropiedadPredeterminadoComportamiento
boolDefaultRendertrueRenderizado nativo de hoja; false usa la redirección a PDF.
PdfConfigPdfConfignew instanceConfiguración para la ruta PDF/búsqueda.
ExcelPaperSizePaperSizePaperA4Tamaño de papel de salida.
doublePaperMargins0.25Márgenes de página en pulgadas.
boolPaperLandscapetrueRenderizado de hoja en orientación horizontal.
boolAutoFitContentsfalseAjuste automático de alturas de filas y anchuras de columnas.
boolRemoveEmptyContenttrueAjusta la salida excluyendo contenido vacío.
boolCalculateFormulatrueRecalcula fórmulas antes del renderizado.
boolShowRowColumnHeaderstrueIncluye encabezados de filas y columnas de la hoja.
boolExportPdfAfalseUtiliza PDF/A en la ruta PDF.
boolSplitWorksheetsfalseMantiene las hojas como grupos de páginas separados.
boolShowEmptyWorkSheetsfalseIncluye hojas de cálculo vacías.
boolExportLandscapefalseFuerza la exportación en orientación horizontal.
boolExportOnePagePerSheetfalseAjusta cada hoja a una página de salida.
boolMemoryOptimizationPreferencetrueReduce la memoria máxima, potencialmente a costa de algo de velocidad.
boolAutoTrimWorksheetRenderRangetrueRenderiza solo el rango usado visible cuando no existe un área de impresión explícita.
boolAutoTrimPreserveExistingPrintAreatruePreserva las áreas de impresión definidas en el libro durante el auto‑recorte.
string?PrintAreanullRango explícito como "A1:Z100".
boolPrintGridlinesfalseImprime las líneas de cuadrícula de la hoja.
boolPrintHeadingsfalseImprime los encabezados de filas/columnas.
List<string>SheetNamesemptyRestringe el renderizado a hojas con nombre.
CustomStyleCell?CustomStylesnullSobrescrituras opcionales de formato de fecha/decimal/entero.
boolAllowSearchfalseSe delega a PdfConfig.AllowSearch.
boolAllowCopyfalseSe delega a PdfConfig.AllowCopy.

CustomStyleCell expone CustomStyleDateTime, CustomStyleNumberDecimal y CustomStyleNumberInteger, todas cadenas anulables.

new ExcelConfig() establece SplitWorksheets en false; abrir un archivo Excel sin una configuración explícita usa el catálogo de formatos, que lo establece en true.

PptConfig

Formatos: PPT, PPTX, PPTM, PPSX, PPSM, POT, POTX, POTM, ODP. DPI predeterminado: 200.

TipoPropiedadPredeterminadoComportamiento
boolDefaultRendertrueRenderizado nativo de diapositiva; false usa la redirección a PDF.
boolFastLoadfalseEvita renderizar la primera diapositiva al abrir; usa metadatos y renderiza bajo demanda.
PdfConfigPdfConfignew instanceConfiguración para el comportamiento PDF/búsqueda.
stringFontInfo""Información de sustitución de fuentes.
string[]?FontFoldersnullDirectorios de fuentes adicionales.
boolAllowSearchfalseSe delega a PdfConfig.AllowSearch.
boolAllowCopyfalseSe delega a PdfConfig.AllowCopy.

Instale las fuentes que usan las presentaciones en el servidor, o apunte FontFolders a una carpeta que las contenga. Un Windows Server sin Office tiene muchas menos fuentes que una máquina de desarrollo, y las fuentes faltantes se sustituyen sin ningún error.

CadConfig

Formatos: DWG, DXF, DGN. DPI predeterminado: 200.

TipoPropiedadPredeterminadoComportamiento
boolDefaultRendertrueRenderizado nativo CAD; false usa la redirección a PDF.
PdfConfigPdfConfignew instanceConfiguración de la ruta PDF.
boolExportPdfAfalseSalida PDF/A de archivo.
boolShowColortrueColor en lugar de monocromo.
boolWhiteBackgroundtrueFondo blanco en lugar de negro.
shortLineWidth25Ancho de trazo CAD.
boolShowLayoutsfalseRenderiza pestañas de diseño.
boolShowModeltrueRenderiza el espacio modelo.
boolCheck3DSolidtrueProcesa sólidos 3D.
boolExportAllLayoutsfalseExporta todos los diseños, sobrescribiendo la selección de modelo/diseño.
boolLimitMinimumSizefalseAplica MinimumSize.
intMinimumSize700Tamaño mínimo de salida en píxeles.
boolLimitMaximumSizefalseAplica MaximumSize.
intMaximumSize700Tamaño máximo de salida en píxeles.
boolShowAllLayoutsDgnfalseIncluye todos los diseños DGN.
boolAutomaticLayoutScalingtrueEscala automáticamente los diseños.
floatPdfMargins0.5Margen PDF en pulgadas.
RenderQualityQualityImageLowCalidad de raster: Low, Medium o High.
RenderQualityQualityTextMediumCalidad de texto: Low, Medium o High.

Configuración de Email

Formatos: EML, EMLX, MSG. DPI predeterminado: 200.

TipoPropiedadPredeterminadoComportamiento
boolDefaultRendertrueRenderizado nativo de correo; false usa la redirección a PDF.
PdfConfigPdfConfignueva instanciaConfiguración de ruta PDF.
Encoding?EmailEncodingnullSobrescribe la codificación del mensaje.
Encoding?SubjectEncodingnullSobrescribe la codificación del asunto.
Encoding?BodyEncodingnullSobrescribe la codificación del cuerpo.
boolSkipExternalImagesfalseNo cargar imágenes referenciadas remotamente. Recomendado para correo no confiable.
boolRemoveLastWhitePagefalseEliminar una página en blanco final.
boolUseAntiAliasingfalseHabilitar antialiasing.
boolUseHighQualityRenderingfalsePreferir renderizado más limpio y lento.
TimeSpan?TimeZoneOffsetnullSobrescribe la zona horaria usada para fechas.
boolForcePageSizefalseForzar dimensiones de página fijas.

Configuración de Imagen, Tiff y Psd

ImageConfig cubre JPG, JPEG, JPE, PNG, BMP, GIF, ICO, EPS, TGA, WEBP, CDR, CMX, DNG, EMF, WMF, AVIF y SVG. Su DPI predeterminado es 100.

ConfiguraciónPropiedadPredeterminadoComportamiento
ImageConfigMaxImagePixelSize3000Tamaño máximo de píxel de imagen. 0 significa ilimitado; los valores distintos de cero menores a 50 se ignoran.
ImageConfigTransparentPngtruePreservar la transparencia PNG; false usa un fondo blanco.
TiffConfigsin propiedades adicionalesDPI 200Usa solo BaseConfig; soporta TIFF multipágina.
PsdConfigMaxImagePixelSize3000Misma validación 0/mínimo-50 que ImageConfig; DPI predeterminado es 100.

Configuración Dicom

Formatos: DCM, IMA. DPI efectivo predeterminado: 100. Requiere el complemento DICOM. En este paquete los archivos DICOM se renderizan completamente, pero los metadatos técnicos no están disponibles — ver Complemento DICOM.

TipoPropiedadPredeterminadoComportamiento
intHorizontalResolution100 (efectivo)DPI horizontal explícito; si no, ImageResolution, luego 100.
intVerticalResolution100 (efectivo)DPI vertical explícito; si no, ImageResolution, luego 100.
intAnimationFrameDelayMs100Retardo de fotogramas de animación multiframe; el temporizador GIF usa unidades de 10 ms.
ushortLoopCount00 bucle indefinidamente; valores positivos detienen después de ese recuento.
DicomDisplayModeDisplayModeAnimationAndFramesAnimationOnly, FramesOnly, o vista combinada más fotogramas estáticos.

Configuración Txt

Formato: TXT. DPI predeterminado: 200.

TipoPropiedadPredeterminadoComportamiento
DocPaperSizePaperSizeA4Tamaño de papel de salida.
Encoding?FileEncodingnullnull usa UTF-8.
stringFontInformation""Información de fuente para renderizado de texto.

Use WordConfig cuando el texto plano necesita un comportamiento de diseño de página más rico.

Configuración de Proyecto

Formatos: MPP, MPPX, MPX. DPI predeterminado: 200.

TipoPropiedadPredeterminadoComportamiento
boolDefaultRendertrueImagen Gantt nativa; false usa una ruta PDF basada en texto.
PdfConfigPdfConfignueva instanciaConfiguración de ruta PDF.
boolExportPdfAtrueSalida PDF/A de archivo.
MppPaperSizePaperSizeLedgerTamaño de papel de salida del proyecto.
MppTimeScaleTimeScaleMonthsDays o Months.
MppFormatPresentationFormatGanttChartGanttChart, TaskUsage, ResourceUsage, ResourceSheet o TaskSheet.

Para búsqueda exacta por coordenadas de texto, use DefaultRender = false.

Configuración Visio

Formatos: VSD, VSDX, VSS, VSSX, VST, VSTX, VDX, VSX, VSDM. DPI predeterminado: 200.

TipoPropiedadPredeterminadoComportamiento
boolDefaultRendertrueRenderizado nativo de diagramas; false usa la redirección a PDF.
PdfConfigPdfConfignueva instanciaConfiguración de ruta PDF.
boolExportPdfAtrueSalida PDF/A de archivo.

Configuración Html, Epub, Mht y Xps

Los cuatro tienen por defecto 200 DPI y exponen un PdfConfig anidado.

ConfiguraciónFormatosDefaultRenderPropiedades/comportamiento adicionales
HtmlConfigHTML, HTMtrueRenderizado nativo; use false para una ruta de búsqueda PDF basada en texto.
EpubConfigEPUBtrueRenderizado nativo; false usa PDF.
MhtConfigMHT, MHTMLtrue en la clase; false en el catálogo automáticoLa apertura normal sin configuración usa la redirección PDF buscable. Una instancia predeterminada construida explícitamente renderiza de forma nativa.
XpsConfigXPSfalseUsa la ruta PDF por defecto; establezca true para renderizado nativo de imagen.

Ejemplos de configuración por familia

csharp
BaseConfig[] configs =
{
    new PdfConfig
    {
        AllowSearch = true,
        ExtractHyperlinks = true,
        HyperlinksPageCount = 0
    },
    new WordConfig
    {
        PaperSize = DocPaperSize.A4,
        RemovePaperMargin = false,
        FontFolders = new[] { HostingEnvironment.MapPath("~/App_Data/Fonts") },
        AllowSearch = true
    },
    new ExcelConfig
    {
        PaperLandscape = true,
        AutoFitContents = true,
        CalculateFormula = true,
        SplitWorksheets = false,
        PrintGridlines = false
    },
    new PptConfig
    {
        FastLoad = true,
        FontFolders = new[] { HostingEnvironment.MapPath("~/App_Data/Fonts") },
        AllowSearch = true
    },
    new CadConfig
    {
        ShowColor = true,
        WhiteBackground = true,
        ShowModel = true,
        ShowLayouts = false,
        QualityText = CadConfig.RenderQuality.High
    },
    new EmailConfig
    {
        SkipExternalImages = true,
        RemoveLastWhitePage = true,
        TimeZoneOffset = TimeSpan.Zero
    },
    new ImageConfig
    {
        MaxImagePixelSize = 3000,
        TransparentPng = true
    },
    new DicomConfig
    {
        DisplayMode = DicomDisplayMode.AnimationAndFrames,
        AnimationFrameDelayMs = 100,
        LoopCount = 0
    }
};

Selección por extensión

csharp
static BaseConfig ConfigForExtension(string extUpper)
{
    switch (extUpper)
    {
        case ".DOC": case ".DOCX": case ".DOT": case ".DOTX": case ".ODT":
            return new WordConfig
            {
                AutoFitAllTables = WordConfig.TableAutoFitBehavior.AutoFitToWindow,
                PaperSize = DocPaperSize.Tabloid,
                PdfConfig = new PdfConfig { ExtractHyperlinks = true, HyperlinksPageCount = 5, AllowCopy = true }
            };
        case ".PDF":
            return new PdfConfig { AllowSearch = true, AllowCopy = true };
        case ".XLS": case ".XLSX": case ".ODS": case ".CSV":
            return new ExcelConfig { AllowSearch = true, AllowCopy = true };
        case ".DCM": case ".IMA":
            return new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames };
        // DefaultRender = false → redirección PDF → búsqueda de texto nativa con precisión de píxel
        case ".HTML": case ".HTM":
            return new HtmlConfig { DefaultRender = false };
        case ".EML": case ".EMLX": case ".MSG":
            return new EmailConfig { DefaultRender = false };
        default:
            return null; // fall back to the format's default config
    }
}

¿Fue útil esta página?