Odwołanie do opcji konfiguracyjnych

Odwołanie do opcji konfiguracyjnych

Odwołanie do opcji konfiguracyjnych

Większość operacji ładowania, zapisywania i konwersji w Aspose.PDF FOSS dla .NET akceptuje *Options obiekt, który konfiguruje zachowanie tej operacji. LoadOptions and SaveOptions są dwoma abstrakcyjnymi korzeniami tej rodziny: każdy loader specyficzny dla formatu (HtmlLoadOptions, MdLoadOptions, TxtLoadOptions, SvgLoadOptions) dziedziczy po LoadOptions, a każdy writer specyficzny dla formatu (PdfSaveOptions, HtmlSaveOptions, SvgSaveOptions) dziedziczy po SaveOptions. Ta strona wyjaśnia, jak rodzina się ze sobą łączy i dokumentuje klasy opcji, które nie zostały już omówione w Konwersji i Optymalizacji przewodnik.


Ładowanie dokumentów za pomocą LoadOptions

Każda podklasa *LoadOptions dziedziczy WarningHandler, WarningHandlerName, DisableFontLicenseVerifications i LoadFormat z klasy bazowej LoadOptions, a następnie dodaje właściwości specyficzne dla swojego formatu źródłowego.

// 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);

Zapisywanie do PDF za pomocą PdfSaveOptions

PdfSaveOptions kontroluje obsługę czcionek i umiejscowienie plików tymczasowych podczas zapisywania Document jako PDF. Dziedziczy CloseResponse, SaveFullPath, WarningHandler, CacheGlyphs i SaveFormat ze wspólnej klasy bazowej SaveOptions.

using var doc = Document.Open("input.pdf");

var pdfOptions = new PdfSaveOptions();
pdfOptions.DefaultFontName = "Arial";
pdfOptions.TempPath = "temp/";

doc.Save("output.pdf", pdfOptions);

Eksportowanie do HTML i SVG

HtmlSaveOptions i SvgSaveOptions oba pochodzą od UnifiedSaveOptions. Poza kontrolami obrazu/czcionki/układu opisanymi w przewodniku konwersji, HtmlSaveOptions pozwala również wybrać wariant dokumentu i strategię paginacji, podczas gdy SvgSaveOptions opiera się w pełni na odziedziczonych członkach SaveOptions/UnifiedSaveOptions.

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

Jednoetapowa konwersja przy użyciu Document.Convert

Document.Convert przyjmuje źródłowy LoadOptions i docelowy SaveOptions razem w jednym statycznym wywołaniu, dzięki czemu możesz konwertować między formatami bez ręcznego otwierania, konwertowania i usuwania Document.

var loadOptions = new HtmlLoadOptions();
var saveOptions = new PdfSaveOptions();

Document.Convert("input.html", loadOptions, "output.pdf", saveOptions);

Opcje ekstrakcji tekstu

TextExtractionOptions kontroluje sposób formatowania wyodrębnionego tekstu przez TextAbsorber (oraz TextDevice), niezależnie od tego, który absorber lub klasa urządzenia wykonuje ekstrakcję.

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;

Optymalizacja wyjścia przy użyciu OptimizationOptions

OptimizationOptions jest odrębnym, niezależnym od formatu mechanizmem zmniejszania rozmiaru pliku. Jest stosowany poprzez Document.OptimizeResources, a nie poprzez klasę *SaveOptions, więc może być łączony z dowolną ścieżką zapisu.

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");

Wskazówki i najlepsze praktyki

  • Każda podklasa *LoadOptions i *SaveOptions dziedziczy WarningHandler/WarningHandlerName – ustaw oba razem, aby przechwycić diagnostykę możliwą do odzyskania.
  • Preferuj instancję *LoadOptions/*SaveOptions specyficzną dla formatu zamiast polegać na wnioskowaniu formatu na podstawie rozszerzenia, szczególnie przy pracy ze strumieniami zamiast ścieżek do plików.
  • Użyj Document.Convert(srcFileName, loadOptions, dstFileName, saveOptions) do jednorazowych konwersji zamiast ręcznego otwierania i ponownego zapisywania Document.
  • OptimizationOptions jest niezależny od rodziny *SaveOptions – wywołaj OptimizeResources przed Save, aby zmniejszyć rozmiar wyjścia niezależnie od docelowego formatu.
  • Używaj jednej instancji opcji w wielu dokumentach, gdy obowiązują te same ustawienia, zamiast tworzyć ją na nowo za każdym razem.

Częste problemy

ProblemPrzyczynaNaprawa
Ścieżki względne do obrazów/CSS nie są rozwiązywane przy ładowaniu HTMLHtmlLoadOptions.BasePath nigdy nie został ustawionyPrzekaż ścieżkę bazową przez konstruktor HtmlLoadOptions(basePath)
Wygenerowano nieprawidłowy format wyjściowyNiezgodna podklasa *SaveOptions lub SaveFormat została użyta dla docelowego rozszerzeniaUżyj podklasy *SaveOptions, która pasuje do formatu docelowego
OptimizeResources nie zmniejsza rozmiaru plikuOptimizationOptions pozostawiono w ustawieniach domyślnych bez włączonych flag redukcjiJawnie ustaw RemoveUnusedObjects, CompressObjects i SubsetFonts
Ostrzeżenia generowane podczas ładowania/zapisywania są cicho pomijaneWarningHandler ustawiono bez podania nazwy obsługiUstaw WarningHandler i WarningHandlerName razem

FAQ

Jaka jest różnica między LoadOptions a SaveOptions?

LoadOptions konfiguruje sposób, w jaki dokument jest odczytywany z formatu źródłowego niebędącego PDF (HTML, Markdown, tekst, SVG); SaveOptions konfiguruje sposób, w jaki Document jest zapisywany do formatu wyjściowego (PDF, HTML, SVG). Każda klasa opcji specyficznych dla formatu dziedziczy dokładnie od jednej z tych dwóch korzeni.

Czy muszę określić LoadOptions przy otwieraniu natywnego PDF?

Nie. Document.Open oraz konstruktor Document akceptują zwykłą ścieżkę do pliku lub strumień jako wejście natywnego PDF. Podklasy *LoadOptions są wymagane tylko przy importowaniu formatu źródłowego niebędącego PDF, takiego jak HTML, Markdown, tekst lub SVG.

Czy mogę ponownie używać tej samej instancji SaveOptions w wielu wywołaniach Save?

Tak. Instancja opcji jest po prostu zwykłym obiektem konfiguracyjnym; nie przechowuje żadnego stanu zależnego od dokumentu, więc ta sama instancja PdfSaveOptions lub HtmlSaveOptions może być przekazana do Save dla kilku dokumentów, które korzystają z tych samych ustawień.

Jak OptimizationOptions różni się od formatowo-specyficznych klas SaveOptions?

OptimizationOptions jest konsumowane przez Document.OptimizeResources, osobny krok od zapisywania. Usuwa nieużywane obiekty/strumienie i ponownie kompresuje obrazy w miejscu, i może być zastosowane przed wywołaniem Save z dowolną podklasą *SaveOptions.

Czy każdy format źródłowy/docelowy posiada zarówno klasę LoadOptions, jak i SaveOptions?

Nie musi być symetryczne. Na przykład, Markdown i zwykły tekst obecnie udostępniają MdLoadOptions/TxtLoadOptions do importu, ale nie mają odpowiadającego *SaveOptions, co odzwierciedla, w którym kierunku każdy format jest obsługiwany przy konwersji.


API Reference Podsumowanie

Klasa / MetodaOpis
LoadOptionsKlasa bazowa dla wszystkich typów opcji ładowania dokumentów
SaveOptionsKlasa bazowa dla wszystkich typów opcji zapisywania dokumentów
HtmlLoadOptionsOpcje importowania HTML jako dokumentu PDF
MdLoadOptionsOpcje importowania Markdown jako dokumentu PDF
TxtLoadOptionsOpcje importowania zwykłego tekstu jako dokument PDF
SvgLoadOptionsOpcje importowania SVG jako dokument PDF
PdfSaveOptionsOpcje zapisywania dokumentu jako PDF
HtmlSaveOptionsOpcje zapisywania dokumentu jako HTML
SvgSaveOptionsOpcje zapisywania dokumentu jako SVG
UnifiedSaveOptionsWspólna podstawa dla HtmlSaveOptions i SvgSaveOptions
Document.ConvertStatyczna jednoczynnikowa konwersja przy użyciu pary LoadOptions/SaveOptions
TextExtractionOptionsKonfiguracja formatowania dla wyodrębniania tekstu TextAbsorber
OptimizationOptionsUstawienia optymalizacji rozmiaru dokumentu i zasobów niezależne od formatu
Document.OptimizeResourcesStosuje instancję OptimizationOptions do dokumentu

Zobacz także

 Polski