التعامل مع بيانات تعريف XMP

يمكنك إضافة بيانات التعريف وتحريرها واستردادها بسهولة من ملفات EPS، مما يتيح لك التحكم الكامل في معلومات مستندك. ارفع محتوى ملفات EPS إلى مستوى جديد باستخدام Aspose.Page Solution لـ C++!

 

بيانات تعريف XMP عبارة عن مجموعة من الخصائص لوصف ملف. وهو مكتوب بتنسيق XML. تتضمن البيانات الوصفية معلومات حول محتوى الملف، وتفاصيل التعريف التي تميزه عن الملفات الأخرى، والبيانات الأخرى المتعلقة بإنشاء الملف وتعديله وتاريخ تحميله. بالإضافة إلى ذلك، فإنه يسجل تفاصيل حول المستخدمين الذين ساهموا في إنشاء الملف وتحريره وتحميله.

أطلق العنان لقوة ملفات EPS الخاصة بك من خلال حل C++ API الخاص بنا! التكامل السلس مع بيانات تعريف XMP التي تمنحك التحكم الكامل في مستندات EPS الخاصة بك. سواء كنت تدير الأصول الرقمية، أو تعزز معلومات حقوق الطبع والنشر، أو تعمل على تحسين سير العمل الإبداعي، فإن واجهة برمجة التطبيقات (API) الخاصة بنا تعمل على تبسيط العملية، مما يضمن الدقة والكفاءة. قم بتحسين قدرات معالجة البيانات التعريفية لديك واكتسب رؤى أعمق حول ملفات EPS الخاصة بك. استمتع بالتكامل السلس مع بيانات تعريف XMP باستخدام حل C++ API الخاص بنا. قم بشراء الحل اليوم أو احصل على نسخة تجريبية مجانية لاكتشاف وظيفة إضافة البيانات التعريفية وتحريرها واستردادها من ملفات EPS! لمزيد من المعلومات والأمثلة حول العمل مع بيانات تعريف XMP، قم بزيارة وثائق Aspose.Page API على GitHub . جرّب أيضًا تطبيق الويب XMP Metadata Editor لمعرفة كيفية استخدام الوظيفة.

لتشغيل مثال التعليمات البرمجية، ستحتاج إلى:

  • Aspose.Page for C++ API وهي واجهة برمجة تطبيقات غنية بالميزات وقوية وسهلة الاستخدام لمعالجة المستندات وتحويلها لمنصة C++.

  • يمكنك تنزيل أحدث إصدار مباشرةً، ما عليك سوى فتح مدير الحزم NuGet، والبحث عن Aspose.Page.Cpp وتثبيته. يمكنك أيضًا استخدام الأمر التالي من وحدة تحكم إدارة الحزم.

Package Manager Console Command

    PM> Install-Package Aspose.Page.Cpp

أضف بيانات تعريف XMP إلى ملف EPS باستخدام C++

لإدراج بيانات تعريف XMP في EPS، ستحتاج إلى استخدام كيانات من فئة XmpMetadata . اتخذ الخطوات التالية:

  1. قم بتعيين المسار إلى الدليل الذي يوجد به المستند.
  2. تهيئة دفق الإدخال لملف EPS.
  3. استخدم فئة PsDocument لإنشاء ملف PS من دفق الإدخال.
  4. قم باسترداد بيانات تعريف XMP عن طريق استدعاء طريقة GetXmpMetadata() . إذا كان ملف EPS لا يحتوي على بيانات تعريف XMP، فسنحصل على ملف جديد مملوء بالقيم من تعليقات بيانات تعريف PS.
  5. احفظ مستند EPS الذي تم تغييره عن طريق استدعاء الأسلوب Save().
أضف بيانات تعريف XMP
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir_WorkingWithXMPMetadataInEPS();
// Initialize EPS file input stream
System::SharedPtr<System::IO::FileStream> psStream = System::MakeObject<System::IO::FileStream>(dataDir + u"add_input.eps", System::IO::FileMode::Open, System::IO::FileAccess::Read);
// Create PsDocument instance from stream
System::SharedPtr<PsDocument> document = System::MakeObject<PsDocument>(psStream);
{
auto __finally_guard_0 = ::System::MakeScopeGuard([&psStream]()
{
psStream->Close();
});
try
{
// Get XMP metadata. If EPS file doesn't contain XMP metadata we get new one filled with values from PS metadata comments (%%Creator, %%CreateDate, %%Title etc)
System::SharedPtr<XmpMetadata> xmp = document->GetXmpMetadata();
// Check metadata values extracted from PS metadata comments and set up in new XMP metadata
// Get "CreatorTool" value
if (xmp->Contains(u"xmp:CreatorTool"))
{
System::Console::WriteLine(System::String(u"CreatorTool: ") + xmp->idx_get(u"xmp:CreatorTool")->ToStringValue());
}
// Get "CreateDate" value
if (xmp->Contains(u"xmp:CreateDate"))
{
System::Console::WriteLine(System::String(u"CreateDate: ") + xmp->idx_get(u"xmp:CreateDate")->ToStringValue());
}
// Get "format" value
if (xmp->Contains(u"dc:format"))
{
System::Console::WriteLine(System::String(u"Format: ") + xmp->idx_get(u"dc:format")->ToStringValue());
}
// Get "title" value
if (xmp->Contains(u"dc:title"))
{
System::Console::WriteLine(System::String(u"Title: ") + xmp->idx_get(u"dc:title")->ToArray()->idx_get(0)->ToStringValue());
}
// Get "creator" value
if (xmp->Contains(u"dc:creator"))
{
System::Console::WriteLine(System::String(u"Creator: ") + xmp->idx_get(u"dc:creator")->ToArray()->idx_get(0)->ToStringValue());
}
// Get "MetadataDate" value
if (xmp->Contains(u"xmp:MetadataDate"))
{
System::Console::WriteLine(System::String(u"MetadataDate: ") + xmp->idx_get(u"xmp:MetadataDate")->ToStringValue());
}
// Save EPS file with new XMP metadata
// Create ouput stream
{
System::SharedPtr<System::IO::FileStream> outPsStream = System::MakeObject<System::IO::FileStream>(dataDir + u"output/" + u"add_output.eps", System::IO::FileMode::Create, System::IO::FileAccess::Write);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_1({ outPsStream});
// ------------------------------------------
try
{
// Save EPS file
document->Save(outPsStream);
}
catch(...)
{
__dispose_guard_1.SetCurrentException(std::current_exception());
}
}
}
catch (...)
{
throw;
}
}

تغيير بيانات تعريف XMP لملف EPS باستخدام C++

لإضافة عناصر المصفوفة إلى بيانات تعريف XMP، ستحتاج مرة أخرى إلى استخدام نفس الكيانات واتخاذ خطوات مماثلة. تتطلب الخطوة الإضافية استخدام SetArrayItem أو AddArrayItem()

تغيير بيانات تعريف XMP
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir_WorkingWithXMPMetadataInEPS();
// Initialize EPS file input stream
System::SharedPtr<System::IO::FileStream> psStream = System::MakeObject<System::IO::FileStream>(dataDir + u"add_simple_props_input.eps", System::IO::FileMode::Open, System::IO::FileAccess::Read);
// Create PsDocument instance from stream
System::SharedPtr<PsDocument> document = System::MakeObject<PsDocument>(psStream);
{
auto __finally_guard_0 = ::System::MakeScopeGuard([&psStream]()
{
psStream->Close();
});
try
{
// Get XMP metadata. If EPS file doesn't contain XMP metadata we get new one filled with values from PS metadata comments (%%Creator, %%CreateDate, %%Title etc)
System::SharedPtr<XmpMetadata> xmp = document->GetXmpMetadata();
//Change XMP metadata values
// Add one more title. I will be added at the end of array by default.
xmp->AddArrayItem(u"dc:title", System::MakeObject<XmpValue>(u"NewTitle"));
// Add one more creator. It will be added in the array by an index (0).
xmp->AddArrayItem(u"dc:creator", 0, System::MakeObject<XmpValue>(u"NewCreator"));
// Save EPS file with changed XMP metadata
// Create ouput stream
{
System::SharedPtr<System::IO::FileStream> outPsStream = System::MakeObject<System::IO::FileStream>(dataDir + u"output/" + u"add_array_items_output.eps", System::IO::FileMode::Create, System::IO::FileAccess::Write);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_1({ outPsStream});
// ------------------------------------------
try
{
// Save EPS file
document->Save(outPsStream);
}
catch(...)
{
__dispose_guard_1.SetCurrentException(std::current_exception());
}
}
}
catch (...)
{
throw;
}
}

EPS ما هو EPS تنسيق الملف

EPS (ERSF) أو تنسيق ملف Encapsulated PostScript هو التنسيق الذي هو في الواقع برنامج PS يصف الشكل الذي ستبدو عليه صفحة واحدة. إنه في الواقع PS محدود بالإضافة إلى ملاحظات معينة تساعد في تغليف رسومات PostScript في مستند آخر. يدعم EPS بشكل مثالي الرسومات المتجهة أو الرسومات النقطية المدمجة. خصوصية التنسيق هي أنه بمجرد استيراده إلى مستند ، لا يمكن تحريره بعد الآن. هذا هو أحد أسباب تحويل هذا التنسيق إلى التنسيق الذي يمكنك العمل معه.