Configuraciones de Formato

Opciones completas de renderizado por formato

Cada documento se abre con una implementación de BaseConfig. Pase una a OpenDocumentAsync 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 automático de formatos sobrescribe deliberadamente dos de ellos: crea ExcelConfig con SplitWorksheets = true, y MhtConfig con DefaultRender = false.

BaseConfig

TipoPropiedadPredeterminadoComportamiento
intImageResolution00 usa el valor predeterminado del formato. El rango explícito válido es 25-300 DPI; las asignaciones invá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.
boolAllowSearchfalseConstruir/utilizar el índice de búsqueda de texto PDF. Requiere la capacidad de licencia Search para las solicitudes.
boolAllowCopyfalsePermitir operaciones de selección/copia de texto.
boolExtractHyperlinksfalseExtraer rectángulos de enlaces para superposiciones del cliente.
intHyperlinksPageCount0Número máximo de páginas escaneadas en busca de enlaces; 0 significa todas las páginas.
boolCompressImagesfalseComprimir imágenes incrustadas antes de renderizar.
intCompressQuality100Calidad JPEG utilizada cuando la compresión está habilitada.
boolResizeImagesfalseRedimensionar imágenes incrustadas antes de renderizar.
intResizeResolution300DPI objetivo para imágenes redimensionadas.
boolCompressFastfalsePreferir la ruta de compresión más rápida y de menor calidad.
boolFixInvalidImagesfalseIntentar reparar imágenes incrustadas inválidas.
boolSplitSegmentsfalseReunir 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 del servidor. Habilite 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.
PdfConfigPdfConfignueva instanciaConfiguraciones 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.
boolRemovePaperMarginfalseEliminar los márgenes de página del documento.
boolRenderPageColortruePreservar el color de página configurado por Word; false renderiza páginas blancas.
boolExportPdfAfalseUsar PDF/A de archivo en la ruta PDF.
Encoding?FileEncodingnullSobrescribir la codificación de origen.
stringFontInfo""Información de sustitución de fuentes.
string[]?FontFoldersnullDirectorios de fuentes adicionales, especialmente útiles en Linux/contenedores.
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.
PdfConfigPdfConfignueva instanciaConfiguraciones 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.
boolRemoveEmptyContenttrueAjustar la salida excluyendo contenido vacío.
boolCalculateFormulatrueRecalcular fórmulas antes de renderizar.
boolShowRowColumnHeaderstrueIncluir encabezados de hoja de cálculo.
boolExportPdfAfalseUsar PDF/A en la ruta PDF.
boolSplitWorksheetsfalseMantener hojas de cálculo como grupos de páginas separados.
boolShowEmptyWorkSheetsfalseIncluir hojas de cálculo vacías.
boolExportLandscapefalseForzar exportación en orientación horizontal.
boolExportOnePagePerSheetfalseAjustar cada hoja de cálculo a una página de salida.
boolMemoryOptimizationPreferencetrueReducir la memoria máxima, potencialmente a costa de algo de velocidad.
boolAutoTrimWorksheetRenderRangetrueRenderizar solo el rango usado visible cuando no existe un área de impresión explícita.
boolAutoTrimPreserveExistingPrintAreatruePreservar áreas de impresión definidas en el libro durante el auto recorte.
string?PrintAreanullRango explícito como "A1:Z100".
boolPrintGridlinesfalseImprimir líneas de cuadrícula de la hoja.
boolPrintHeadingsfalseImprimir encabezados de filas/columnas.
List<string>SheetNamesemptyRestringir el renderizado a hojas de cálculo con nombre.
CustomStyleCell?CustomStylesnullSobrescrituras opcionales de formato de fecha/decimal/entero.
boolAllowSearchfalseDelegado a PdfConfig.AllowSearch.
boolAllowCopyfalseDelegado 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.
boolFastLoadfalseEvitar renderizar la primera diapositiva al abrir; usar metadatos y renderizar bajo demanda.
PdfConfigPdfConfignueva instanciaConfiguraciones para el comportamiento PDF/búsqueda.
stringFontInfo""Información de sustitución de fuentes.
string[]?FontFoldersnullDirectorios de fuentes adicionales.
boolAllowSearchfalseDelegado a PdfConfig.AllowSearch.
boolAllowCopyfalseDelegado a PdfConfig.AllowCopy.

En Linux y macOS, el renderizado de presentaciones con el motor actual requiere libgdiplus y System.Drawing.EnableUnixSupport=true. Instale las fuentes usadas por la presentación o proporcione FontFolders.

CadConfig

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

TipoPropiedadPredeterminadoComportamiento
boolDefaultRendertrueRenderizado nativo CAD; false usa la redirección a PDF.
PdfConfigPdfConfignueva instanciaConfiguraciones de la ruta PDF.
boolExportPdfAfalseSalida PDF/A de archivo.
boolShowColortrueColor en lugar de monocromo.
boolWhiteBackgroundtrueBlanco en lugar de fondo negro.
shortLineWidth25Ancho de trazo CAD.
boolShowLayoutsfalseRenderizar pestañas de diseño.
boolShowModeltrueRenderizar espacio de modelo.
boolCheck3DSolidtrueProcesar sólidos 3D.
boolExportAllLayoutsfalseExportar todos los diseños, sobrescribiendo la selección de modelo/diseño.
boolLimitMinimumSizefalseAplicar MinimumSize.
intMinimumSize700Tamaño mínimo de salida en píxeles.
boolLimitMaximumSizefalseAplicar MaximumSize.
intMaximumSize700Tamaño máximo de salida en píxeles.
boolShowAllLayoutsDgnfalseIncluir todos los diseños DGN.
boolAutomaticLayoutScalingtrueEscalar diseños automáticamente.
floatPdfMargins0.5Margen PDF en pulgadas.
RenderQualityQualityImageLowCalidad de raster: Low, Medium o High.
RenderQualityQualityTextMediumCalidad de texto: Low, Medium o High.

EmailConfig

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

TipoPropiedadPredeterminadoComportamiento
boolDefaultRendertrueRenderizado nativo de correo electrónico; false usa la redirección a PDF.
PdfConfigPdfConfignueva instanciaConfiguraciones de la ruta PDF.
Encoding?EmailEncodingnullSobrescribir la codificación del mensaje.
Encoding?SubjectEncodingnullSobrescribir la codificación del asunto.
Encoding?BodyEncodingnullSobrescribir la codificación del cuerpo.
boolSkipExternalImagesfalseNo cargar imágenes referenciadas remotamente. Recomendado para correos no confiables.
boolRemoveLastWhitePagefalseEliminar una página en blanco final.
boolUseAntiAliasingfalseHabilitar antialiasing.
boolUseHighQualityRenderingfalsePreferir renderizado más limpio y lento.
TimeSpan?TimeZoneOffsetnullSobrescribir la zona horaria usada para fechas.
boolForcePageSizefalseForzar dimensiones de página fijas.

ImageConfig, TiffConfig y PsdConfig

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
ImageConfigMaxImagePixelSize3000Ancho/alto máximo. 0 significa ilimitado; los valores distintos de cero por debajo de 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.

DicomConfig

Formatos: DCM, IMA. DPI efectivo predeterminado: 100. Requiere el plugin DICOM.

TipoPropiedadPredeterminadoComportamiento
intHorizontalResolution100 effectiveDPI horizontal explícito; de lo contrario ImageResolution, luego 100.
intVerticalResolution100 effectiveDPI vertical explícito; de lo contrario ImageResolution, luego 100.
intAnimationFrameDelayMs100Retardo de fotogramas de animación multiframe; el temporizador GIF usa unidades de 10 ms.
ushortLoopCount00 bucle infinito; los valores positivos se detienen después de ese recuento.
DicomDisplayModeDisplayModeAnimationAndFramesAnimationOnly, FramesOnly o vista combinada más fotogramas estáticos.

TxtConfig

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.

ProjectConfig

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

TipoPropiedadPredeterminadoComportamiento
boolDefaultRendertrueImagen Gantt nativa; false usa una ruta PDF basada en texto.
PdfConfigPdfConfignueva instanciaConfiguraciones de la 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 una búsqueda exacta por coordenadas de texto, use DefaultRender = false.

VisioConfig

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

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

HtmlConfig, EpubConfig, MhtConfig y XpsConfig

Los cuatro usan 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[] { "/usr/share/fonts/truetype" },
        AllowSearch = true
    },
    new ExcelConfig
    {
        PaperLandscape = true,
        AutoFitContents = true,
        CalculateFormula = true,
        SplitWorksheets = false,
        PrintGridlines = false
    },
    new PptConfig
    {
        FastLoad = true,
        FontFolders = new[] { "/usr/share/fonts/truetype" },
        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) => extUpper switch
{
    ".DOC" or ".DOCX" or ".DOT" or ".DOTX" or ".ODT" => new WordConfig
    {
        AutoFitAllTables = WordConfig.TableAutoFitBehavior.AutoFitToWindow,
        PaperSize = DocPaperSize.Tabloid,
        PdfConfig = new PdfConfig { ExtractHyperlinks = true, HyperlinksPageCount = 5, AllowCopy = true }
    },
    ".PDF" => new PdfConfig { AllowSearch = true, AllowCopy = true },
    ".XLS" or ".XLSX" or ".ODS" or ".CSV" => new ExcelConfig { AllowSearch = true, AllowCopy = true },
    ".DCM" or ".IMA" => new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames },
    // DefaultRender = false → PDF redirect → pixel-accurate native text search
    ".HTML" or ".HTM" => new HtmlConfig { DefaultRender = false },
    ".EML" or ".EMLX" or ".MSG" => new EmailConfig { DefaultRender = false },
    _ => null // fall back to the format's default config
};

¿Fue útil esta página?