IptcRecordSet

IptcRecordSet class

表示 IPTC 记录的集合。

public sealed class IptcRecordSet : CustomPackage

构造函数

姓名 描述
IptcRecordSet() 初始化一个新的实例IptcRecordSet类.
IptcRecordSet(IptcDataSet[]) 初始化一个新的实例IptcRecordSet类.

特性

姓名 描述
ApplicationRecord { get; set; } 获取或设置应用程序记录。
Count { get; } 获取元数据属性的数量。
EnvelopeRecord { get; set; } 获取或设置信封记录。
Item { get; } 获取IptcRecord用指定的数字. (3 indexers)
Keys { get; } 获取元数据属性名称的集合。
MetadataType { get; } 获取元数据类型。
PropertyDescriptors { get; } 获取描述符集合,其中包含有关可通过 GroupDocs.Metadata 搜索引擎访问的属性的信息。

方法

姓名 描述
Add(IptcDataSet) 将指定的数据集添加到适当的记录中。 如果具有指定编号的数据集已经存在,则该数据集被认为是可重复的。
AddProperties(Func<MetadataProperty, bool>, PropertyValue) 添加满足指定谓词的已知元数据属性。 该操作是递归的,因此它也会影响所有嵌套包。
Clear() 从集合中删除所有记录。
Contains(string) 确定包是否包含具有指定名称的元数据属性。
virtual FindProperties(Func<MetadataProperty, bool>) 查找满足指定谓词的元数据属性。 搜索是递归的,因此它也会影响所有嵌套包。
GetEnumerator() 返回一个遍历集合的枚举器。
Remove(byte) 删除具有指定记录号的记录。
Remove(byte, byte) 删除具有指定记录和数据集编号的数据集。
virtual RemoveProperties(Func<MetadataProperty, bool>) 删除满足指定谓词的元数据属性。
virtual Sanitize() 从包中删除可写元数据属性。 该操作是递归的,因此它也会影响所有嵌套包。
Set(IptcDataSet) 在适当的记录中添加或更新指定的数据集。
SetProperties(Func<MetadataProperty, bool>, PropertyValue) 设置满足指定谓词的已知元数据属性。 该操作是递归的,因此它也会影响所有嵌套包。 此方法是以下方法的组合AddPropertiesUpdateProperties 如果现有属性满足谓词,则更新其值。 如果包中缺少满足谓词的已知属性,则将其添加到包中。
ToDataSetList() 从包中创建数据集列表。
ToList() 从包中创建一个列表。
UpdateProperties(Func<MetadataProperty, bool>, PropertyValue) 更新满足指定谓词的已知元数据属性。 该操作是递归的,因此它也会影响所有嵌套包。

评论

了解更多

例子

此代码示例显示更新基本 IPTC 元数据属性的热点。

using (Metadata metadata = new Metadata(Constants.InputJpeg))
{
    IIptc root = metadata.GetRootPackage() as IIptc;
    if (root != null)
    {
        // 如果缺少 IPTC 包,则设置它
        if (root.IptcPackage == null)
        {
            root.IptcPackage = new IptcRecordSet();
        }

        if (root.IptcPackage.EnvelopeRecord == null)
        {
            root.IptcPackage.EnvelopeRecord = new IptcEnvelopeRecord();
        }

        root.IptcPackage.EnvelopeRecord.DateSent = DateTime.Now;
        root.IptcPackage.EnvelopeRecord.ProductID = Guid.NewGuid().ToString();

        // ...

        if (root.IptcPackage.ApplicationRecord == null)
        {
            root.IptcPackage.ApplicationRecord = new IptcApplicationRecord();
        }

        root.IptcPackage.ApplicationRecord.ByLine = "GroupDocs";
        root.IptcPackage.ApplicationRecord.Headline = "test";
        root.IptcPackage.ApplicationRecord.ByLineTitle = "code sample";
        root.IptcPackage.ApplicationRecord.ReleaseDate = DateTime.Today;

        // ...

        metadata.Save(Constants.OutputJpeg);
    }
}

也可以看看