Configurazioni Formato

Opzioni di rendering complete per formato

Ogni documento si apre con un'implementazione di BaseConfig. Passane una a OpenDocumentAsync oppure lascia che il catalogo dei formati crei quella predefinita. Tutte le classi di seguito si trovano nello spazio dei nomi Doconut.

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

Ereditarietà e impostazioni PDF nidificate

Ogni formato eredita le cinque proprietà di BaseConfig. I formati che possono reindirizzare tramite PDF espongono un PdfConfig nidificato. In WordConfig, ExcelConfig e PptConfig, AllowSearch e AllowCopy sono proprietà di convenienza che leggono e scrivono il PdfConfig nidificato.

DefaultRender = true seleziona il renderer nativo del formato. Nei formati con reindirizzamento PDF, false converte prima in un PDF in memoria e poi utilizza il visualizzatore PDF. Questo percorso è spesso utile per la ricerca basata su coordinate di testo, ma comporta una conversione aggiuntiva.

Salvo indicazione contraria, le tabelle mostrano i valori predefiniti dei costruttori/proprietà. Il catalogo automatico dei formati sovrascrive deliberatamente due di essi: crea ExcelConfig con SplitWorksheets = true e MhtConfig con DefaultRender = false.

BaseConfig

TipoProprietàPredefinitoComportamento
intImageResolution00 utilizza il valore predefinito del formato. L'intervallo esplicito valido è 25‑300 DPI; le assegnazioni non valide vengono ignorate.
stringDocumentCulture""Locale per date e numeri. I valori non vuoti vengono trimmati; le assegnazioni vuote vengono ignorate.
stringPassword""Password del documento protetto. DocOptions.Password viene copiata qui automaticamente.
boolShowUItrueProprietà di compatibilità; l'attuale renderer non la utilizza per controllare la barra degli strumenti del browser.
boolCachePagestrueMemorizza nella cache le immagini delle pagine renderizzate per la sessione del documento.

PdfConfig

Formati: PDF. DPI predefinito: 200.

TipoProprietàPredefinitoComportamento
boolDefaultRendertrueInterruttore di compatibilità. L'attuale factory utilizza il visualizzatore PDF nativo.
boolAllowSearchfalseCostruisce/utilizza l'indice di ricerca testo PDF. Richiede la capacità di licenza Search per le richieste.
boolAllowCopyfalseConsente operazioni di selezione/copia del testo.
boolExtractHyperlinksfalseEstrae i rettangoli dei collegamenti per le sovrapposizioni client.
intHyperlinksPageCount0Numero massimo di pagine scansionate per i collegamenti; 0 significa tutte le pagine.
boolCompressImagesfalseComprimi le immagini incorporate prima del rendering.
intCompressQuality100Qualità JPEG utilizzata quando la compressione è abilitata.
boolResizeImagesfalseRidimensiona le immagini incorporate prima del rendering.
intResizeResolution300DPI target per le immagini ridimensionate.
boolCompressFastfalsePreferisce il percorso di compressione più veloce e di qualità inferiore.
boolFixInvalidImagesfalseTenta di riparare le immagini incorporate non valide.
boolSplitSegmentsfalseRiunisce le parole divise tra segmenti di linea per migliorare ricerca/copia.

showHyperlinks in ViewerConfig controlla la sovrapposizione client, mentre ExtractHyperlinks controlla l'estrazione server. Abilita entrambi.

WordConfig

Formati: DOC, DOCX, DOCM, DOT, DOTX, DOTM, RTF, ODT, OTT, XML. DPI predefinito: 200.

TipoProprietàPredefinitoComportamento
boolDefaultRendertrueRendering nativo di Word; false utilizza il reindirizzamento PDF.
PdfConfigPdfConfignew instanceImpostazioni utilizzate dal percorso PDF/ricerca.
DocPaperSizePaperSizeA4Formato della carta di output. Usa Custom con larghezza/altezza.
intPaperWidth595Larghezza personalizzata in punti.
intPaperHeight841Altezza personalizzata in punti.
boolRemovePaperMarginfalseRimuove i margini della pagina del documento.
boolRenderPageColortruePreserva il colore della pagina configurato in Word; false rende pagine bianche.
boolExportPdfAfalseUtilizza PDF/A di archivio nel percorso PDF.
Encoding?FileEncodingnullSovrascrive la codifica sorgente.
stringFontInfo""Informazioni sulla sostituzione dei font.
string[]?FontFoldersnullDirectory di font aggiuntive, particolarmente utili in Linux/container.
boolAllowSearchfalseDelega a PdfConfig.AllowSearch.
boolAllowCopyfalseDelega a PdfConfig.AllowCopy.
TableAutoFitBehaviorAutoFitAllTablesNoneNone, AutoFitToContents o AutoFitToWindow.

ExcelConfig

Formati: XLS, XLSX, XLSM, XLSB, XLTX, XLTM, ODS, CSV. DPI predefinito: 200.

TipoProprietàPredefinitoComportamento
boolDefaultRendertrueRendering nativo del foglio; false utilizza il reindirizzamento PDF.
PdfConfigPdfConfignew instanceImpostazioni per il percorso PDF/ricerca.
ExcelPaperSizePaperSizePaperA4Formato della carta di output.
doublePaperMargins0.25Margini della pagina in pollici.
boolPaperLandscapetrueRendering del foglio in orizzontale.
boolAutoFitContentsfalseAdatta automaticamente altezze delle righe e larghezze delle colonne.
boolRemoveEmptyContenttrueStringe l'output escludendo contenuti vuoti.
boolCalculateFormulatrueRicalcola le formule prima del rendering.
boolShowRowColumnHeaderstrueInclude le intestazioni del foglio di calcolo.
boolExportPdfAfalseUtilizza PDF/A nel percorso PDF.
boolSplitWorksheetsfalseMantiene i fogli di lavoro come gruppi di pagine separati.
boolShowEmptyWorkSheetsfalseInclude fogli di lavoro vuoti.
boolExportLandscapefalseForza l'esportazione in orizzontale.
boolExportOnePagePerSheetfalseAdatta ogni foglio di lavoro a una pagina di output.
boolMemoryOptimizationPreferencetrueRiduce la memoria di picco, potenzialmente a scapito di qualche velocità.
boolAutoTrimWorksheetRenderRangetrueRenderizza solo l'intervallo usato visibile quando non esiste un'area di stampa esplicita.
boolAutoTrimPreserveExistingPrintAreatruePreserva le aree di stampa definite nella cartella di lavoro durante l'auto-ritaglio.
string?PrintAreanullIntervallo esplicito, ad esempio "A1:Z100".
boolPrintGridlinesfalseStampa le linee della griglia del foglio di lavoro.
boolPrintHeadingsfalseStampa le intestazioni di righe/colonne.
List<string>SheetNamesemptyLimita il rendering ai fogli di lavoro nominati.
CustomStyleCell?CustomStylesnullSovrascritture opzionali di formattazione data/decimale/intero.
boolAllowSearchfalseDelega a PdfConfig.AllowSearch.
boolAllowCopyfalseDelega a PdfConfig.AllowCopy.

CustomStyleCell espone CustomStyleDateTime, CustomStyleNumberDecimal e CustomStyleNumberInteger, tutti stringhe nullable.

new ExcelConfig() imposta SplitWorksheets a false; aprire un file Excel senza una configurazione esplicita utilizza il catalogo dei formati, che lo imposta a true.

PptConfig

Formati: PPT, PPTX, PPTM, PPSX, PPSM, POT, POTX, POTM, ODP. DPI predefinito: 200.

TipoProprietàPredefinitoComportamento
boolDefaultRendertrueRendering nativo delle diapositive; false utilizza il reindirizzamento PDF.
boolFastLoadfalseEvita il rendering della prima diapositiva durante l'apertura; usa i metadati e renderizza su richiesta.
PdfConfigPdfConfignew instanceImpostazioni per il comportamento PDF/ricerca.
stringFontInfo""Informazioni sulla sostituzione dei font.
string[]?FontFoldersnullDirectory di font aggiuntive.
boolAllowSearchfalseDelega a PdfConfig.AllowSearch.
boolAllowCopyfalseDelega a PdfConfig.AllowCopy.

Su Linux e macOS, il rendering delle presentazioni con l'attuale engine richiede libgdiplus e System.Drawing.EnableUnixSupport=true. Installa i font utilizzati dalla presentazione o fornisci FontFolders.

CadConfig

Formati: DWG, DXF, DGN. DPI predefinito: 200.

TipoProprietàPredefinitoComportamento
boolDefaultRendertrueRendering nativo CAD; false utilizza il reindirizzamento PDF.
PdfConfigPdfConfignew instanceImpostazioni del percorso PDF.
boolExportPdfAfalseOutput PDF/A di archivio.
boolShowColortrueColore anziché monocromatico.
boolWhiteBackgroundtrueBianco invece di sfondo nero.
shortLineWidth25Larghezza del tratto CAD.
boolShowLayoutsfalseRenderizza le schede di layout.
boolShowModeltrueRenderizza lo spazio modello.
boolCheck3DSolidtrueProcessa solidi 3D.
boolExportAllLayoutsfalseEsporta tutti i layout, sovrascrivendo la selezione modello/layout.
boolLimitMinimumSizefalseApplica MinimumSize.
intMinimumSize700Dimensione minima dell'output in pixel.
boolLimitMaximumSizefalseApplica MaximumSize.
intMaximumSize700Dimensione massima dell'output in pixel.
boolShowAllLayoutsDgnfalseInclude tutti i layout DGN.
boolAutomaticLayoutScalingtrueScala automaticamente i layout.
floatPdfMargins0.5Margine PDF in pollici.
RenderQualityQualityImageLowQualità raster: Low, Medium o High.
RenderQualityQualityTextMediumQualità del testo: Low, Medium o High.

EmailConfig

Formati: EML, EMLX, MSG. DPI predefinito: 200.

TipoProprietàPredefinitoComportamento
boolDefaultRendertrueRendering nativo dell'email; false utilizza il reindirizzamento PDF.
PdfConfigPdfConfignew instanceImpostazioni del percorso PDF.
Encoding?EmailEncodingnullSovrascrive la codifica del messaggio.
Encoding?SubjectEncodingnullSovrascrive la codifica dell'oggetto.
Encoding?BodyEncodingnullSovrascrive la codifica del corpo.
boolSkipExternalImagesfalseNon carica immagini referenziate da remoto. Raccomandato per email non attendibili.
boolRemoveLastWhitePagefalseRimuove una pagina bianca finale.
boolUseAntiAliasingfalseAbilita l'anti-aliasing.
boolUseHighQualityRenderingfalsePreferisce un rendering più pulito e più lento.
TimeSpan?TimeZoneOffsetnullSovrascrive il fuso orario usato per le date.
boolForcePageSizefalseForza dimensioni di pagina fisse.

ImageConfig, TiffConfig e PsdConfig

ImageConfig copre JPG, JPEG, JPE, PNG, BMP, GIF, ICO, EPS, TGA, WEBP, CDR, CMX, DNG, EMF, WMF, AVIF e SVG. Il suo DPI predefinito è 100.

ConfigurazioneProprietàPredefinitoComportamento
ImageConfigMaxImagePixelSize3000Larghezza/altezza massima. 0 significa illimitato; i valori diversi da zero inferiori a 50 vengono ignorati.
ImageConfigTransparentPngtruePreserva la trasparenza PNG; false utilizza uno sfondo bianco.
TiffConfig(nessuna proprietà aggiuntiva)DPI 200Utilizza solo BaseConfig; supporta TIFF multi-pagina.
PsdConfigMaxImagePixelSize3000Stessa validazione 0/minimo-50 di ImageConfig; DPI predefinito è 100.

DicomConfig

Formati: DCM, IMA. DPI efficace predefinito: 100. Richiede il plugin DICOM.

TipoProprietàPredefinitoComportamento
intHorizontalResolution100 effectiveDPI orizzontale esplicito; altrimenti ImageResolution, poi 100.
intVerticalResolution100 effectiveDPI verticale esplicito; altrimenti ImageResolution, poi 100.
intAnimationFrameDelayMs100Ritardo dei fotogrammi dell'animazione multiframe; il timing GIF usa unità di 10 ms.
ushortLoopCount00 loop infinito; valori positivi si fermano dopo quel conteggio.
DicomDisplayModeDisplayModeAnimationAndFramesAnimationOnly, FramesOnly o panoramica combinata più fotogrammi statici.

TxtConfig

Formato: TXT. DPI predefinito: 200.

TipoProprietàPredefinitoComportamento
DocPaperSizePaperSizeA4Formato della carta di output.
Encoding?FileEncodingnullnull utilizza UTF-8.
stringFontInformation""Informazioni sul font per il rendering del testo.

Usa WordConfig quando il testo semplice necessita di un comportamento di layout di pagina più ricco.

ProjectConfig

Formati: MPP, MPPX, MPX. DPI predefinito: 200.

TipoProprietàPredefinitoComportamento
boolDefaultRendertrueImmagine Gantt nativa; false utilizza un percorso PDF basato su testo.
PdfConfigPdfConfignew instanceImpostazioni del percorso PDF.
boolExportPdfAtrueOutput PDF/A di archivio.
MppPaperSizePaperSizeLedgerFormato della carta di output del progetto.
MppTimeScaleTimeScaleMonthsDays o Months.
MppFormatPresentationFormatGanttChartGanttChart, TaskUsage, ResourceUsage, ResourceSheet o TaskSheet.

Per una ricerca esatta basata su coordinate di testo, usa DefaultRender = false.

VisioConfig

Formati: VSD, VSDX, VSS, VSSX, VST, VSTX, VDX, VSX, VSDM. DPI predefinito: 200.

TipoProprietàPredefinitoComportamento
boolDefaultRendertrueRendering nativo del diagramma; false utilizza il reindirizzamento PDF.
PdfConfigPdfConfignew instanceImpostazioni del percorso PDF.
boolExportPdfAtrueOutput PDF/A di archivio.

HtmlConfig, EpubConfig, MhtConfig e XpsConfig

Tutti e quattro hanno DPI predefinito a 200 ed espongono un PdfConfig nidificato.

ConfigurazioneFormatiDefaultRenderProprietà/Comportamento aggiuntivi
HtmlConfigHTML, HTMtrueRendering nativo; usa false per un percorso di ricerca PDF basato su testo.
EpubConfigEPUBtrueRendering nativo; false utilizza PDF.
MhtConfigMHT, MHTMLtrue nella classe; false nel catalogo automaticoL'apertura normale senza configurazione utilizza il reindirizzamento PDF ricercabile. Un'istanza predefinita creata esplicitamente renderizza nativamente.
XpsConfigXPSfalseUtilizza il percorso PDF per impostazione predefinita; imposta true per il rendering nativo dell'immagine.

Esempi di configurazione per famiglia

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

Selezione per estensione

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

Questa pagina è stata utile?