Работа с XMP метаданными EPS

Добавляйте, редактируйте и получайте метаданные файлов EPS с помощью C#

 

Метаданные XMP представляют собой набор свойств, характеризующих файл и представленных в формате XML. Он содержит информацию о файле, которая описывает содержимое файла и идентификации, которые позволяют отличить этот файл от других файлов. Также в нем хранятся данные о создании и изменении, о пользователях, которые так или иначе принимали участие в создании, изменении и загрузке файла, а также история преобразования файла.

Решение Aspose.Page API, помимо других функций, позволяет работать с метаданными XMP файлов EPS. Здесь вы найдете информацию, объясняющую, как добавлять, редактировать и получать ее. Узнайте больше примеров работы с метаданными XMP . Попробуйте также наше веб-приложение Редактор метаданных XMP , чтобы узнать, как можно использовать эту функциональность.

Порядок действий по добавлению метаданных XMP в файл EPS C#

  1. Укажите путь к каталогу документов.
  2. Инициализировать входной поток файла EPS.
  3. Создайте PS-файл из потока, используя PsDocument Class .
  4. Чтобы получить метаданные XMP, используйте метод GetXmpMetadata() .
  5. Сохраните измененный документ EPS с помощью метода Save() .

Код C# для добавления метаданных XMP

    using Aspose.Page.EPS;
    using Aspose.Page.EPS.Device;
    using Aspose.Page.EPS.XMP;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_WorkingWithXMPMetadataInEPS();
    // Initialize an EPS file input stream
    System.IO.FileStream psStream = new System.IO.FileStream(dataDir + "add_input.eps", System.IO.FileMode.Open, System.IO.FileAccess.Read);
    // Create the PsDocument instance from the stream
    PsDocument document = new PsDocument(psStream);            

    try
    {
        // Get XMP metadata. If the EPS file doesn't contain XMP metadata we get new one filled with values from PS metadata comments (%%Creator, %%CreateDate, %%Title etc)
        XmpMetadata xmp = document.GetXmpMetadata();

        // Check metadata values extracted from PS metadata comments and set up in new XMP metadata

        // Get the "CreatorTool" value
        if (xmp.Contains("xmp:CreatorTool"))
        Console.WriteLine("CreatorTool: " + xmp["xmp:CreatorTool"].ToStringValue());

        // Get the "CreateDate" value
        if (xmp.Contains("xmp:CreateDate"))
            Console.WriteLine("CreateDate: " + xmp["xmp:CreateDate"].ToStringValue());

        // Get the "format" value
        if (xmp.Contains("dc:format"))
            Console.WriteLine("Format: " + xmp["dc:format"].ToStringValue());

        // Get the "title" value
        if (xmp.Contains("dc:title"))
            Console.WriteLine("Title: " + xmp["dc:title"].ToArray()[0].ToStringValue());

        // Get the "creator" value
        if (xmp.Contains("dc:creator"))
            Console.WriteLine("Creator: " + xmp["dc:creator"].ToArray()[0].ToStringValue());

        // Get the "MetadataDate" value
        if (xmp.Contains("xmp:MetadataDate"))
            Console.WriteLine("MetadataDate: " + xmp["xmp:MetadataDate"].ToStringValue());

        // Save the EPS file with new XMP metadata

        // Create the ouput stream
        using (System.IO.FileStream outPsStream = new System.IO.FileStream(dataDir + "add_output.eps", System.IO.FileMode.Create, System.IO.FileAccess.Write))
        {
            // Save the EPS file
            document.Save(outPsStream);
        }

    }
    finally
    {
        psStream.Close();
    }

Порядок действий по редактированию метаданных XMP в файл EPS C#

  1. Укажите путь к каталогу документов.
  2. Инициализировать входной поток файла EPS.
  3. Создайте файл PS из потока, используя класс PsDocument.
  4. Чтобы получить метаданные XMP, используйте метод GetXmpMetadata().
  5. Чтобы изменить значения метаданных XMP, используйте метод SetArrayItem() .
  6. Сохраните измененный EPS-файл.

Код C# для изменения метаданных XMP

    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_WorkingWithXMPMetadataInEPS();
    // Initialize an EPS file input stream
    System.IO.FileStream psStream = new System.IO.FileStream(dataDir + "add_simple_props_input.eps", System.IO.FileMode.Open, System.IO.FileAccess.Read);
    // Create a PsDocument instance from the stream
    PsDocument document = new PsDocument(psStream);            

    try
    {
        // Get XMP metadata. If the EPS file doesn't contain XMP metadata we get new one filled with values from PS metadata comments (%%Creator, %%CreateDate, %%Title etc)
        XmpMetadata xmp = document.GetXmpMetadata();

        //Change the XMP metadata values

        // Change the title item at index 0
        xmp.SetArrayItem("dc:title", 0, new XmpValue("NewTitle"));

        // Change the creator item at index 0
        xmp.SetArrayItem("dc:creator", 0, new XmpValue("NewCreator"));

        // Save the EPS file with the changed XMP metadata

        // Create an ouput stream
        using (System.IO.FileStream outPsStream = new System.IO.FileStream(dataDir + "change_array_items_output.eps", System.IO.FileMode.Create, System.IO.FileAccess.Write))
        {
            // Save the EPS file
            document.Save(outPsStream);
        }

    }
    finally
    {
        psStream.Close();
    }

Шаги для получения метаданных XMP файла EPS C#

  1. Укажите путь к каталогу документов.
  2. Инициализировать входной поток файла EPS.
  3. Создайте файл PS из потока, используя класс PsDocument.
  4. Получите метаданные XMP с помощью метода GetXmpMetadata().

Код С# для получения метаданных XMP

    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_WorkingWithXMPMetadataInEPS();
    // Initialize an EPS file input stream
    System.IO.FileStream psStream = new System.IO.FileStream(dataDir + "get_input.eps", System.IO.FileMode.Open, System.IO.FileAccess.Read);
    // Create a PsDocument instance from the stream
    PsDocument document = new PsDocument(psStream);            

    try
    {
        // Get XMP metadata. If the EPS file doesn't contain XMP metadata we get new one filled with values from PS metadata comments (%%Creator, %%CreateDate, %%Title etc)
        XmpMetadata xmp = document.GetXmpMetadata();

        // Get the "CreatorTool" value
        if (xmp.Contains("xmp:CreatorTool"))
            Console.WriteLine("CreatorTool: " + xmp["xmp:CreatorTool"].ToStringValue());
                
        // Get the "CreateDate" value
        if (xmp.Contains("xmp:CreateDate"))
            Console.WriteLine("CreateDate: " + xmp["xmp:CreateDate"].ToStringValue());

        // Get a width of a thumbnail image if exists
        if (xmp.Contains("xmp:Thumbnails") && xmp["xmp:Thumbnails"].IsArray)
        {
            XmpValue val = xmp["xmp:Thumbnails"].ToArray()[0];
            if (val.IsNamedValues && val.ToDictionary().ContainsKey("xmpGImg:width"))
                Console.WriteLine("Thumbnail Width: " + val.ToDictionary()["xmpGImg:width"].ToInteger());
        }

        // Get the "Format" value
        if (xmp.Contains("dc:format"))
            Console.WriteLine("Format: " + xmp["dc:format"].ToStringValue());

        // Get the "DocumentID" value
        if (xmp.Contains("xmpMM:DocumentID"))
            Console.WriteLine("DocumentID: " + xmp["xmpMM:DocumentID"].ToStringValue());

    }
    finally
    {
        psStream.Close();
    }



Часто задаваемые вопросы

1. Что такое метаданные XMP?

XMP — это аббревиатура от Extensible Metadata Platform — стандарта для внедрения свойств метаданных в медиафайлы.

2. Какая информация содержится в XMP?

Имеется информация об авторе, редакторе и создателе приложения с версией, названием, описанием, ключевыми словами, идентификаторами, позволяющими однозначно идентифицировать файл и информацию об истории.

3. Как добавить метаданные XMP в файл EPS?

Задайте путь к каталогу документов и создайте файл EPS из потока. Чтобы добавить метаданные XMP, используйте методы Add() класса XmpMetadata.

EPS Формат файла EPS

EPS (ERSF) или Encapsulated PostScript File Format — это формат, который на самом деле представляет собой программу PS, описывающую, как будет выглядеть отдельная страница. На самом деле это ограниченный PS плюс специальные примечания, которые помогают инкапсулировать графику PostScript в другой документ. EPS прекрасно поддерживает векторную графику или комбинированную векторно-растровую графику. Особенность формата в том, что как только он импортируется в документ, его уже нельзя редактировать. Это одна из причин преобразовать этот формат в тот, с которым вы можете работать.