XmpPacketWrapper

XmpPacketWrapper class

Contient un package XMP sérialisé comprenant un en-tête et une fin. Un wrapper composé d’une paire d’instructions de traitement XML (PI) peut être placé autour de l’élément rdf:RDF.

public class XmpPacketWrapper : MetadataPackage, IXmpType

Constructeurs

Nom La description
XmpPacketWrapper() Initialise une nouvelle instance duXmpPacketWrapper classe.
XmpPacketWrapper(XmpHeaderPI, XmpTrailerPI, XmpMeta) Initialise une nouvelle instance duXmpPacketWrapper classe.

Propriétés

Nom La description
Count { get; } Obtient le nombre de propriétés de métadonnées.
HeaderPI { get; set; } Obtient ou définit l’instruction de traitement d’en-tête.
Item { get; } Obtient leMetadataProperty avec le nom spécifié.
Keys { get; } Obtient une collection des noms de propriétés de métadonnées.
Meta { get; set; } Obtient ou définit la méta XMP.
MetadataType { get; } Obtient le type de métadonnées.
PackageCount { get; } Obtient le nombre de packages à l’intérieur de la structure XMP.
Packages { get; } Obtient un tableau deXmpPackage dans XMP.
PropertyDescriptors { get; } Obtient une collection de descripteurs contenant des informations sur les propriétés accessibles via le moteur de recherche GroupDocs.Metadata.
Schemes { get; } Fournit un accès aux schémas XMP connus.
TrailerPI { get; set; } Obtient ou définit l’instruction de traitement de fin.

Méthodes

Nom La description
AddPackage(XmpPackage) Ajoute le package.
AddProperties(Func<MetadataProperty, bool>, PropertyValue) Ajoute des propriétés de métadonnées connues satisfaisant le prédicat spécifié. L’opération est récursive, elle affecte donc également tous les packages imbriqués.
ClearPackages() Supprime toutXmpPackage dans XMP.
Contains(string) Détermine si le package contient une propriété de métadonnées avec le nom spécifié.
ContainsPackage(string) Détermine si le package existe dans le wrapper XMP.
virtual FindProperties(Func<MetadataProperty, bool>) Trouve les propriétés de métadonnées satisfaisant le prédicat spécifié. La recherche est récursive, elle affecte donc également tous les packages imbriqués.
GetEnumerator() Renvoie un énumérateur qui parcourt la collection.
GetPackage(string) Obtient le package par espace de noms uri.
GetXmpRepresentation() Renvoie la valeur contenue dans la chaîne au format XMP.
RemovePackage(XmpPackage) Supprime le package spécifié.
virtual RemoveProperties(Func<MetadataProperty, bool>) Supprime les propriétés de métadonnées satisfaisant le prédicat spécifié.
virtual Sanitize() Supprime les propriétés de métadonnées inscriptibles du package. L’opération est récursive, elle affecte donc également tous les packages imbriqués.
SetProperties(Func<MetadataProperty, bool>, PropertyValue) Définit les propriétés de métadonnées connues satisfaisant le prédicat spécifié. L’opération est récursive et affecte donc également tous les packages imbriqués. Cette méthode est une combinaison deAddProperties etUpdateProperties Si une propriété existante satisfait le prédicat, sa valeur est mise à jour. S’il manque une propriété connue dans le package qui satisfait le prédicat, elle est ajoutée au package.
UpdateProperties(Func<MetadataProperty, bool>, PropertyValue) Met à jour les propriétés de métadonnées connues satisfaisant le prédicat spécifié. L’opération est récursive et affecte donc également tous les packages imbriqués.

Remarques

Apprendre encore plus

Exemples

Cet exemple montre comment mettre à jour les propriétés des métadonnées XMP.

using (Metadata metadata = new Metadata(Constants.GifWithXmp))
{
    IXmp root = metadata.GetRootPackage() as IXmp;
    if (root != null && root.XmpPackage != null)
    {
        // s'il n'y a pas un tel schéma dans le package XMP, nous devrions le créer
        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 vous ne souhaitez pas conserver les anciennes valeurs, remplacez simplement l'ensemble du schéma
        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();

        // Définit une propriété de type complexe
        root.XmpPackage.Schemes.BasicJobTicket.Jobs = new[]
        {
            new XmpJob
            {
                ID = "1",
                Name = "test job",
                Url = "https://groupdocs.com"
            },
        };

        // ... 

        metadata.Save(Constants.OutputGif);
    }
}

Voir également