Konfiguracje Formatów
Pełne opcje renderowania dla każdego formatu
Każdy dokument otwiera się z implementacją BaseConfig. Przekaż ją do OpenDocumentAsync (lub OpenDocument) lub pozwól katalogowi formatów utworzyć domyślną. Wszystkie klasy poniżej znajdują się w przestrzeni nazw Doconut.
var token = await viewer.OpenDocumentAsync(path, new PdfConfig
{
AllowSearch = true,
AllowCopy = true,
ImageResolution = 150
});Dziedziczenie i zagnieżdżone ustawienia PDF
Każdy format dziedziczy pięć właściwości BaseConfig. Formaty, które mogą przekierowywać przez PDF, udostępniają zagnieżdżony PdfConfig. W WordConfig, ExcelConfig i PptConfig właściwości AllowSearch i AllowCopy są właściwościami wygodnymi, które odczytują i zapisują zagnieżdżony PdfConfig.
DefaultRender = true wybiera natywny renderer formatu. W formatach z przekierowaniem PDF, false najpierw konwertuje do pamięciowego PDF, a następnie używa przeglądarki PDF. Ta ścieżka jest często przydatna do wyszukiwania po współrzędnych tekstu, ale wymaga dodatkowej konwersji.
O ile nie podano inaczej, tabele przedstawiają domyślne wartości konstruktorów/właściwości. Automatyczny katalog formatów celowo nadpisuje dwie z nich: tworzy ExcelConfig z SplitWorksheets = true oraz MhtConfig z DefaultRender = false.
BaseConfig
| Typ | Właściwość | Domyślne | Zachowanie |
|---|---|---|---|
int | ImageResolution | 0 | 0 używa domyślnego formatu. Poprawny zakres to 25‑300 DPI; nieprawidłowe przypisania są ignorowane. |
string | DocumentCulture | "" | Ustawienia regionalne dla dat i liczb. Niepuste wartości są przycinane; puste przypisania są ignorowane. |
string | Password | "" | Hasło chronionego dokumentu. DocOptions.Password jest tutaj kopiowane automatycznie. |
bool | ShowUI | true | Właściwość kompatybilności; bieżący renderer nie używa jej do sterowania paskiem narzędzi przeglądarki. |
bool | CachePages | true | Buforuje renderowane obrazy stron dla sesji dokumentu. |
PdfConfig
Formaty: PDF. Domyślne DPI: 200.
| Typ | Właściwość | Domyślne | Zachowanie |
|---|---|---|---|
bool | DefaultRender | true | Przełącznik kompatybilności. Bieżąca fabryka używa natywnej przeglądarki PDF. |
bool | AllowSearch | false | Tworzy/używa indeksu wyszukiwania tekstu w PDF. Wymaga licencji Search dla żądań. |
bool | AllowCopy | false | Zezwala na zaznaczanie i kopiowanie tekstu. |
bool | ExtractHyperlinks | false | Wyodrębnia prostokąty linków dla nakładek po stronie klienta. |
int | HyperlinksPageCount | 0 | Maksymalna liczba stron skanowanych w poszukiwaniu linków; 0 oznacza wszystkie strony. |
bool | CompressImages | false | Kompresuje osadzone obrazy przed renderowaniem. |
int | CompressQuality | 100 | Jakość JPEG używana przy włączonej kompresji. |
bool | ResizeImages | false | Zmienia rozmiar osadzonych obrazów przed renderowaniem. |
int | ResizeResolution | 300 | Docelowe DPI dla zmienionych rozmiarowo obrazów. |
bool | CompressFast | false | Preferuje szybszą, niższej jakości ścieżkę kompresji. |
bool | FixInvalidImages | false | Próbuje naprawić nieprawidłowe osadzone obrazy. |
bool | SplitSegments | false | Łączy ponownie słowa podzielone na segmenty linii, aby poprawić wyszukiwanie/kopiowanie. |
showHyperlinks w ViewerConfig steruje nakładką po stronie klienta, natomiast ExtractHyperlinks steruje wyodrębnianiem po stronie serwera. Włącz oba.
WordConfig
Formaty: DOC, DOCX, DOCM, DOT, DOTX, DOTM, RTF, ODT, OTT, XML. Domyślne DPI: 200.
| Typ | Właściwość | Domyślne | Zachowanie |
|---|---|---|---|
bool | DefaultRender | true | Natywne renderowanie Word; false używa przekierowania PDF. |
PdfConfig | PdfConfig | new instance | Ustawienia używane w ścieżce PDF/wyszukiwania. |
DocPaperSize | PaperSize | A4 | Rozmiar papieru wyjściowego. Użyj Custom z szerokością/wysokością. |
int | PaperWidth | 595 | Niestandardowa szerokość w punktach. |
int | PaperHeight | 841 | Niestandardowa wysokość w punktach. |
bool | RemovePaperMargin | false | Usuwa marginesy stron dokumentu. |
bool | RenderPageColor | true | Zachowuje skonfigurowany kolor strony w Word; false renderuje białe strony. |
bool | ExportPdfA | false | Używa archiwalnego PDF/A w ścieżce PDF. |
Encoding? | FileEncoding | null | Zastępuje kodowanie źródła. |
string | FontInfo | "" | Informacje o podstawianiu czcionek. |
string[]? | FontFolders | null | Dodatkowe katalogi czcionek — przydatne na serwerze, który nie posiada czcionek używanych w dokumentach. |
bool | AllowSearch | false | Deleguje do PdfConfig.AllowSearch. |
bool | AllowCopy | false | Deleguje do PdfConfig.AllowCopy. |
TableAutoFitBehavior | AutoFitAllTables | None | None, AutoFitToContents lub AutoFitToWindow. |
ExcelConfig
Formaty: XLS, XLSX, XLSM, XLSB, XLTX, XLTM, ODS, CSV. Domyślna rozdzielczość DPI: 200.
| Typ | Właściwość | Domyślne | Zachowanie |
|---|---|---|---|
bool | DefaultRender | true | Natywne renderowanie arkusza; false używa przekierowania do PDF. |
PdfConfig | PdfConfig | nowa instancja | Ustawienia ścieżki PDF/wyszukiwania. |
ExcelPaperSize | PaperSize | PaperA4 | Rozmiar papieru wyjściowego. |
double | PaperMargins | 0.25 | Marginesy strony w calach. |
bool | PaperLandscape | true | Renderowanie arkusza w orientacji poziomej. |
bool | AutoFitContents | false | Automatyczne dopasowanie wysokości wierszy i szerokości kolumn. |
bool | RemoveEmptyContent | true | Zacieśnienie wyjścia poprzez wykluczenie pustej zawartości. |
bool | CalculateFormula | true | Ponowne obliczanie formuł przed renderowaniem. |
bool | ShowRowColumnHeaders | true | Dołączenie nagłówków wierszy i kolumn arkusza. |
bool | ExportPdfA | false | Użycie PDF/A w ścieżce PDF. |
bool | SplitWorksheets | false | Utrzymanie arkuszy jako osobnych grup stron. |
bool | ShowEmptyWorkSheets | false | Dołączenie pustych arkuszy. |
bool | ExportLandscape | false | Wymuszenie eksportu w orientacji poziomej. |
bool | ExportOnePagePerSheet | false | Dopasowanie każdego arkusza do jednej strony wyjściowej. |
bool | MemoryOptimizationPreference | true | Zmniejszenie maksymalnego zużycia pamięci, potencjalnie kosztem nieco niższej prędkości. |
bool | AutoTrimWorksheetRenderRange | true | Renderowanie tylko widocznego używanego zakresu, gdy nie istnieje wyraźny obszar drukowania. |
bool | AutoTrimPreserveExistingPrintArea | true | Zachowanie zdefiniowanych w skoroszycie obszarów drukowania podczas automatycznego przycinania. |
string? | PrintArea | null | Wyraźny zakres, np. "A1:Z100". |
bool | PrintGridlines | false | Drukowanie linii siatki arkusza. |
bool | PrintHeadings | false | Drukowanie nagłówków wierszy/kolumn. |
List<string> | SheetNames | empty | Ograniczenie renderowania do arkuszy o podanych nazwach. |
CustomStyleCell? | CustomStyles | null | Opcjonalne nadpisania formatowania daty/liczby dziesiętnej/liczby całkowitej. |
bool | AllowSearch | false | Deleguje do PdfConfig.AllowSearch. |
bool | AllowCopy | false | Deleguje do PdfConfig.AllowCopy. |
CustomStyleCell udostępnia CustomStyleDateTime, CustomStyleNumberDecimal i CustomStyleNumberInteger, wszystkie jako nullable stringi.
new ExcelConfig() ustawia SplitWorksheets na false; otwarcie pliku Excel bez wyraźnej konfiguracji używa katalogu formatów, który ustawia ją na true.
PptConfig
Formaty: PPT, PPTX, PPTM, PPSX, PPSM, POT, POTX, POTM, ODP. Domyślna rozdzielczość DPI: 200.
| Typ | Właściwość | Domyślne | Zachowanie |
|---|---|---|---|
bool | DefaultRender | true | Natywne renderowanie slajdu; false używa przekierowania do PDF. |
bool | FastLoad | false | Unikanie renderowania pierwszego slajdu podczas otwierania; użycie metadanych i renderowanie na żądanie. |
PdfConfig | PdfConfig | nowa instancja | Ustawienia zachowania PDF/wyszukiwania. |
string | FontInfo | "" | Informacje o podstawianiu czcionek. |
string[]? | FontFolders | null | Dodatkowe katalogi czcionek. |
bool | AllowSearch | false | Deleguje do PdfConfig.AllowSearch. |
bool | AllowCopy | false | Deleguje do PdfConfig.AllowCopy. |
Zainstaluj czcionki używane w prezentacjach na serwerze lub wskaż FontFolders na folder, który je zawiera. Windows Server bez Office ma znacznie mniej czcionek niż maszyna deweloperska, a brakujące czcionki są podstawiane bez żadnych błędów.
CadConfig
Formaty: DWG, DXF, DGN. Domyślna rozdzielczość DPI: 200.
| Typ | Właściwość | Domyślne | Zachowanie |
|---|---|---|---|
bool | DefaultRender | true | Natywne renderowanie CAD; false używa przekierowania do PDF. |
PdfConfig | PdfConfig | nowa instancja | Ustawienia ścieżki PDF. |
bool | ExportPdfA | false | Wyjście archiwalne PDF/A. |
bool | ShowColor | true | Kolor zamiast czerni i bieli. |
bool | WhiteBackground | true | Białe tło zamiast czarnego. |
short | LineWidth | 25 | Szerokość kreski CAD. |
bool | ShowLayouts | false | Renderowanie zakładek układów. |
bool | ShowModel | true | Renderowanie przestrzeni modelu. |
bool | Check3DSolid | true | Przetwarzanie brył 3D. |
bool | ExportAllLayouts | false | Eksport wszystkich układów, nadpisując wybór modelu/układu. |
bool | LimitMinimumSize | false | Zastosowanie MinimumSize. |
int | MinimumSize | 700 | Minimalny rozmiar wyjścia w pikselach. |
bool | LimitMaximumSize | false | Zastosowanie MaximumSize. |
int | MaximumSize | 700 | Maksymalny rozmiar wyjścia w pikselach. |
bool | ShowAllLayoutsDgn | false | Dołączenie wszystkich układów DGN. |
bool | AutomaticLayoutScaling | true | Automatyczne skalowanie układów. |
float | PdfMargins | 0.5 | Margines PDF w calach. |
RenderQuality | QualityImage | Low | Jakość rastra: Low, Medium lub High. |
RenderQuality | QualityText | Medium | Jakość tekstu: Low, Medium lub High. |
EmailConfig
Formaty: EML, EMLX, MSG. Domyślne DPI: 200.
| Typ | Właściwość | Domyślne | Zachowanie |
|---|---|---|---|
bool | DefaultRender | true | Natywne renderowanie e‑mail; false używa przekierowania PDF. |
PdfConfig | PdfConfig | nowa instancja | Ustawienia ścieżki PDF. |
Encoding? | EmailEncoding | null | Zastąp kodowanie wiadomości. |
Encoding? | SubjectEncoding | null | Zastąp kodowanie tematu. |
Encoding? | BodyEncoding | null | Zastąp kodowanie treści. |
bool | SkipExternalImages | false | Nie wczytuj zdalnie odwoływanych obrazów. Zalecane dla niepewnych e‑maili. |
bool | RemoveLastWhitePage | false | Usuń końcową pustą stronę. |
bool | UseAntiAliasing | false | Włącz antyaliasing. |
bool | UseHighQualityRendering | false | Preferuj czystsze, wolniejsze renderowanie. |
TimeSpan? | TimeZoneOffset | null | Zastąp strefę czasową używaną dla dat. |
bool | ForcePageSize | false | Wymuś stałe wymiary strony. |
ImageConfig, TiffConfig, and PsdConfig
ImageConfig obsługuje JPG, JPEG, JPE, PNG, BMP, GIF, ICO, EPS, TGA, WEBP, CDR, CMX, DNG, EMF, WMF, AVIF i SVG. Domyślne DPI to 100.
| Konfiguracja | Właściwość | Domyślne | Zachowanie |
|---|---|---|---|
ImageConfig | MaxImagePixelSize | 3000 | Maksymalna szerokość/wysokość. 0 oznacza nieograniczone; wartości niezerowe poniżej 50 są ignorowane. |
ImageConfig | TransparentPng | true | Zachowaj przeźroczystość PNG; false używa białego tła. |
TiffConfig | brak dodatkowych właściwości | DPI 200 | Używa tylko BaseConfig; obsługuje wielostronicowy TIFF. |
PsdConfig | MaxImagePixelSize | 3000 | Ta sama walidacja 0/minimum‑50 co ImageConfig; domyślne DPI to 100. |
DicomConfig
Formaty: DCM, IMA. Domyślne efektywne DPI: 100. Wymaga wtyczki DICOM. W tym pakiecie pliki DICOM renderują się w pełni, ale metadane techniczne nie są dostępne — zobacz Wtyczka DICOM.
| Typ | Właściwość | Domyślne | Zachowanie |
|---|---|---|---|
int | HorizontalResolution | 100 efektywne | Jawne poziome DPI; w przeciwnym razie ImageResolution, potem 100. |
int | VerticalResolution | 100 efektywne | Jawne pionowe DPI; w przeciwnym razie ImageResolution, potem 100. |
int | AnimationFrameDelayMs | 100 | Opóźnienie klatki animacji wieloklatkowej; timing GIF używa jednostek 10 ms. |
ushort | LoopCount | 0 | 0 powoduje nieskończone pętle; wartości dodatnie zatrzymują po podanej liczbie. |
DicomDisplayMode | DisplayMode | AnimationAndFrames | AnimationOnly, FramesOnly lub połączony podgląd z klatkami statycznymi. |
TxtConfig
Format: TXT. Domyślne DPI: 200.
| Typ | Właściwość | Domyślne | Zachowanie |
|---|---|---|---|
DocPaperSize | PaperSize | A4 | Rozmiar papieru wyjściowego. |
Encoding? | FileEncoding | null | null używa UTF-8. |
string | FontInformation | "" | Informacje o czcionce dla renderowania tekstu. |
Użyj WordConfig, gdy zwykły tekst wymaga bardziej rozbudowanego układu strony.
ProjectConfig
Formaty: MPP, MPPX, MPX. Domyślne DPI: 200.
| Typ | Właściwość | Domyślne | Zachowanie |
|---|---|---|---|
bool | DefaultRender | true | Natywny obraz Gantt; false używa ścieżki PDF opartej na tekście. |
PdfConfig | PdfConfig | nowa instancja | Ustawienia ścieżki PDF. |
bool | ExportPdfA | true | Wyjście archiwalne PDF/A. |
MppPaperSize | PaperSize | Ledger | Rozmiar papieru wyjściowego projektu. |
MppTimeScale | TimeScale | Months | Days lub Months. |
MppFormat | PresentationFormat | GanttChart | GanttChart, TaskUsage, ResourceUsage, ResourceSheet lub TaskSheet. |
Aby uzyskać dokładne wyszukiwanie po współrzędnych tekstu, użyj DefaultRender = false.
VisioConfig
Formaty: VSD, VSDX, VSS, VSSX, VST, VSTX, VDX, VSX, VSDM. Domyślne DPI: 200.
| Typ | Właściwość | Domyślne | Zachowanie |
|---|---|---|---|
bool | DefaultRender | true | Natywne renderowanie diagramu; false używa przekierowania PDF. |
PdfConfig | PdfConfig | nowa instancja | Ustawienia ścieżki PDF. |
bool | ExportPdfA | true | Wyjście archiwalne PDF/A. |
HtmlConfig, EpubConfig, MhtConfig i XpsConfig
Wszystkie cztery domyślnie mają 200 DPI i udostępniają zagnieżdżony PdfConfig.
| Konfiguracja | Formaty | DefaultRender | Dodatkowe właściwości/zachowanie |
|---|---|---|---|
HtmlConfig | HTML, HTM | true | Natywne renderowanie; użyj false dla ścieżki PDF opartej na tekście. |
EpubConfig | EPUB | true | Natywne renderowanie; false używa PDF. |
MhtConfig | MHT, MHTML | true w klasie; false w automatycznym katalogu | Normalne otwarcie bez konfiguracji używa przeszukiwalnego przekierowania PDF. Jawnie skonstruowana domyślna instancja renderuje natywnie. |
XpsConfig | XPS | false | Domyślnie używa ścieżki PDF; ustaw true dla natywnego renderowania obrazu. |
Przykłady konfiguracji według rodziny
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
}
};Wybór według rozszerzenia
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 → przekierowanie PDF → precyzyjne wyszukiwanie tekstu natywnego w pikselach
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
}
}Czy ta strona była pomocna?