Configurazioni Formato

Opzioni complete di rendering per formato

Ogni documento si apre con un'implementazione di BaseConfig. Passane una a OpenDocumentAsync oppure lascia che il catalogo dei formati crei il suo valore predefinito. Tutte le classi di seguito appartengono allo 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 comodità che leggono e scrivono il PdfConfig nidificato.

DefaultRender = true seleziona il renderer nativo del formato. Nei formati con un 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 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.
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 riga 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.
PdfConfigPdfConfignuova istanzaImpostazioni usate 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 archivistico nel percorso PDF.
Encoding?FileEncodingnullSovrascrive la codifica di origine.
stringFontInfo""Informazioni sulla 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 della carta di output.
doublePaperMargins0.25Margini della pagina in pollici.
boolPaperLandscapetrueRendering del foglio in modalità orizzontale.
boolAutoFitContentsfalseAdatta automaticamente altezze delle righe e larghezze delle colonne.
boolRemoveEmptyContenttrueRestringe l'output escludendo contenuti vuoti.
boolCalculateFormulatrueRicalcola le formule prima del rendering.
boolShowRowColumnHeaderstrueInclude le intestazioni di riga/colonna del foglio.
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 modalità orizzontale.
boolExportOnePagePerSheetfalseAdatta ogni foglio di lavoro a una pagina di output.
boolMemoryOptimizationPreferencetrueRiduce il picco di memoria, 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 come ad esempio "A1:Z100".
boolPrintGridlinesfalseStampa le linee della griglia del foglio.
boolPrintHeadingsfalseStampa le intestazioni di riga/colonna.
List<string>SheetNamesvuotoLimita il rendering ai fogli di lavoro con nome.
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 su false; aprire un file Excel senza una configurazione esplicita utilizza il catalogo dei formati, che lo imposta su 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; utilizza i metadati e renderizza su richiesta.
PdfConfigPdfConfignuova istanzaImpostazioni per il comportamento PDF/ricerca.
stringFontInfo""Informazioni sulla sostituzione dei font.
string[]?FontFoldersnullDirectory dei font aggiuntive.
boolAllowSearchfalseDelega a PdfConfig.AllowSearch.
boolAllowCopyfalseDelega a PdfConfig.AllowCopy.

Su Linux e macOS, il rendering delle presentazioni con l'attuale motore 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.
PdfConfigPdfConfignuova istanzaImpostazioni del percorso PDF.
boolExportPdfAfalseOutput PDF/A archivistico.
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 di output in pixel.
boolLimitMaximumSizefalseApplica MaximumSize.
intMaximumSize700Dimensione massima di 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.
PdfConfigPdfConfignuova istanzaImpostazioni 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. Consigliato per email non attendibili.
boolRemoveLastWhitePagefalseRimuove l'ultima pagina bianca finale.
boolUseAntiAliasingfalseAbilita l'anti-aliasing.
boolUseHighQualityRenderingfalsePreferisce un rendering più pulito ma 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 non 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.

DicomConfig

Formati: DCM, IMA. DPI efficace 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 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.
PdfConfigPdfConfignuova istanzaImpostazioni del percorso PDF.
boolExportPdfAtrueOutput PDF/A archivistico.
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.
PdfConfigPdfConfignuova istanzaImpostazioni del percorso PDF.
boolExportPdfAtrueOutput PDF/A archivistico.

HtmlConfig, EpubConfig, MhtConfig e XpsConfig

Tutti e quattro hanno come predefinito 200 DPI 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 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 = ["/usr/share/fonts/truetype"],
        AllowSearch = true
    },
    new ExcelConfig
    {
        PaperLandscape = true,
        AutoFitContents = true,
        CalculateFormula = true,
        SplitWorksheets = false,
        PrintGridlines = false
    },
    new PptConfig
    {
        FastLoad = true,
        FontFolders = ["/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?