Travailler avec les énumérations
Travailler avec les énumérations
Aspose.PDF FOSS pour .NET utilise des énumérations fortement typées tout au long de son API pour configurer le comportement du document, l’apparence des pages et les formats de conversion. Plutôt que des chaînes magiques ou des entiers, la plupart des surfaces de configuration — du mode d’ouverture d’un fichier par un visualiseur PDF au format dans lequel un Document est enregistré — sont exprimées sous forme de valeurs d’énumération. Cette page présente les types d’énumération que vous rencontrerez le plus souvent en travaillant avec la bibliothèque. Il s’agit d’une introduction sélectionnée, pas d’un catalogue exhaustif ; pour la liste complète des types d’énumération et chaque valeur de membre, voyez le API Reference.
Affichage et mise en page de la page
PageMode et PageLayout sont des propriétés de Document qui contrôlent la façon dont un lecteur PDF présente le document lors de son ouverture initiale — qu’il affiche les repères, les vignettes ou une disposition en colonnes particulière.
using var doc = Document.Open("input.pdf");
// Show the outline (bookmarks) panel when the document opens
doc.PageMode = PageMode.UseOutlines;
// Display pages in two columns, first page on the left
doc.PageLayout = PageLayout.TwoColumnLeft;
doc.Save("output.pdf");Modèle de couleur de la page
ColorType décrit le modèle de couleur d’une page — RGB, CMYK, niveaux de gris, etc. Il est exposé à la fois sur Page et Color, vous permettant de bifurquer la logique en fonction de la façon dont le contenu d’une page est réellement rendu.
using var doc = Document.Open("input.pdf");
var page = doc.Pages[1];
if (page.ColorType == ColorType.Grayscale)
{
// Apply grayscale-specific handling, e.g. skip color-profile conversion
}Alignment
Plusieurs classes exposent HorizontalAlignment et VerticalAlignment pour positionner le contenu sur la page, tandis que les classes d’annotation ajoutent TextAlignment et Justification pour l’alignement du texte spécifique à l’intérieur d’une boîte. Table, par exemple, expose les deux axes d’alignement directement.
var table = new Table();
table.HorizontalAlignment = HorizontalAlignment.Center;
table.VerticalAlignment = VerticalAlignment.Center;
page.Paragraphs.Add(table);FreeTextAnnotation (et le type de base Annotation) expose également Justification et TextAlignment pour le texte à l’intérieur de l’annotation :
if (page.Annotations[1] is FreeTextAnnotation freeText)
{
freeText.Justification = Justification.Center;
freeText.Alignment = TextAlignment.Right;
}Formats de chargement et d’enregistrement
LoadFormat identifie le format source d’une sous-classe LoadOptions (par exemple, HtmlLoadOptions.LoadFormat est toujours LoadFormat.HTML), tandis que SaveFormat sélectionne le format de sortie lors de l’appel de Document.Save.
var loadOptions = new HtmlLoadOptions();
// loadOptions.LoadFormat == LoadFormat.HTML
using var doc = new Document("input.html", loadOptions);
doc.Save("output.html", SaveFormat.Html);Rotation de page
Rotation décrit l’angle de rotation d’une page et est exposé via Page.Rotate.
var page = doc.Pages[1];
page.Rotate = Rotation.on90;Conseils et bonnes pratiques
- Privilégiez les surcharges d’énumération aux surcharges basées sur des chaînes ou des entiers lorsqu’elles existent toutes les deux — elles détectent les valeurs invalides à la compilation.
- Faites correspondre
SaveFormatà l’extension de fichier que vous transmettez àDocument.Save; une discordance produit un fichier au contenu trompeur ou une extension inutilisable. - Utilisez la sous-classe
LoadOptionsqui correspond à votre format source (par ex.HtmlLoadOptionspour HTML) plutôt que de vous fier uniquement à la détection automatique du format. - Définissez à la fois
HorizontalAlignmentetVerticalAlignmentsimultanément lors du positionnement des tableaux ou des paragraphes — laisser l’un d’eux à sa valeur par défaut peut entraîner un placement inattendu. - Considérez
ColorTypecomme descriptif, non prescriptif: il indique comment le contenu couleur d’une page est actuellement modélisé, et non comme un paramètre que vous activez pour convertir les espaces colorimétriques.
Problèmes courants
| Problème | Cause | Correction |
|---|---|---|
| Le fichier enregistré a un contenu incorrect pour son extension | Valeur SaveFormat incorrecte transmise à Document.Save | Fournissez la valeur SaveFormat qui correspond à l’extension du fichier cible |
| Le contenu chargé HTML/XML/etc. s’affiche de façon incorrecte | Un LoadOptions générique est utilisé au lieu de la sous-classe spécifique au format | Utilisez la sous-classe correspondant au format source, par ex. HtmlLoadOptions |
| Le tableau ou l’annotation apparaît mal aligné(e) sur la page | HorizontalAlignment/VerticalAlignment laissés à leurs valeurs par défaut | Définissez explicitement les deux propriétés avant d’ajouter l’objet à Paragraphs |
| Le PDF s’ouvre avec un comportement inattendu du visualiseur (pas de panneau de plan, disposition des colonnes incorrecte) | Document.PageMode/Document.PageLayout jamais définis | Définissez les deux propriétés avant d’appeler Document.Save |
FAQ
Quelle est la différence entre PageMode et PageLayout?
PageMode contrôle l’état de l’interface du visualiseur à l’ouverture (par exemple, si le panneau du plan ou des vignettes est visible), tandis que PageLayout détermine la façon dont les pages sont disposées (une page, une colonne, deux colonnes, etc.).
Comment savoir quelle valeur SaveFormat utiliser?
Choisissez la valeur SaveFormat qui correspond au type de fichier de sortie souhaité — par exemple, SaveFormat.Html pour une sortie HTML ou SaveFormat.Pdf pour réenregistrer en PDF.
Puis-je définir à la fois HorizontalAlignment et VerticalAlignment sur le même objet?
Oui. Des classes comme Table exposent les deux propriétés de manière indépendante, de sorte que vous pouvez les combiner pour positionner le contenu sur l’un ou l’autre axe.
Est-ce que ColorType me permet de convertir l’espace colorimétrique d’une page?
Non. ColorType indique le modèle de couleur actuellement associé à une page ou à une valeur de couleur; il ne réalise pas de conversion.
Où puis-je trouver chaque enum et chaque valeur?
Cette page couvre les énumérations les plus couramment utilisées. Pour l’ensemble complet, y compris chaque valeur de membre, voir le API Reference.
API Reference Résumé
| Enum | Description |
|---|---|
PageMode | Comment le visualiseur PDF affiche le document à l’ouverture (contours, vignettes, plein écran, etc.) |
PageLayout | Mise en page utilisée lorsque le document est affiché (page unique, colonnes, etc.) |
ColorType | Modèle de couleur d’une page ou valeur de couleur (RGB, CMYK, niveaux de gris, etc.) |
HorizontalAlignment | Alignement horizontal des paragraphes, tableaux ou annotations |
VerticalAlignment | Alignement vertical des paragraphes, tableaux ou annotations |
TextAlignment | Alignement horizontal du texte pour les boîtes de texte d’annotation |
Justification | Justification du contenu d’une annotation de texte libre |
LoadFormat | Sélecteur de format source utilisé par les sous-classes de LoadOptions |
SaveFormat | Sélecteur de format de sortie utilisé par Document.Save |
Rotation | Angle de rotation de la page, exposé via Page.Rotate |