Metadati e Utilità
Metadati e Utilità
Aspose.PDF FOSS for .NET include classi di utilità per l’accesso ai metadati,
geometria delle coordinate, collezioni di immagini e artefatti a livello di pagina. Questi
blocchi di costruzione supportano operazioni di livello superiore in tutta la libreria.
metadati XMP
Metadata su un documento fornisce l’accesso al flusso di metadati XMP. Leggi e scrivi proprietà XMP standard o personalizzate.
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");Geometria delle coordinate
Rectangle e Matrix sono usati in tutta l’API per il posizionamento e la trasformazione.
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);Operazioni sulla raccolta di pagine
PageCollection supporta l’indicizzazione, l’iterazione e l’accettazione del pattern visitor.
using var doc = Document.Open(pdfBytes);
for (int i = 1; i <= doc.Pages.Count; i++)
{
var page = doc.Pages[i];
}Raccolte di immagini
XImageCollection gestisce le immagini incorporate nelle risorse di una pagina. XImage fornisce metodi per ispezionare le proprietà dell’immagine.
var images = doc.Pages[1].Resources.Images;
foreach (var img in images)
{
Console.WriteLine($"Color type: {img.GetColorType()}");
}Artefatti
Artifact rappresenta elementi non di contenuto come filigrane, intestazioni e piè di pagina. Utilizza gli artefatti per la numerazione delle pagine e gli elementi decorativi.
var artifact = new Artifact(ArtifactType.Watermark);
artifact.SetPageNumberReplacementString("Page {0}");Suggerimenti e migliori pratiche
- Le chiavi dei metadati XMP seguono le specifiche Dublin Core e XMP — utilizzare i prefissi di namespace standard.
- Le coordinate
Rectanglesono in unità di spazio utente PDF (1/72 di pollice), con origine in basso a sinistra. - Utilizzare
Matrixper trasformazioni affini: traslazione, rotazione, scalatura e distorsione. XmpValuesupporta tipi stringa, intero, double, data e array.- Gli artifact sono elementi strutturali — non compaiono nelle traversate dell’albero di accessibilità.
Problemi comuni
| Problema | Causa | Correzione |
|---|---|---|
| Chiave dei metadati non trovata | La chiave utilizza un prefisso di namespace diverso | Elenca prima tutte le chiavi per trovare il prefisso corretto |
| Le coordinate del rettangolo sembrano invertite | L’origine del PDF è in basso a sinistra, non in alto a sinistra | Regola di conseguenza le coordinate Y |
| La raccolta di immagini è vuota | Le immagini sono in XObjects di tipo form, non risorse dirette della pagina | Controlla XFormCollection per le risorse immagine nidificate |
FAQ
Come leggo il titolo del documento dai metadati?
Accedi doc.Metadata["dc:title"] per la proprietà titolo di Dublin Core.
Posso aggiungere un artefatto di filigrana?
Sì. Crea un Artifact con tipo Watermark e aggiungilo alla pagina.
Quale sistema di coordinate utilizza Rectangle?
Spazio utente PDF: origine in basso a sinistra, unità di 1/72 di pollice. Una pagina US Letter standard
è 612 x 792 unità.
Riepilogo del Riferimento API
| Class / Method | Description |
|---|---|
Metadata | Dizionario dei metadati XMP sul documento |
XmpValue | Wrapper tipizzato per i valori delle proprietà XMP |
Rectangle | Rettangolo di delimitazione allineato agli assi (llx, lly, urx, ury) |
Rectangle.ContainsPoint | Verifica se un punto si trova all’interno del rettangolo |
Matrix | Matrice di trasformazione affine 2D |
Matrix.Translate | Crea una matrice di traslazione |
PageCollection | Collezione di pagine ordinata con indicizzazione a partire da 1 |
XImageCollection | Risorse immagine su una pagina |
XImage | Immagine incorporata singola con rilevamento del tipo di colore |
Artifact | Elemento di pagina non contenuto (filigrana, intestazione, piè di pagina) |
Artifact.SetPageNumberReplacementString | Modello per gli artefatti di numerazione delle pagine |