Configurações de Formato

Opções completas de renderização por formato

Todo documento abre com uma implementação de BaseConfig. Passe uma para OpenDocumentAsync (ou OpenDocument) ou deixe o catálogo de formatos criar a sua padrão. Todas as classes abaixo estão no namespace Doconut.

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

Herança e configurações PDF aninhadas

Todo formato herda as cinco propriedades de BaseConfig. Formatos que podem redirecionar através de PDF expõem um PdfConfig aninhado. Em WordConfig, ExcelConfig e PptConfig, AllowSearch e AllowCopy são propriedades de conveniência que leem e gravam o PdfConfig aninhado.

DefaultRender = true seleciona o renderizador nativo do formato. Em formatos com redirecionamento PDF, false converte primeiro para um PDF em memória e então usa o visualizador de PDF. Esse caminho costuma ser útil para busca por coordenadas de texto, mas custa uma conversão extra.

Salvo indicação em contrário, as tabelas mostram os valores padrão dos construtores/propriedades. O catálogo de formatos automático substitui deliberadamente dois deles: ele cria ExcelConfig com SplitWorksheets = true e MhtConfig com DefaultRender = false.

BaseConfig

TipoPropriedadePadrãoComportamento
intImageResolution00 usa o padrão do formato. Faixa explícita válida é 25‑300 DPI; atribuições inválidas são ignoradas.
stringDocumentCulture""Local para datas e números. Valores não vazios são aparados; atribuições vazias são ignoradas.
stringPassword""Senha de documento protegido. DocOptions.Password é copiada aqui automaticamente.
boolShowUItruePropriedade de compatibilidade; o renderizador atual não a usa para controlar a barra de ferramentas do navegador.
boolCachePagestrueArmazena em cache imagens de páginas renderizadas para a sessão do documento.

PdfConfig

Formatos: PDF. DPI padrão: 200.

TipoPropriedadePadrãoComportamento
boolDefaultRendertrueChave de compatibilidade. A fábrica atual usa o visualizador PDF nativo.
boolAllowSearchfalseConstrói/usa o índice de busca de texto do PDF. Requer a capacidade de licença Search para solicitações.
boolAllowCopyfalsePermite operações de seleção/cópia de texto.
boolExtractHyperlinksfalseExtrai retângulos de links para sobreposições do cliente.
intHyperlinksPageCount0Máximo de páginas escaneadas em busca de links; 0 significa todas as páginas.
boolCompressImagesfalseCompacta imagens incorporadas antes da renderização.
intCompressQuality100Qualidade JPEG usada quando a compactação está habilitada.
boolResizeImagesfalseRedimensiona imagens incorporadas antes da renderização.
intResizeResolution300DPI alvo para imagens redimensionadas.
boolCompressFastfalsePrefere o caminho de compactação mais rápido e de menor qualidade.
boolFixInvalidImagesfalseTenta reparar imagens incorporadas inválidas.
boolSplitSegmentsfalseReúne palavras divididas em segmentos de linha para melhorar busca/cópia.

showHyperlinks em ViewerConfig controla a sobreposição do cliente, enquanto ExtractHyperlinks controla a extração no servidor. Ative ambos.

WordConfig

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

TipoPropriedadePadrãoComportamento
boolDefaultRendertrueRenderização nativa do Word; false usa o redirecionamento PDF.
PdfConfigPdfConfignova instânciaConfigurações usadas pelo caminho PDF/busca.
DocPaperSizePaperSizeA4Tamanho de papel de saída. Use Custom com largura/altura.
intPaperWidth595Largura personalizada em pontos.
intPaperHeight841Altura personalizada em pontos.
boolRemovePaperMarginfalseRemove as margens de página do documento.
boolRenderPageColortruePreserva a cor de página configurada no Word; false renderiza páginas brancas.
boolExportPdfAfalseUsa PDF/A de arquivamento no caminho PDF.
Encoding?FileEncodingnullSubstitui a codificação de origem.
stringFontInfo""Informações de substituição de fontes.
string[]?FontFoldersnullDiretórios de fontes adicionais — útil em um servidor que não possui as fontes usadas pelos documentos.
boolAllowSearchfalseDelegado para PdfConfig.AllowSearch.
boolAllowCopyfalseDelegado para PdfConfig.AllowCopy.
TableAutoFitBehaviorAutoFitAllTablesNoneNone, AutoFitToContents ou AutoFitToWindow.

ExcelConfig

Formatos: XLS, XLSX, XLSM, XLSB, XLTX, XLTM, ODS, CSV. DPI padrão: 200.

TipoPropriedadePadrãoComportamento
boolDefaultRendertrueRenderização nativa da planilha; false usa o redirecionamento PDF.
PdfConfigPdfConfignova instânciaConfigurações para o caminho PDF/pesquisa.
ExcelPaperSizePaperSizePaperA4Tamanho de papel de saída.
doublePaperMargins0.25Margens da página em polegadas.
boolPaperLandscapetrueRenderização da planilha em modo paisagem.
boolAutoFitContentsfalseAjusta automaticamente alturas de linhas e larguras de colunas.
boolRemoveEmptyContenttrueAperta a saída excluindo conteúdo vazio.
boolCalculateFormulatrueRecalcula fórmulas antes da renderização.
boolShowRowColumnHeaderstrueInclui cabeçalhos da planilha.
boolExportPdfAfalseUsa PDF/A no caminho PDF.
boolSplitWorksheetsfalseMantém as planilhas como grupos de páginas separados.
boolShowEmptyWorkSheetsfalseInclui planilhas vazias.
boolExportLandscapefalseForça exportação em modo paisagem.
boolExportOnePagePerSheetfalseAjusta cada planilha a uma página de saída.
boolMemoryOptimizationPreferencetrueReduz o pico de memória, possivelmente trocando um pouco de velocidade.
boolAutoTrimWorksheetRenderRangetrueRenderiza apenas o intervalo usado visível quando não existe área de impressão explícita.
boolAutoTrimPreserveExistingPrintAreatruePreserva áreas de impressão definidas na pasta de trabalho durante o auto‑corte.
string?PrintAreanullIntervalo explícito como "A1:Z100".
boolPrintGridlinesfalseImprime linhas de grade da planilha.
boolPrintHeadingsfalseImprime cabeçalhos de linhas/colunas.
List<string>SheetNamesvazioRestringe a renderização a planilhas nomeadas.
CustomStyleCell?CustomStylesnullSubstituições opcionais de formatação de data/decimal/integer.
boolAllowSearchfalseDelegado a PdfConfig.AllowSearch.
boolAllowCopyfalseDelegado a PdfConfig.AllowCopy.

CustomStyleCell expõe CustomStyleDateTime, CustomStyleNumberDecimal e CustomStyleNumberInteger, todos strings anuláveis.

new ExcelConfig() define SplitWorksheets como false; abrir um arquivo Excel sem uma configuração explícita usa o catálogo de formatos, que o define como true.

PptConfig

Formatos: PPT, PPTX, PPTM, PPSX, PPSM, POT, POTX, POTM, ODP. DPI padrão: 200.

TipoPropriedadePadrãoComportamento
boolDefaultRendertrueRenderização nativa do slide; false usa o redirecionamento PDF.
boolFastLoadfalseEvita renderizar o primeiro slide durante a abertura; usa metadados e renderiza sob demanda.
PdfConfigPdfConfignova instânciaConfigurações para comportamento PDF/pesquisa.
stringFontInfo""Informações de substituição de fontes.
string[]?FontFoldersnullDiretórios de fontes adicionais.
boolAllowSearchfalseDelegado a PdfConfig.AllowSearch.
boolAllowCopyfalseDelegado a PdfConfig.AllowCopy.

Instale as fontes usadas nas apresentações no servidor, ou aponte FontFolders para uma pasta que as contenha. Um Windows Server sem Office possui muito menos fontes que uma máquina de desenvolvimento, e fontes ausentes são substituídas sem gerar erro.

CadConfig

Formatos: DWG, DXF, DGN. DPI padrão: 200.

TipoPropriedadePadrãoComportamento
boolDefaultRendertrueRenderização nativa CAD; false usa o redirecionamento PDF.
PdfConfigPdfConfignova instânciaConfigurações do caminho PDF.
boolExportPdfAfalseSaída de PDF/A para arquivamento.
boolShowColortrueCor em vez de monocromático.
boolWhiteBackgroundtrueFundo branco em vez de preto.
shortLineWidth25Largura do traço CAD.
boolShowLayoutsfalseRenderiza abas de layout.
boolShowModeltrueRenderiza o espaço modelo.
boolCheck3DSolidtrueProcessa sólidos 3D.
boolExportAllLayoutsfalseExporta todos os layouts, sobrescrevendo a seleção modelo/layout.
boolLimitMinimumSizefalseAplica MinimumSize.
intMinimumSize700Tamanho mínimo de saída em pixels.
boolLimitMaximumSizefalseAplica MaximumSize.
intMaximumSize700Tamanho máximo de saída em pixels.
boolShowAllLayoutsDgnfalseInclui todos os layouts DGN.
boolAutomaticLayoutScalingtrueRedimensiona layouts automaticamente.
floatPdfMargins0.5Margem PDF em polegadas.
RenderQualityQualityImageLowQualidade raster: Low, Medium ou High.
RenderQualityQualityTextMediumQualidade de texto: Low, Medium ou High.

EmailConfig

Formatos: EML, EMLX, MSG. DPI padrão: 200.

TipoPropriedadePadrãoComportamento
boolDefaultRendertrueRenderização nativa de e‑mail; false usa o redirecionamento para PDF.
PdfConfigPdfConfignova instânciaConfigurações de caminho PDF.
Encoding?EmailEncodingnullSubstitui a codificação da mensagem.
Encoding?SubjectEncodingnullSubstitui a codificação do assunto.
Encoding?BodyEncodingnullSubstitui a codificação do corpo.
boolSkipExternalImagesfalseNão carrega imagens referenciadas remotamente. Recomendado para e‑mail não confiável.
boolRemoveLastWhitePagefalseRemove uma página em branco final.
boolUseAntiAliasingfalseHabilita anti‑aliasing.
boolUseHighQualityRenderingfalsePrefere renderização mais limpa e lenta.
TimeSpan?TimeZoneOffsetnullSubstitui o fuso horário usado nas datas.
boolForcePageSizefalseForça dimensões de página fixas.

ImageConfig, TiffConfig e PsdConfig

ImageConfig abrange JPG, JPEG, JPE, PNG, BMP, GIF, ICO, EPS, TGA, WEBP, CDR, CMX, DNG, EMF, WMF, AVIF e SVG. Seu DPI padrão é 100.

ConfiguraçãoPropriedadePadrãoComportamento
ImageConfigMaxImagePixelSize3000Largura/altura máxima. 0 significa ilimitado; valores diferentes de zero abaixo de 50 são ignorados.
ImageConfigTransparentPngtruePreserva a transparência PNG; false usa fundo branco.
TiffConfigno additional propertiesDPI 200Usa apenas BaseConfig; suporta TIFF multipágina.
PsdConfigMaxImagePixelSize3000Mesma validação 0/mínimo 50 de ImageConfig; DPI padrão é 100.

DicomConfig

Formatos: DCM, IMA. DPI efetivo padrão: 100. Requer o plugin DICOM. Neste pacote, arquivos DICOM são renderizados completamente, mas metadados técnicos não estão disponíveis — veja DICOM Plugin.

TipoPropriedadePadrãoComportamento
intHorizontalResolution100 efetivoDPI horizontal explícito; caso contrário ImageResolution, então 100.
intVerticalResolution100 efetivoDPI vertical explícito; caso contrário ImageResolution, então 100.
intAnimationFrameDelayMs100Atraso de animação de múltiplos quadros; temporização GIF usa unidades de 10 ms.
ushortLoopCount00 repete indefinidamente; valores positivos param após essa contagem.
DicomDisplayModeDisplayModeAnimationAndFramesAnimationOnly, FramesOnly ou visão geral combinada mais quadros estáticos.

TxtConfig

Formato: TXT. DPI padrão: 200.

TipoPropriedadePadrãoComportamento
DocPaperSizePaperSizeA4Tamanho de papel de saída.
Encoding?FileEncodingnullnull usa UTF-8.
stringFontInformation""Informação de fonte para renderização de texto.

Use WordConfig quando texto simples precisar de comportamento de layout de página mais avançado.

ProjectConfig

Formatos: MPP, MPPX, MPX. DPI padrão: 200.

TipoPropriedadePadrãoComportamento
boolDefaultRendertrueImagem Gantt nativa; false usa um caminho PDF baseado em texto.
PdfConfigPdfConfignova instânciaConfigurações de caminho PDF.
boolExportPdfAtrueSaída PDF/A de arquivamento.
MppPaperSizePaperSizeLedgerTamanho de papel de saída do projeto.
MppTimeScaleTimeScaleMonthsDays ou Months.
MppFormatPresentationFormatGanttChartGanttChart, TaskUsage, ResourceUsage, ResourceSheet ou TaskSheet.

Para busca exata por coordenadas de texto, use DefaultRender = false.

VisioConfig

Formatos: VSD, VSDX, VSS, VSSX, VST, VSTX, VDX, VSX, VSDM. DPI padrão: 200.

TipoPropriedadePadrãoComportamento
boolDefaultRendertrueRenderização nativa de diagrama; false usa o redirecionamento para PDF.
PdfConfigPdfConfignova instânciaConfigurações de caminho PDF.
boolExportPdfAtrueSaída PDF/A de arquivamento.

HtmlConfig, EpubConfig, MhtConfig e XpsConfig

Todos os quatro têm DPI padrão 200 e expõem um PdfConfig aninhado.

ConfigFormatosDefaultRenderPropriedades/comportamento adicionais
HtmlConfigHTML, HTMtrueRenderização nativa; use false para um caminho de pesquisa PDF baseado em texto.
EpubConfigEPUBtrueRenderização nativa; false usa PDF.
MhtConfigMHT, MHTMLtrue na classe; false no catálogo automático. A abertura normal sem configuração usa o redirecionamento PDF pesquisável. Uma instância padrão construída explicitamente renderiza nativamente.
XpsConfigXPSfalseUsa o caminho PDF por padrão; defina true para renderização nativa de imagem.

Exemplos de configuração por família

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
    }
};

Seleção por extensão

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 → redirecionamento PDF → pesquisa de texto nativa com precisão de pixel
        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
    }
}

Esta página foi útil?