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 Rectangle están en unidades del espacio de usuario PDF (1/72 pulgada), con origen en la esquina inferior izquierda.
  • Use Matrix para transformaciones afines: traslación, rotación, escalado y sesgado.
  • XmpValue admite tipos de cadena, entero, doble, fecha y matriz.
  • Los artefactos son elementos estructurales — no aparecen en los recorridos del árbol de accesibilidad.

Problemas comunes

ProblemaCausaSolución
Clave de metadatos no encontradaLa clave usa un prefijo de espacio de nombres diferenteEnumere todas las claves primero para encontrar el prefijo correcto
Las coordenadas del rectángulo parecen invertidasEl origen del PDF es en la esquina inferior izquierda, no superior izquierdaAjuste las coordenadas Y en consecuencia
La colección de imágenes está vacíaLas imágenes están en XObjects de formulario, no en recursos de página directosConsulte 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 / MethodDescription
MetadataDiccionario de metadatos XMP del documento
XmpValueEnvoltorio tipado para valores de propiedades XMP
RectangleCaja delimitadora alineada al eje (llx, lly, urx, ury)
Rectangle.ContainsPointComprobar si un punto está dentro del rectángulo
MatrixMatriz de transformación afín 2D
Matrix.TranslateCrear una matriz de traslación
PageCollectionColección de páginas ordenada con indexación basada en 1
XImageCollectionRecursos de imagen en una página
XImageImagen incrustada única con detección de tipo de color
ArtifactElemento de página no contenido (marca de agua, encabezado, pie de página)
Artifact.SetPageNumberReplacementStringPlantilla para artefactos de número de página

Ver también

 Español