Benannten Wert in XMP-Metadaten von EPS|C++ ändern
Um den benannten Wert in den XMP-Metadaten der EPS-Datei zu ändern, müssen mehrere Schritte ausgeführt werden:
- Initialisieren Sie einen Eingabestream für die Eingabe-EPS-Datei.
- Erstellen Sie eine Instanz von PsDocument aus dem zuvor erstellten Eingabestream.
- Holen Sie sich eine Instanz von XmpMetadata aus dem PsDocument. Wenn die angegebene EPS-Datei keine XMP-Metadaten enthält, wird die neue Datei verwendet wird erstellt, mit Werten aus PS-Metadatenkommentaren gefüllt und an Sie zurückgegeben.
- Jetzt können Sie den benannten Wert von Strukturmetadatenfeldern ändern.
- Initialisieren Sie einen Ausgabestream für die Ausgabe-EPS-Datei.
- EPS-Datei mit geänderten XMP-Metadaten speichern.
Der folgende Codeausschnitt zeigt, wie man einen benannten Wert in XMP-Metadaten in einer EPS-Datei in C++ ändert:
1// For complete examples and data files, please go to https://github.com/aspose-page/Aspose.Page-for-C 2// The path to the documents directory. 3System::String dataDir = RunExamples::GetDataDir_WorkingWithXMPMetadataInEPS(); 4// Initialize EPS file input stream 5System::SharedPtr<System::IO::FileStream> psStream = System::MakeObject<System::IO::FileStream>(dataDir + u"add_named_value_input.eps", System::IO::FileMode::Open, System::IO::FileAccess::Read); 6// Create PsDocument instance from stream 7System::SharedPtr<PsDocument> document = System::MakeObject<PsDocument>(psStream); 8 9 10{ 11 auto __finally_guard_0 = ::System::MakeScopeGuard([&psStream]() 12 { 13 psStream->Close(); 14 }); 15 16 try 17 { 18 // 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) 19 System::SharedPtr<XmpMetadata> xmp = document->GetXmpMetadata(); 20 21 //Change XMP metadata values 22 23 // Add named value to "xmpTPg:MaxPageSize" structure. 24 xmp->AddNamedValue(u"xmpTPg:MaxPageSize", u"stDim:newKey", System::MakeObject<XmpValue>(u"NewValue")); 25 26 // Save EPS file with changed XMP metadata 27 28 // Create ouput stream 29 System::SharedPtr<System::IO::FileStream> outPsStream = System::MakeObject<System::IO::FileStream>(RunExamples::GetOutDir() + u"add_named_value_output.eps", System::IO::FileMode::Create, System::IO::FileAccess::Write); 30 31 // Save EPS file 32 33 { 34 auto __finally_guard_1 = ::System::MakeScopeGuard([&outPsStream]() 35 { 36 outPsStream->Close(); 37 }); 38 39 try 40 { 41 document->Save(outPsStream); 42 outPsStream->Flush(); 43 } 44 catch (...) 45 { 46 throw; 47 } 48 } 49 50 } 51 catch (...) 52 { 53 throw; 54 } 55}Sie können Beispiele und Datendateien herunterladen von GitHub.