Referenz der Konfigurationsoptionen
Referenz der Konfigurationsoptionen
Die meisten Lade-, Speicher- und Konvertierungsoperationen in Aspose.PDF FOSS für .NET akzeptieren ein *Options Objekt, das das Verhalten dieser Operation konfiguriert. LoadOptions and SaveOptions sind die beiden abstrakten Wurzeln dieser Familie: jeder format-spezifische Loader (HtmlLoadOptions, MdLoadOptions, TxtLoadOptions, SvgLoadOptions) leitet sich ab von LoadOptions, und jeder format-spezifische Writer (PdfSaveOptions, HtmlSaveOptions, SvgSaveOptions) leitet sich ab von SaveOptions. Diese Seite erklärt, wie die Familie zusammenpasst, und dokumentiert die Optionsklassen, die noch nicht durch die Konvertierung und Optimierung Leitfaden.
Laden von Dokumenten mit LoadOptions
Jede *LoadOptions-Unterklasse erbt WarningHandler, WarningHandlerName, DisableFontLicenseVerifications und LoadFormat aus der Basisklasse LoadOptions und fügt anschließend eigenschaften hinzu, die speziell für ihr Quellformat gelten.
// HTML: resolve relative images/CSS against a base path
var htmlOptions = new HtmlLoadOptions("assets/");
htmlOptions.IsEmbedFonts = true;
using var htmlDoc = new Document("input.html", htmlOptions);
// Markdown: apply custom CSS while rendering to PDF
var mdOptions = new MdLoadOptions();
mdOptions.CssStyles = "body { font-family: sans-serif; }";
using var mdDoc = new Document("input.md", mdOptions);
// Plain text: control the rendered font size
var txtOptions = new TxtLoadOptions();
txtOptions.FontSize = 11;
using var txtDoc = Document.Open("input.txt", txtOptions);
// SVG: let the page size follow the artwork dimensions
var svgOptions = new SvgLoadOptions();
svgOptions.AdjustPageSize = true;
using var svgDoc = new Document("input.svg", svgOptions);Speichern als PDF mit PdfSaveOptions
PdfSaveOptions steuert die Schriftartenhandhabung und die Platzierung von temporären Dateien, wenn ein Document als PDF zurückgeschrieben wird. Es erbt CloseResponse, SaveFullPath, WarningHandler, CacheGlyphs und SaveFormat von der gemeinsamen Basisklasse SaveOptions.
using var doc = Document.Open("input.pdf");
var pdfOptions = new PdfSaveOptions();
pdfOptions.DefaultFontName = "Arial";
pdfOptions.TempPath = "temp/";
doc.Save("output.pdf", pdfOptions);Exportieren nach HTML und SVG
HtmlSaveOptions und SvgSaveOptions leiten sich beide von UnifiedSaveOptions ab. Über die im Konvertierungsleitfaden behandelten Bild-/Schrift-/Layout-Steuerungen hinaus ermöglicht HtmlSaveOptions ebenfalls die Auswahl des Dokumenttyps und der Paginierungsstrategie, während SvgSaveOptions vollständig auf die geerbten Mitglieder SaveOptions/UnifiedSaveOptions angewiesen ist.
using var doc = Document.Open("input.pdf");
// Fixed-layout HTML5 output, split one file per page
var htmlOptions = new HtmlSaveOptions(HtmlDocumentType.Html5, fixedLayout: true);
htmlOptions.SplitIntoPages = true;
htmlOptions.ImageResolution = 150;
htmlOptions.Title = "Converted Document";
doc.Save("output.html", htmlOptions);
// SVG export configured through the shared SaveOptions members
var svgOptions = new SvgSaveOptions();
svgOptions.SaveFullPath = false;
doc.Save("output.svg", svgOptions);Ein-Schritt-Konvertierung mit Document.Convert
Document.Convert akzeptiert ein Quell-LoadOptions und ein Ziel-SaveOptions zusammen in einem einzigen statischen Aufruf, sodass Sie zwischen Formaten konvertieren können, ohne manuell ein Document zu öffnen, zu konvertieren und zu entsorgen.
var loadOptions = new HtmlLoadOptions();
var saveOptions = new PdfSaveOptions();
Document.Convert("input.html", loadOptions, "output.pdf", saveOptions);Optionen zur Textextraktion
TextExtractionOptions steuert, wie TextAbsorber (und TextDevice) extrahierten Text formatieren, unabhängig davon, welcher Absorber oder Geräteklasse die Extraktion durchführt.
using var doc = Document.Open("input.pdf");
var extractionOptions = new TextExtractionOptions(TextFormattingMode.Raw);
extractionOptions.ScaleFactor = 1.0;
extractionOptions.IgnoreResourceFontErrors = true;
var absorber = new TextAbsorber(extractionOptions);
doc.Pages[1].Accept(absorber);
string text = absorber.Text;Optimierung der Ausgabe mit OptimizationOptions
OptimizationOptions ist ein separater, formatunabhängiger Mechanismus zur Reduzierung der Dateigröße. Er wird über Document.OptimizeResources angewendet, nicht über eine *SaveOptions-Klasse, sodass er mit jedem Speicherpfad kombiniert werden kann.
using var doc = Document.Open("input.pdf");
var optimizationOptions = new OptimizationOptions();
optimizationOptions.RemoveUnusedObjects = true;
optimizationOptions.CompressObjects = true;
optimizationOptions.SubsetFonts = true;
optimizationOptions.ImageCompressionOptions.CompressImages = true;
optimizationOptions.ImageCompressionOptions.ImageQuality = 80;
doc.OptimizeResources(optimizationOptions);
doc.Save("optimized.pdf");Tipps und bewährte Verfahren
- Jede
*LoadOptionsund*SaveOptionsUnterklasse erbtWarningHandler/WarningHandlerName- setze beide zusammen, um wiederherstellbare Diagnosen zu erfassen. - Bevorzuge eine format-spezifische
*LoadOptions/*SaveOptions-Instanz gegenüber der verlängerungsbasierten Format-Inferenz, insbesondere wenn mit Streams statt Dateipfaden gearbeitet wird. - Verwende
Document.Convert(srcFileName, loadOptions, dstFileName, saveOptions)für Einmal-Konvertierungen, anstatt einDocumentmanuell zu öffnen und erneut zu speichern. OptimizationOptionsist unabhängig von der*SaveOptions-Familie - rufeOptimizeResourcesvorSaveauf, um die Ausgabe zu verkleinern, unabhängig vom Zielformat.- Verwende eine einzelne Options-Instanz über mehrere Dokumente hinweg, wenn dieselben Einstellungen gelten, anstatt sie jedes Mal neu zu erstellen.
Häufige Probleme
| Problem | Ursache | Beheben |
|---|---|---|
| Relative Bild/CSS-Pfade werden beim Laden von HTML nicht aufgelöst | HtmlLoadOptions.BasePath wurde nie gesetzt | Übergeben Sie den Basis-Pfad über den HtmlLoadOptions(basePath)-Konstruktor |
| Falsches Ausgabeformat erzeugt | Eine nicht übereinstimmende *SaveOptions-Unterklasse oder SaveFormat wurde für die Zielerweiterung verwendet | Verwenden Sie die *SaveOptions-Unterklasse, die dem Zielformat entspricht |
OptimizeResources reduziert die Dateigröße nicht | OptimizationOptions bleibt auf den Standardwerten, ohne aktivierte Reduktions-Flags | Setzen Sie RemoveUnusedObjects, CompressObjects und SubsetFonts explizit |
| Warnungen, die während Laden/Speichern ausgelöst werden, werden stillschweigend verworfen | WarningHandler gesetzt, ohne gleichzeitig den Handler zu benennen | Setze WarningHandler und WarningHandlerName zusammen |
FAQ
Was ist der Unterschied zwischen LoadOptions und SaveOptions?
LoadOptions konfiguriert, wie ein Dokument aus einem nicht-PDF-Quellformat (HTML, Markdown, Text, SVG) gelesen wird; SaveOptions konfiguriert, wie ein Document in ein Ausgabeformat (PDF, HTML, SVG) geschrieben wird. Jede formatspezifische Optionsklasse leitet sich von genau einer dieser beiden Basisklassen ab.
Muss ich LoadOptions angeben, wenn ich ein natives PDF öffne?
Nein. Document.Open und der Document-Konstruktor akzeptieren einen einfachen Dateipfad oder Stream für native PDF-Eingaben. *LoadOptions-Unterklassen werden nur benötigt, wenn ein nicht-PDF-Quellformat wie HTML, Markdown, Text oder SVG importiert wird.
Kann ich dieselbe SaveOptions-Instanz bei mehreren Save-Aufrufen wiederverwenden?
Ja. Eine Optionsinstanz ist lediglich ein einfaches Konfigurationsobjekt; sie enthält keinen dokumentbezogenen Zustand, sodass dieselbe PdfSaveOptions- oder HtmlSaveOptions-Instanz an Save für mehrere Dokumente übergeben werden kann, die dieselben Einstellungen teilen.
Worin unterscheidet sich OptimizationOptions von den formatspezifischen SaveOptions-Klassen?
OptimizationOptions wird von Document.OptimizeResources verbraucht, ein separater Schritt vom Speichern. Es entfernt ungenutzte Objekte/Streams und komprimiert Bilder an Ort und Stelle neu und kann angewendet werden, bevor Save mit einer beliebigen *SaveOptions-Unterklasse aufgerufen wird.
Hat jedes Quell-/Ziel-Format sowohl eine LoadOptions- als auch eine SaveOptions-Klasse?
Nicht unbedingt symmetrisch. Zum Beispiel stellen Markdown und Plain-Text derzeit MdLoadOptions/TxtLoadOptions für den Import bereit, jedoch kein entsprechendes *SaveOptions-Gegenstück, das die unterstützte Richtung für die Konvertierung jedes Formats widerspiegelt.
API Reference Zusammenfassung
| Klasse / Methode | Beschreibung |
|---|---|
LoadOptions | Basisklasse für alle Dokument-Ladeoptionstypen |
SaveOptions | Basisklasse für alle Dokument-Speicheroptionstypen |
HtmlLoadOptions | Optionen zum Importieren von HTML als PDF-Dokument |
MdLoadOptions | Optionen zum Importieren von Markdown als PDF-Dokument |
TxtLoadOptions | Optionen zum Importieren von Klartext als PDF-Dokument |
SvgLoadOptions | Optionen zum Importieren von SVG als PDF-Dokument |
PdfSaveOptions | Optionen zum Speichern eines Dokuments als PDF |
HtmlSaveOptions | Optionen zum Speichern eines Dokuments als HTML |
SvgSaveOptions | Optionen zum Speichern eines Dokuments als SVG |
UnifiedSaveOptions | Gemeinsame Basis für HtmlSaveOptions und SvgSaveOptions |
Document.Convert | Statische Ein-Schritt-Konvertierung mit einem LoadOptions/SaveOptions-Paar |
TextExtractionOptions | Formatierungskonfiguration für die TextAbsorber-Textextraktion |
OptimizationOptions | Formatunabhängige Einstellungen zur Dokumentgrößen- und Ressourcenoptimierung |
Document.OptimizeResources | Wendet eine OptimizationOptions-Instanz auf ein Dokument an |