Référence des options de configuration

Référence des options de configuration

Référence des options de configuration

La plupart des opérations de chargement, d’enregistrement et de conversion dans Aspose.PDF FOSS pour .NET acceptent un *Options objet qui configure le comportement de cette opération. LoadOptions and SaveOptions sont les deux racines abstraites de cette famille : chaque chargeur spécifique à un format (HtmlLoadOptions, MdLoadOptions, TxtLoadOptions, SvgLoadOptions) dérive de LoadOptions, et chaque écrivain spécifique à un format (PdfSaveOptions, HtmlSaveOptions, SvgSaveOptions) dérive de SaveOptions. Cette page explique comment la famille s’assemble et documente les classes d’options qui ne sont pas déjà couvertes par le Conversion et Optimisation guide.


Chargement de documents avec LoadOptions

Chaque sous-classe de *LoadOptions partage WarningHandler, WarningHandlerName, DisableFontLicenseVerifications et LoadFormat de la classe de base LoadOptions, puis ajoute des propriétés spécifiques à son format source.

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

Enregistrement en PDF avec PdfSaveOptions

PdfSaveOptions contrôle la gestion des polices et le placement des fichiers temporaires lors de l’écriture d’un Document au format PDF. Il hérite de CloseResponse, SaveFullPath, WarningHandler, CacheGlyphs et SaveFormat de la base partagée SaveOptions.

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

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

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

Exportation vers HTML et SVG

HtmlSaveOptions et SvgSaveOptions dérivent tous deux de UnifiedSaveOptions. Au-delà des contrôles d’image/police/mise en page couverts dans le guide de conversion, HtmlSaveOptions vous permet également de choisir le type de document et la stratégie de pagination, tandis que SvgSaveOptions repose entièrement sur les membres hérités 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);

Conversion en une étape avec Document.Convert

Document.Convert accepte un LoadOptions source et un SaveOptions de destination dans un seul appel statique, vous permettant de convertir entre formats sans ouvrir, convertir et libérer manuellement un Document.

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

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

Options d’extraction de texte

TextExtractionOptions contrôle la façon dont TextAbsorber (et TextDevice) formatent le texte extrait, indépendamment de l’absorbeur ou de la classe de dispositif qui effectue l’extraction.

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;

Optimisation de la sortie avec OptimizationOptions

OptimizationOptions est un mécanisme distinct, indépendant du format, pour réduire la taille du fichier. Il est appliqué via Document.OptimizeResources, pas via une classe *SaveOptions, ce qui permet de le combiner avec n’importe quel chemin d’enregistrement.

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

Conseils et meilleures pratiques

  • Chaque sous-classe *LoadOptions et *SaveOptions hérite de WarningHandler/WarningHandlerName - définissez les deux ensemble pour capturer les diagnostics récupérables.
  • Privilégiez une instance *LoadOptions/*SaveOptions spécifique au format plutôt que de vous fier à l’inférence de format basée sur l’extension, surtout lorsque vous travaillez avec des flux plutôt qu’avec des chemins de fichiers.
  • Utilisez Document.Convert(srcFileName, loadOptions, dstFileName, saveOptions) pour des conversions ponctuelles plutôt que d’ouvrir et de réenregistrer manuellement un Document.
  • OptimizationOptions est indépendant de la famille *SaveOptions - appelez OptimizeResources avant Save pour réduire la sortie quel que soit le format cible.
  • Réutilisez une même instance d’options sur plusieurs documents lorsque les mêmes paramètres s’appliquent, plutôt que de la reconstruire à chaque fois.

Problèmes courants

ProblèmeCauseCorrection
Chemins relatifs image/CSS non résolus lors du chargement de HTMLHtmlLoadOptions.BasePath n’a jamais été définiPassez le chemin de base via le constructeur HtmlLoadOptions(basePath)
Mauvais format de sortie produitUne sous-classe *SaveOptions ou SaveFormat incompatible a été utilisée pour l’extension cibleUtilisez la sous-classe *SaveOptions qui correspond au format de destination
OptimizeResources ne réduit pas la taille du fichierOptimizationOptions laissé aux valeurs par défaut sans aucun drapeau de réduction activéDéfinissez explicitement RemoveUnusedObjects, CompressObjects et SubsetFonts
Les avertissements générés lors du chargement/enregistrement sont silencieusement ignorésWarningHandler défini sans également spécifier le gestionnaireDéfinir WarningHandler et WarningHandlerName ensemble

FAQ

Quelle est la différence entre LoadOptions et SaveOptions ?

LoadOptions configure la façon dont un document est lu à partir d’un format source non PDF (HTML, Markdown, texte, SVG); SaveOptions configure la façon dont un Document est écrit vers un format de sortie (PDF, HTML, SVG). Chaque classe d’options propre à un format dérive exactement d’une de ces deux racines.

Dois-je spécifier LoadOptions lors de l’ouverture d’un PDF natif?

Non. Les constructeurs de Document.Open et de Document acceptent un chemin de fichier simple ou un flux pour une entrée PDF native. Les sous-classes de *LoadOptions ne sont requises que lors de l’importation d’un format source non PDF tel que HTML, Markdown, texte ou SVG.

Puis-je réutiliser la même instance de SaveOptions pour plusieurs appels à Save?

Oui. Une instance d’options n’est qu’un simple objet de configuration; elle ne conserve aucun état propre à un document, ainsi la même instance de PdfSaveOptions ou de HtmlSaveOptions peut être transmise à Save pour plusieurs documents partageant les mêmes paramètres.

En quoi OptimizationOptions diffère-t-il des classes SaveOptions spécifiques à chaque format?

OptimizationOptions est consommé par Document.OptimizeResources, une étape distincte de l’enregistrement. Il supprime les objets/flux inutilisés, recomprime les images en place et peut être appliqué avant d’appeler Save avec n’importe quelle sous-classe de *SaveOptions.

Chaque format source/cible possède-t-il à la fois une classe LoadOptions et une classe SaveOptions?

Pas nécessairement symétrique. Par exemple, Markdown et le texte brut exposent actuellement MdLoadOptions/TxtLoadOptions pour l’importation mais aucun pendant *SaveOptions correspondant, reflétant la direction dans laquelle chaque format est pris en charge pour la conversion.


API Reference Résumé

Classe / MéthodeDescription
LoadOptionsClasse de base pour tous les types d’options de chargement de documents
SaveOptionsClasse de base pour tous les types d’options de sauvegarde de documents
HtmlLoadOptionsOptions pour l’importation de HTML en tant que document PDF
MdLoadOptionsOptions pour importer du Markdown en tant que document PDF
TxtLoadOptionsOptions pour importer du texte brut en tant que document PDF
SvgLoadOptionsOptions pour importer du SVG en tant que document PDF
PdfSaveOptionsOptions pour enregistrer un document au format PDF
HtmlSaveOptionsOptions pour enregistrer un document au format HTML
SvgSaveOptionsOptions pour enregistrer un document au format SVG
UnifiedSaveOptionsBase partagée pour HtmlSaveOptions et SvgSaveOptions
Document.ConvertConversion statique en une seule étape à l’aide d’une paire LoadOptions/SaveOptions
TextExtractionOptionsConfiguration de formatage pour l’extraction de texte TextAbsorber
OptimizationOptionsParamètres d’optimisation de la taille/ressource du document indépendants du format
Document.OptimizeResourcesApplique une instance OptimizationOptions à un document

Voir aussi

 Français