Configurazioni Formato

Opzioni di rendering complete per formato

Ogni documento si apre con un'implementazione di BaseConfig. Passane una a OpenDocumentAsync o lascia che il catalogo dei formati crei il suo valore predefinito. Tutte le classi seguenti si trovano nello spazio dei nomi Doconut.

Quello spazio dei nomi unico è nuovo. La precedente libreria .NET Standard distribuiva questi tipi tra Doconut.Configs, Doconut.Configs.View e Doconut.Models. I nomi dei tipi non sono cambiati — nella maggior parte dei file l'intera modifica consiste nell'eliminare due righe using. Vedi la guida alla migrazione.

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 comodità 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 per coordinate di testo, ma comporta una conversione aggiuntiva.

Salvo diversa indicazione, 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 usa 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.
boolAllowSearchfalseCrea/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 usata quando la compressione è abilitata.
boolResizeImagesfalseRidimensiona le immagini incorporate prima del rendering.
intResizeResolution300DPI target per le immagini ridimensionate.
boolCompressFastfalsePreferisci il percorso di compressione più veloce e di qualità inferiore.
boolFixInvalidImagesfalseTenta di riparare le immagini incorporate non valide.
boolSplitSegmentsfalseRiunisci 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
boolDefaultRendertrueRender nativo di Word; false utilizza il reindirizzamento PDF.
PdfConfigPdfConfignew instanceImpostazioni usate dal percorso PDF/ricerca.
DocPaperSizePaperSizeA4Formato 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.
boolExportPdfAfalseUsa PDF/A archivistico nel percorso PDF.
Encoding?FileEncodingnullSovrascrive la codifica di origine.
stringFontInfo""Informazioni di sostituzione dei font.
string[]?FontFoldersnullDirectory dei 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.
PdfConfigPdfConfignuova istanzaImpostazioni per il percorso PDF/ricerca.
ExcelPaperSizePaperSizePaperA4Formato carta di output.
doublePaperMargins0.25Margini della pagina in pollici.
boolPaperLandscapetrueRendering del foglio in orizzontale.
boolAutoFitContentsfalseAdatta automaticamente altezza delle righe e larghezza delle colonne.
boolRemoveEmptyContenttrueStringi l'output escludendo contenuti vuoti.
boolCalculateFormulatrueRicalcola le formule prima del rendering.
boolShowRowColumnHeaderstrueIncludi intestazioni del foglio di calcolo.
boolExportPdfAfalseUsa PDF/A nel percorso PDF.
boolSplitWorksheetsfalseMantieni i fogli di lavoro come gruppi di pagine separati.
boolShowEmptyWorkSheetsfalseIncludi fogli di lavoro vuoti.
boolExportLandscapefalseForza l'esportazione in orizzontale.
boolExportOnePagePerSheetfalseAdatta ogni foglio di lavoro a una pagina di output.
boolMemoryOptimizationPreferencetrueRiduci la memoria di picco, potenzialmente sacrificando un po' di 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 come "A1:Z100".
boolPrintGridlinesfalseStampa le linee della griglia del foglio.
boolPrintHeadingsfalseStampa 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, tutte 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 della diapositiva; false utilizza il reindirizzamento PDF.
boolFastLoadfalseEvita il rendering della prima diapositiva durante l'apertura; usa i metadati e renderizza su richiesta.
PdfConfigPdfConfignuova istanzaImpostazioni per il comportamento PDF/ricerca.
stringFontInfo""Informazioni sulla sostituzione dei caratteri.
string[]?FontFoldersnullDirectory dei caratteri aggiuntive.
boolAllowSearchfalseDelega a PdfConfig.AllowSearch.
boolAllowCopyfalseDelega a PdfConfig.AllowCopy.

Su Linux e macOS, il rendering delle presentazioni con il motore attuale richiede libgdiplus e System.Drawing.EnableUnixSupport=true. Installa i caratteri usati dalla presentazione o fornisci FontFolders.

CadConfig

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

TipoProprietàPredefinitoComportamento
boolDefaultRendertrueRendering nativo CAD; false utilizza il reindirizzamento PDF.
PdfConfigPdfConfignuova istanzaImpostazioni del percorso PDF.
boolExportPdfAfalseOutput PDF/A di archivio.
boolShowColortrueColore anziché monocromatico.
boolWhiteBackgroundtrueSfondo bianco invece di nero.
shortLineWidth25Larghezza del tratto CAD.
boolShowLayoutsfalseRenderizza le schede layout.
boolShowModeltrueRenderizza lo spazio modello.
boolCheck3DSolidtrueElabora 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.
boolShowAllLayoutsDgnfalseIncludi 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.

ConfigurazioneEmail

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

TipoProprietàPredefinitoComportamento
boolDefaultRendertrueRender email nativo; 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 caricare immagini referenziate da remoto. Consigliato per email non attendibili.
boolRemoveLastWhitePagefalseRimuove l'ultima pagina bianca.
boolUseAntiAliasingfalseAbilita l'anti-aliasing.
boolUseHighQualityRenderingfalsePreferisce un rendering più pulito e più lento.
TimeSpan?TimeZoneOffsetnullSovrascrive il fuso orario usato per le date.
boolForcePageSizefalseForza dimensioni fisse della pagina.

ConfigurazioneImmagine, ConfigurazioneTiff e ConfigurazionePsd

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 sono ignorati.
ImageConfigTransparentPngtruePreserva la trasparenza PNG; false utilizza uno sfondo bianco.
TiffConfignessuna proprietà aggiuntivaDPI 200Utilizza solo BaseConfig; supporta TIFF multi-pagina.
PsdConfigMaxImagePixelSize3000Stessa validazione 0/minimo-50 di ImageConfig; DPI predefinito è 100.

ConfigurazioneDicom

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

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

ConfigurazioneTxt

Formato: TXT. DPI predefinito: 200.

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

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

ConfigurazioneProgetto

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.
MppPaperSizePaperSizeLedgerDimensione della carta di output del progetto.
MppTimeScaleTimeScaleMonthsDays o Months.
MppFormatPresentationFormatGanttChartGanttChart, TaskUsage, ResourceUsage, ResourceSheet o TaskSheet.

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

ConfigurazioneVisio

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

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

ConfigurazioneHtml, ConfigurazioneEpub, ConfigurazioneMht e ConfigurazioneXps

Tutte e quattro hanno come predefinito DPI 200 e espongono un PdfConfig nidificato.

ConfigurazioneFormatiDefaultRenderProprietà/Comportamento aggiuntivi
HtmlConfigHTML, HTMtrueRender nativo; usa false per un percorso di ricerca PDF basato su testo.
EpubConfigEPUBtrueRender nativo; false utilizza PDF.
MhtConfigMHT, MHTMLtrue sulla classe; false nel catalogo automaticoL'apertura normale senza configurazione utilizza il reindirizzamento PDF ricercabile. Un'istanza predefinita costruita esplicitamente rende 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?