Робота з метаданими XMP файлів EPS
Додавайте, редагуйте та отримуйте метадані файлів EPS за допомогою C# API
Метадані XMP — це набір властивостей, які характеризують файл і представлені у форматі XML. Вони містять інформацію про файл, яка описує вміст файлу та ідентифікатори, які дозволяють відрізнити цей файл від інших файлів, і також зберігає дані про створення та модифікацію, користувачів, які так чи інакше брали участь у створенні, зміні та завантаженні файлу, а також історію перетворення файлу.
API-рішення Aspose.Page іншого, дозволяє працювати з метаданими XMP файлів EPS. На цій сторінці ви знайдете інформацію, яка пояснює, як їх додавати, редагувати та отримувати. Дізнайтеся більше прикладів роботи з метаданими XMP . Спробуйте також веб-програму XMP Metadata Editor , щоб побачити, як практично можна використовувати цю функціональність.
Кроки для додавання метаданих 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().
Код 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 + "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();
}
FAQ
1. Що таке метадані XMP?
XMP — це абревіатура від Extensible Metadata Platform — стандарт для вбудовування властивостей метаданих у медіафайли.
2. Яка інформація міститься в XMP?
Є інформація про автора, редактора та творця програми з версією, назвою, описом, ключовими словами, ідентифікаторами, які дозволяють однозначно ідентифікувати файл та відомостями про історію.
3. Як додати метадані XMP до файлу EPS?
Вкажіть шлях до каталогу документів і створіть файл EPS із потоку. Щоб додати метадані XMP, використовуйте методи Add() класу XmpMetadata.
EPS What is EPS File Format
EPS (EPSF) або формат файлу Інкапсульований PostScript — це формат, який насправді є програмою PS, яка описує, як виглядатиме окрема сторінка. Тобто це обмежений PS плюс окремі примітки, які допомагають інкапсулювати графіку PostScript в інший документ. EPS відмінно підтримує векторну графіку або комбіновану векторно-растрову графіку. Особливістю формату є те, що як тільки він імпортується в документ, його вже не можна редагувати. Це одна з причин конвертації цього формату на той, з яким ви легше працювати.