XmpPacketWrapper

XmpPacketWrapper class

Contiene un pacchetto XMP serializzato che include intestazione e trailer. Un wrapper costituito da una coppia di istruzioni di elaborazione XML (PI) può essere posizionato attorno all’elemento rdf:RDF.

public class XmpPacketWrapper : MetadataPackage, IXmpType

Costruttori

Nome Descrizione
XmpPacketWrapper() Inizializza una nuova istanza diXmpPacketWrapper classe.
XmpPacketWrapper(XmpHeaderPI, XmpTrailerPI, XmpMeta) Inizializza una nuova istanza diXmpPacketWrapper classe.

Proprietà

Nome Descrizione
Count { get; } Ottiene il numero di proprietà dei metadati.
HeaderPI { get; set; } Ottiene o imposta l’istruzione di elaborazione dell’intestazione.
Item { get; } Ottiene ilMetadataProperty con il nome specificato.
Keys { get; } Ottiene una raccolta dei nomi delle proprietà dei metadati.
Meta { get; set; } Ottiene o imposta il meta XMP.
MetadataType { get; } Ottiene il tipo di metadati.
PackageCount { get; } Ottiene il numero di pacchetti all’interno della struttura XMP.
Packages { get; } Ottiene l’array diXmpPackage all’interno di XMP.
PropertyDescriptors { get; } Ottiene una raccolta di descrittori che contengono informazioni sulle proprietà accessibili tramite il motore di ricerca GroupDocs.Metadata.
Schemes { get; } Fornisce l’accesso a schemi XMP noti.
TrailerPI { get; set; } Ottiene o imposta l’istruzione di elaborazione del trailer.

Metodi

Nome Descrizione
AddPackage(XmpPackage) Aggiunge il pacchetto.
AddProperties(Func<MetadataProperty, bool>, PropertyValue) Aggiunge proprietà di metadati note che soddisfano il predicato specificato. L’operazione è ricorsiva quindi interessa anche tutti i pacchetti nidificati.
ClearPackages() Rimuove tuttoXmpPackage all’interno di XMP.
Contains(string) Determina se il pacchetto contiene una proprietà di metadati con il nome specificato.
ContainsPackage(string) Determina se il pacchetto esiste nel wrapper XMP.
virtual FindProperties(Func<MetadataProperty, bool>) Trova le proprietà dei metadati che soddisfano il predicato specificato. La ricerca è ricorsiva quindi interessa anche tutti i pacchetti nidificati.
GetEnumerator() Restituisce un enumeratore che scorre la raccolta.
GetPackage(string) Ottiene il pacchetto in base allo spazio dei nomi uri.
GetXmpRepresentation() Restituisce il valore contenuto nella stringa in formato XMP.
RemovePackage(XmpPackage) Rimuove il pacchetto specificato.
virtual RemoveProperties(Func<MetadataProperty, bool>) Rimuove le proprietà dei metadati che soddisfano il predicato specificato.
virtual Sanitize() Rimuove le proprietà dei metadati scrivibili dal pacchetto. L’operazione è ricorsiva quindi interessa anche tutti i pacchetti annidati.
SetProperties(Func<MetadataProperty, bool>, PropertyValue) Imposta le proprietà dei metadati noti che soddisfano il predicato specificato. L’operazione è ricorsiva quindi interessa anche tutti i pacchetti nidificati. Questo metodo è una combinazione diAddProperties EUpdateProperties Se una proprietà esistente soddisfa il predicato, il suo valore viene aggiornato. Se nel pacchetto manca una proprietà nota che soddisfa il predicato, viene aggiunta al pacchetto.
UpdateProperties(Func<MetadataProperty, bool>, PropertyValue) Aggiorna le proprietà dei metadati noti che soddisfano il predicato specificato. L’operazione è ricorsiva quindi interessa anche tutti i pacchetti nidificati.

Osservazioni

Saperne di più

Esempi

Questo esempio mostra come aggiornare le proprietà dei metadati XMP.

using (Metadata metadata = new Metadata(Constants.GifWithXmp))
{
    IXmp root = metadata.GetRootPackage() as IXmp;
    if (root != null && root.XmpPackage != null)
    {
        // se non esiste tale schema nel pacchetto XMP, dovremmo 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;

        // Se non vuoi mantenere i vecchi valori, sostituisci l'intero schema
        root.XmpPackage.Schemes.XmpBasic = new XmpBasicPackage();
        root.XmpPackage.Schemes.XmpBasic.CreateDate = DateTime.Today;
        root.XmpPackage.Schemes.XmpBasic.BaseUrl = "https://groupdocs.it";
        root.XmpPackage.Schemes.XmpBasic.Rating = 5;

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

        // Imposta una proprietà di tipo complesso
        root.XmpPackage.Schemes.BasicJobTicket.Jobs = new[]
        {
            new XmpJob
            {
                ID = "1",
                Name = "test job",
                Url = "https://groupdocs.it"
            },
        };

        //... 

        metadata.Save(Constants.OutputGif);
    }
}

Guarda anche