จัดการข้อมูลเมตา 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 สำหรับ C++ API ซึ่งเป็น API การจัดการเอกสารและการแปลงเอกสารที่มีฟีเจอร์หลากหลาย ทรงพลัง และใช้งานง่ายสำหรับแพลตฟอร์ม C++
คุณสามารถดาวน์โหลดเวอร์ชันล่าสุดได้โดยตรง เพียงเปิดตัวจัดการแพ็คเกจ NuGet แล้วค้นหา Aspose.Page.Cpp แล้วติดตั้ง คุณอาจใช้คำสั่งต่อไปนี้จาก Package Manager Console
Package Manager Console Command
PM> Install-Package Aspose.Page.Cpp
เพิ่มข้อมูลเมตา XMP ลงในไฟล์ EPS ด้วย C++
หากต้องการแทรกข้อมูลเมตา XMP ลงใน EPS คุณจะต้องใช้เอนทิตีของคลาส XmpMetadata ทำตามขั้นตอนต่อไป:
- กำหนดเส้นทางไปยังไดเร็กทอรีที่มีเอกสารอยู่
- เริ่มต้นสตรีมอินพุตสำหรับไฟล์ EPS
- ใช้ PsDocument Class เพื่อสร้างไฟล์ PS จากอินพุตสตรีม
- ดึงข้อมูลเมตา XMP โดยการเรียกเมธอด GetXmpMetadata() หากไฟล์ EPS ไม่มีข้อมูลเมตา XMP เราจะได้ไฟล์ใหม่ที่เต็มไปด้วยค่าจากความคิดเห็นข้อมูลเมตา PS
- บันทึกเอกสาร 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) หรือรูปแบบไฟล์ PostScript ที่ห่อหุ้มคือรูปแบบที่จริงๆ แล้วเป็นโปรแกรม PS ที่อธิบายว่าหน้าเดียวจะมีลักษณะอย่างไร จริงๆ แล้ว PS มีข้อ จำกัด บวกกับบันทึกย่อที่ช่วยห่อหุ้มกราฟิก PostScript ลงในเอกสารอื่น EPS รองรับกราฟิกแบบเวกเตอร์หรือกราฟิกแบบเวกเตอร์แรสเตอร์ที่รวมกันอย่างสมบูรณ์แบบ ลักษณะเฉพาะของรูปแบบคือทันทีที่นำเข้าสู่เอกสารแล้วจะไม่สามารถแก้ไขได้อีกต่อไป นั่นเป็นหนึ่งในเหตุผลในการแปลงรูปแบบนี้เป็นรูปแบบที่คุณสามารถใช้งานได้