XmpPacketWrapper

XmpPacketWrapper class

Contiene un paquete XMP serializado que incluye encabezado y tráiler. Se puede colocar un envoltorio que consta de un par de instrucciones de procesamiento (PI) XML alrededor del elemento rdf:RDF.

public class XmpPacketWrapper : MetadataPackage, IXmpType

Constructores

Nombre Descripción
XmpPacketWrapper() Inicializa una nueva instancia delXmpPacketWrapper clase.
XmpPacketWrapper(XmpHeaderPI, XmpTrailerPI, XmpMeta) Inicializa una nueva instancia delXmpPacketWrapper clase.

Propiedades

Nombre Descripción
Count { get; } Obtiene el número de propiedades de metadatos.
HeaderPI { get; set; } Obtiene o establece la instrucción de procesamiento del encabezado.
Item { get; } Obtiene elMetadataProperty con el nombre especificado.
Keys { get; } Obtiene una colección de nombres de propiedades de metadatos.
Meta { get; set; } Obtiene o establece el meta XMP.
MetadataType { get; } Obtiene el tipo de metadato.
PackageCount { get; } Obtiene el número de paquetes dentro de la estructura XMP.
Packages { get; } Obtiene una matriz deXmpPackage dentro de XMP.
PropertyDescriptors { get; } Obtiene una colección de descriptores que contienen información sobre propiedades accesibles a través del motor de búsqueda GroupDocs.Metadata.
Schemes { get; } Proporciona acceso a esquemas XMP conocidos.
TrailerPI { get; set; } Obtiene o establece la instrucción de procesamiento del tráiler.

Métodos

Nombre Descripción
AddPackage(XmpPackage) Agrega el paquete.
AddProperties(Func<MetadataProperty, bool>, PropertyValue) Agrega propiedades de metadatos conocidas que satisfacen el predicado especificado. La operación es recursiva, por lo que también afecta a todos los paquetes anidados.
ClearPackages() Elimina todoXmpPackage dentro de XMP.
Contains(string) Determina si el paquete contiene una propiedad de metadatos con el nombre especificado.
ContainsPackage(string) Determina si el paquete existe en el contenedor XMP.
virtual FindProperties(Func<MetadataProperty, bool>) Encuentra las propiedades de metadatos que satisfacen el predicado especificado. La búsqueda es recursiva, por lo que también afecta a todos los paquetes anidados.
GetEnumerator() Devuelve un enumerador que itera a través de la colección.
GetPackage(string) Obtiene el paquete por espacio de nombres uri.
GetXmpRepresentation() Devuelve el valor contenido en la cadena en formato XMP.
RemovePackage(XmpPackage) Elimina el paquete especificado.
virtual RemoveProperties(Func<MetadataProperty, bool>) Elimina las propiedades de metadatos que cumplen el predicado especificado.
virtual Sanitize() Elimina las propiedades de metadatos de escritura del paquete. La operación es recursiva, por lo que también afecta a todos los paquetes anidados.
SetProperties(Func<MetadataProperty, bool>, PropertyValue) Establece propiedades de metadatos conocidas que satisfacen el predicado especificado. La operación es recursiva, por lo que también afecta a todos los paquetes anidados. Este método es una combinación deAddProperties yUpdateProperties Si una propiedad existente satisface el predicado, su valor se actualiza. Si falta una propiedad conocida en el paquete que satisface el predicado, se agrega al paquete.
UpdateProperties(Func<MetadataProperty, bool>, PropertyValue) Actualiza las propiedades de metadatos conocidas que satisfacen el predicado especificado. La operación es recursiva, por lo que también afecta a todos los paquetes anidados.

Observaciones

Aprende más

Ejemplos

Este ejemplo muestra cómo actualizar las propiedades de metadatos XMP.

using (Metadata metadata = new Metadata(Constants.GifWithXmp))
{
    IXmp root = metadata.GetRootPackage() as IXmp;
    if (root != null && root.XmpPackage != null)
    {
        // si no existe tal esquema en el paquete XMP debemos crearlo
        if (root.XmpPackage.Schemes.DublinCore == null)
        {
            root.XmpPackage.Schemes.DublinCore = new XmpDublinCorePackage();
        }
        root.XmpPackage.Schemes.DublinCore.Format = "image/gif";
        root.XmpPackage.Schemes.DublinCore.SetRights("Copyright (C) 2011-2022 GroupDocs. All Rights Reserved");
        root.XmpPackage.Schemes.DublinCore.SetSubject("test");

        if (root.XmpPackage.Schemes.CameraRaw == null)
        {
            root.XmpPackage.Schemes.CameraRaw = new XmpCameraRawPackage();
        }
        root.XmpPackage.Schemes.CameraRaw.Shadows = 50;
        root.XmpPackage.Schemes.CameraRaw.AutoBrightness = true;
        root.XmpPackage.Schemes.CameraRaw.AutoExposure = true;
        root.XmpPackage.Schemes.CameraRaw.CameraProfile = "test";
        root.XmpPackage.Schemes.CameraRaw.Exposure = 0.0001;

        // Si no desea mantener los valores anteriores, simplemente reemplace todo el esquema
        root.XmpPackage.Schemes.XmpBasic = new XmpBasicPackage();
        root.XmpPackage.Schemes.XmpBasic.CreateDate = DateTime.Today;
        root.XmpPackage.Schemes.XmpBasic.BaseUrl = "https://groupdocs.com";
        root.XmpPackage.Schemes.XmpBasic.Rating = 5;

        root.XmpPackage.Schemes.BasicJobTicket = new XmpBasicJobTicketPackage();

        // Establecer una propiedad de tipo complejo
        root.XmpPackage.Schemes.BasicJobTicket.Jobs = new[]
        {
            new XmpJob
            {
                ID = "1",
                Name = "test job",
                Url = "https://groupdocs.com"
            },
        };

        // ... 

        metadata.Save(Constants.OutputGif);
    }
}

Ver también