Работа с XMP метаданными EPS
Добавляйте, редактируйте и получайте метаданные файлов EPS с помощью C#
Метаданные XMP представляют собой набор свойств, характеризующих файл и представленных в формате XML. Он содержит информацию о файле, которая описывает содержимое файла и идентификации, которые позволяют отличить этот файл от других файлов. Также в нем хранятся данные о создании и изменении, о пользователях, которые так или иначе принимали участие в создании, изменении и загрузке файла, а также история преобразования файла.
Решение Aspose.Page API, помимо других функций, позволяет работать с метаданными XMP файлов EPS. Здесь вы найдете информацию, объясняющую, как добавлять, редактировать и получать ее. Узнайте больше примеров работы с метаданными XMP . Попробуйте также наше веб-приложение Редактор метаданных XMP , чтобы узнать, как можно использовать эту функциональность.
Порядок действий по добавлению метаданных XMP в файл EPS C#
- Укажите путь к каталогу документов.
- Инициализировать входной поток файла EPS.
- Создайте PS-файл из потока, используя PsDocument Class .
- Чтобы получить метаданные XMP, используйте метод GetXmpMetadata() .
- Сохраните измененный документ 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#
- Укажите путь к каталогу документов.
- Инициализировать входной поток файла EPS.
- Создайте файл PS из потока, используя класс PsDocument.
- Чтобы получить метаданные XMP, используйте метод GetXmpMetadata().
- Чтобы изменить значения метаданных XMP, используйте метод SetArrayItem() .
- Сохраните измененный 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#
- Укажите путь к каталогу документов.
- Инициализировать входной поток файла EPS.
- Создайте файл PS из потока, используя класс PsDocument.
- Получите метаданные 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 прекрасно поддерживает векторную графику или комбинированную векторно-растровую графику. Особенность формата в том, что как только он импортируется в документ, его уже нельзя редактировать. Это одна из причин преобразовать этот формат в тот, с которым вы можете работать.