Métadonnées et utilitaires
Métadonnées et utilitaires
Aspose.PDF FOSS for .NET inclut des classes utilitaires pour l’accès aux métadonnées, la géométrie de coordonnées, les collections d’images et les artefacts au niveau de la page. Ces blocs de construction prennent en charge des opérations de niveau supérieur tout au long de la bibliothèque.
XMP métadonnées
Metadata sur un document donne accès au flux de métadonnées XMP. Lire et écrire des propriétés XMP standard ou personnalisées.
using var doc = Document.Open(pdfBytes);
// Read existing metadata
foreach (var entry in doc.Metadata)
{
Console.WriteLine($"{entry.Key}: {entry.Value}");
}
// Set a custom property
doc.Metadata.Add("xmp:CustomProp", new XmpValue("custom value"));
doc.Save("with-metadata.pdf");Géométrie analytique
Rectangle et Matrix sont utilisés tout au long de l’API pour le positionnement et la transformation.
var rect = new Rectangle(72, 700, 300, 720);
bool inside = rect.ContainsPoint(150, 710);
// Transformation matrix (translate by 100, 200)
var matrix = new Matrix(1, 0, 0, 1, 100, 200);Opérations de collection de pages
PageCollection prend en charge l’indexation, l’itération et l’acceptation du modèle visiteur.
using var doc = Document.Open(pdfBytes);
for (int i = 1; i <= doc.Pages.Count; i++)
{
var page = doc.Pages[i];
}Collections d’images
XImageCollection gère les images incorporées dans les ressources d’une page. XImage fournit des méthodes pour inspecter les propriétés de l’image.
var images = doc.Pages[1].Resources.Images;
foreach (var img in images)
{
Console.WriteLine($"Color type: {img.GetColorType()}");
}Artefacts
Artifact représente les éléments non liés au contenu tels que les filigranes, les en-têtes et
les pieds de page. Utilisez des artefacts pour la numérotation des pages et les éléments décoratifs.
var artifact = new Artifact(ArtifactType.Watermark);
artifact.SetPageNumberReplacementString("Page {0}");Conseils et meilleures pratiques
- Les clés de métadonnées XMP suivent les spécifications Dublin Core et XMP — utilisez les préfixes d’espace de noms standard.
- Les coordonnées
Rectanglesont exprimées en unités d’espace utilisateur PDF (1/72 pouce), avec l’origine en bas à gauche. - Utilisez
Matrixpour les transformations affines : translation, rotation, mise à l’échelle et cisaillement. XmpValueprend en charge les types string, integer, double, date et array.- Les artefacts sont des éléments structurels — ils n’apparaissent pas dans les traversées de l’arbre d’accessibilité.
Problèmes courants
| Issue | Cause | Fix |
|---|---|---|
| Clé de métadonnées introuvable | La clé utilise un préfixe d’espace de noms différent | Lister toutes les clés d’abord pour trouver le préfixe correct |
| Les coordonnées du rectangle semblent inversées | L’origine du PDF est en bas à gauche, pas en haut à gauche | Ajuster les coordonnées Y en conséquence |
| La collection d’images est vide | Les images sont dans des XObjects de formulaire, pas dans les ressources de page directes | Vérifier XFormCollection pour les ressources d’images imbriquées |
FAQ
Comment lire le titre du document à partir des métadonnées ?
Accédez doc.Metadata["dc:title"] pour la propriété titre de Dublin Core.
Puis-je ajouter un artefact de filigrane ?
Oui. Créez un Artifact avec le type Watermark et ajoutez‑le à la page.
Quel système de coordonnées utilise Rectangle ?
Espace utilisateur PDF : origine en bas à gauche, unités de 1/72 pouce. Une page US Letter standard
mesure 612 x 792 unités.
Résumé de la référence API
| Class / Method | Description |
|---|---|
Metadata | Dictionnaire de métadonnées XMP du document |
XmpValue | Enveloppe typée pour les valeurs de propriétés XMP |
Rectangle | Boîte englobante alignée sur les axes (llx, lly, urx, ury) |
Rectangle.ContainsPoint | Vérifier si un point se trouve à l’intérieur du rectangle |
Matrix | Matrice de transformation affine 2D |
Matrix.Translate | Créer une matrice de translation |
PageCollection | Collection de pages ordonnée avec un index à base 1 |
XImageCollection | Ressources d’image sur une page |
XImage | Image intégrée unique avec détection du type de couleur |
Artifact | Élément de page non contenu (filigrane, en-tête, pied de page) |
Artifact.SetPageNumberReplacementString | Modèle pour les artefacts de numérotation de pages |