Metadatos y Utilidades
Metadatos y Utilidades
Aspose.PDF FOSS for .NET incluye clases de utilidad para el acceso a metadatos, geometría de coordenadas, colecciones de imágenes y artefactos a nivel de página. Estos bloques de construcción soportan operaciones de nivel superior en toda la biblioteca.
metadatos XMP
Metadata en un documento proporciona acceso al flujo de metadatos XMP. Lea y
escriba propiedades XMP estándar o personalizadas.
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");Geometría analítica
Rectangle y Matrix se utilizan en toda la API para posicionamiento y transformación.
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);Operaciones de colección de páginas
PageCollection admite indexación, iteración y aceptación del patrón visitante.
using var doc = Document.Open(pdfBytes);
for (int i = 1; i <= doc.Pages.Count; i++)
{
var page = doc.Pages[i];
}Colecciones de imágenes
XImageCollection gestiona imágenes incrustadas en los recursos de una página. XImage proporciona métodos para inspeccionar las propiedades de la imagen.
var images = doc.Pages[1].Resources.Images;
foreach (var img in images)
{
Console.WriteLine($"Color type: {img.GetColorType()}");
}Artefactos
Artifact representa elementos que no son contenido como marcas de agua, encabezados y
pies de página. Use artefactos para la numeración de páginas y elementos decorativos.
var artifact = new Artifact(ArtifactType.Watermark);
artifact.SetPageNumberReplacementString("Page {0}");Consejos y Mejores Prácticas
- Las claves de metadatos XMP siguen las especificaciones Dublin Core y XMP — use prefijos de espacio de nombres estándar.
- Las coordenadas
Rectangleestán en unidades del espacio de usuario PDF (1/72 pulgada), con origen en la esquina inferior izquierda. - Use
Matrixpara transformaciones afines: traslación, rotación, escalado y sesgado. XmpValueadmite tipos de cadena, entero, doble, fecha y matriz.- Los artefactos son elementos estructurales — no aparecen en los recorridos del árbol de accesibilidad.
Problemas comunes
| Problema | Causa | Solución |
|---|---|---|
| Clave de metadatos no encontrada | La clave usa un prefijo de espacio de nombres diferente | Enumere todas las claves primero para encontrar el prefijo correcto |
| Las coordenadas del rectángulo parecen invertidas | El origen del PDF es en la esquina inferior izquierda, no superior izquierda | Ajuste las coordenadas Y en consecuencia |
| La colección de imágenes está vacía | Las imágenes están en XObjects de formulario, no en recursos de página directos | Consulte XFormCollection para recursos de imagen anidados |
Preguntas frecuentes
¿Cómo leo el título del documento desde los metadatos?
Acceda doc.Metadata["dc:title"] para la propiedad de título de Dublin Core.
¿Puedo agregar un artefacto de marca de agua?
Sí. Crea un Artifact con tipo Watermark y añádelo a la página.
¿Qué sistema de coordenadas usa Rectangle?
Espacio de usuario PDF: origen en la esquina inferior izquierda, unidades de 1/72 de pulgada. Una página US Letter estándar mide 612 × 792 unidades.
Resumen de la referencia API
| Class / Method | Description |
|---|---|
Metadata | Diccionario de metadatos XMP del documento |
XmpValue | Envoltorio tipado para valores de propiedades XMP |
Rectangle | Caja delimitadora alineada al eje (llx, lly, urx, ury) |
Rectangle.ContainsPoint | Comprobar si un punto está dentro del rectángulo |
Matrix | Matriz de transformación afín 2D |
Matrix.Translate | Crear una matriz de traslación |
PageCollection | Colección de páginas ordenada con indexación basada en 1 |
XImageCollection | Recursos de imagen en una página |
XImage | Imagen incrustada única con detección de tipo de color |
Artifact | Elemento de página no contenido (marca de agua, encabezado, pie de página) |
Artifact.SetPageNumberReplacementString | Plantilla para artefactos de número de página |