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 viven en el espacio de nombres Doconut.

Ese único espacio de nombres es nuevo. La biblioteca .NET Standard anterior distribuía estos tipos entre Doconut.Configs, Doconut.Configs.View y Doconut.Models. Los nombres de tipo no cambiaron — en la mayoría de los archivos la edición completa consiste en eliminar dos líneas using. Consulte la guía de migración.

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 redirección a PDF, false convierte primero a un PDF en memoria y luego usa el visor PDF. Esa ruta es a menudo ú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 anula 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 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 número de páginas escaneadas en busca de enlaces; 0 significa todas las páginas.
boolCompressImagesfalseComprime las imágenes incrustadas antes del renderizado.
intCompressQuality100Calidad JPEG usada cuando la compresión está habilitada.
boolResizeImagesfalseRedimensiona las imágenes incrustadas antes del renderizado.
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.
boolSplitSegmentsfalseReúne palabras divididas entre 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. 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.
intPaperHeight841Alto personalizado en puntos.
boolRemovePaperMarginfalseElimina los márgenes de página del documento.
boolRenderPageColortrueConserva 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, especialmente útiles en Linux/containers.
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 modo horizontal.
boolAutoFitContentsfalseAjuste automático de alturas de fila y anchos de columna.
boolRemoveEmptyContenttrueReduce la salida excluyendo contenido vacío.
boolCalculateFormulatrueRecalcula fórmulas antes del renderizado.
boolShowRowColumnHeaderstrueIncluye encabezados de hoja de cálculo.
boolExportPdfAfalseUsa PDF/A en la ruta PDF.
boolSplitWorksheetsfalseMantiene las hojas de cálculo como grupos de páginas separados.
boolShowEmptyWorkSheetsfalseIncluye hojas de cálculo vacías.
boolExportLandscapefalseFuerza la exportación en modo horizontal.
boolExportOnePagePerSheetfalseAjusta cada hoja a una página de salida.
boolMemoryOptimizationPreferencetrueReduce el pico de memoria, potencialmente a costa de algo de velocidad.
boolAutoTrimWorksheetRenderRangetrueRenderiza solo el rango usado visible cuando no existe un área de impresión explícita.
boolAutoTrimPreserveExistingPrintAreatrueConserva 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 encabezados de fila/columna.
List<string>SheetNamesvacíoRestringe el renderizado a hojas 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, todos 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 durante la apertura; usa metadatos y renderiza bajo demanda.
PdfConfigPdfConfignueva instanciaConfiguraciones para 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 de CAD; false usa la redirección a PDF.
PdfConfigPdfConfignueva instanciaConfiguraciones de la ruta PDF.
boolExportPdfAfalseSalida de archivo 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, anulando la selección 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 rasterizado: Low, Medium o High.
RenderQualityQualityTextMediumCalidad de texto: Low, Medium o High.

EmailConfig

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

TipoPropiedadPredeterminadoComportamiento
boolDefaultRendertrueRenderizado nativo de correo; false usa la redirección a PDF.
PdfConfigPdfConfignueva instanciaConfiguraciones de la ruta PDF.
Encoding?EmailEncodingnullSobrescribe la codificación del mensaje.
Encoding?SubjectEncodingnullSobrescribe la codificación del asunto.
Encoding?BodyEncodingnullSobrescribe la codificación del cuerpo.
boolSkipExternalImagesfalseNo carga imágenes referenciadas remotamente. Recomendado para correo no confiable.
boolRemoveLastWhitePagefalseElimina una página en blanco final.
boolUseAntiAliasingfalseHabilita anti‑aliasing.
boolUseHighQualityRenderingfalsePrefiere un renderizado más limpio pero más lento.
TimeSpan?TimeZoneOffsetnullSobrescribe la zona horaria usada para fechas.
boolForcePageSizefalseFuerza 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.

ConfigPropiedadPredeterminadoComportamiento
ImageConfigMaxImagePixelSize3000Ancho/alto máximo. 0 significa ilimitado; valores distintos de cero menores que 50 se ignoran.
ImageConfigTransparentPngtrueConserva la transparencia PNG; false usa un fondo blanco.
TiffConfigsin propiedades adicionalesDPI 200Usa solo BaseConfig; admite TIFF multipágina.
PsdConfigMaxImagePixelSize3000Misma validación 0/mínimo‑50 que ImageConfig; DPI predeterminado 100.

DicomConfig

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

TipoPropiedadPredeterminadoComportamiento
intHorizontalResolution100 efectivoDPI horizontal explícito; de lo contrario ImageResolution, luego 100.
intVerticalResolution100 efectivoDPI vertical explícito; de lo contrario ImageResolution, luego 100.
intAnimationFrameDelayMs100Retardo de animación multicuadro; la temporización GIF usa unidades de 10 ms.
ushortLoopCount00 bucle infinito; valores positivos se detienen después de ese número de repeticiones.
DicomDisplayModeDisplayModeAnimationAndFramesAnimationOnly, FramesOnly o visión combinada de animación y 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 el renderizado de texto.

Use WordConfig cuando el texto plano necesite 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 de archivo 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 de archivo PDF/A de archivo.

HtmlConfig, EpubConfig, MhtConfig y XpsConfig

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

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

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?