Az XMP metaadatok kezelése
Könnyedén hozzáadhat, szerkeszthet és visszakereshet metaadatokat az EPS-fájlokból, így teljes mértékben kézben tarthatja a dokumentum adatait. Emelje új szintre az EPS-fájlok tartalmát az Aspose.Page Solution for C++ segítségével!
Az XMP metaadatok egy fájl leírására szolgáló tulajdonságok gyűjteménye. XML formátumban van írva. A metaadatok tartalmazzák a fájl tartalmára vonatkozó információkat, a többi fájltól megkülönböztető azonosító adatokat, valamint a fájl létrehozásával, módosításával és feltöltési előzményeivel kapcsolatos egyéb adatokat. Ezenkívül rögzíti azon felhasználók adatait, akik hozzájárultak a fájl létrehozásához, szerkesztéséhez és feltöltéséhez.
Fedezze fel EPS-fájlok erejét C++ API-megoldásunkkal! Zökkenőmentes integráció az XMP metaadatokkal, amely teljes ellenőrzést biztosít az EPS-dokumentumok felett. Legyen szó digitális eszközök kezeléséről, szerzői jogi információk bővítéséről vagy kreatív munkafolyamatának optimalizálásáról, API-nk leegyszerűsíti a folyamatot, pontosságot és hatékonyságot biztosítva. Javítsa metaadatkezelési képességeit, és nyerjen mélyebb betekintést az EPS-fájlokba. Tapasztalja meg az XMP metaadatok zökkenőmentes integrációját C++ API-megoldásunk segítségével. Vásárolja meg a megoldást még ma, vagy csak egy ingyenes próbaverzióval fedezze fel az EPS-fájlok metaadatok hozzáadásának, szerkesztésének és lekérésének funkcióit! További információért és példákért az XMP-metaadatokkal való munkavégzésről tekintse meg az Aspose.Page API dokumentációját a [GitHub] webhelyen ( https://github.com/aspose-tex/Aspose.TeX-for-C/) . Próbálja ki XMP Metadata Editor webalkalmazásunkat is, hogy megtudja, hogyan használható a funkció.
A kódpélda futtatásához a következőkre lesz szüksége:
Aspose.Page for C++ API, amely egy funkciókban gazdag, hatékony és könnyen használható dokumentumkezelési és -konverziós API C++ platformhoz.
A legújabb verziót közvetlenül letöltheti, csak nyissa meg a NuGet csomagkezelőt, keresse meg az Aspose.Page.Cpp fájlt, és telepítse. A következő parancsot is használhatja a Package Manager konzolból.
Package Manager Console Command
PM> Install-Package Aspose.Page.Cpp
Adjon XMP-metaadatokat egy EPS-fájlhoz C++ segítségével
Az XMP-metaadatok EPS-be való beillesztéséhez az XmpMetadata osztály entitásait kell használnia. Tegye meg a következő lépéseket:
- Állítsa be annak a könyvtárnak az elérési útját, ahol a dokumentum található.
- Inicializáljon egy bemeneti adatfolyamot az EPS-fájlhoz.
- A PsDocument Class használatával PS fájlt hozhat létre a bemeneti adatfolyamból.
- A GetXmpMetadata() metódus hívásával kérheti le az XMP-metaadatokat. Ha az EPS-fájl nem tartalmaz XMP-metaadatokat, egy újat kapunk, amely tele van a PS-metaadatok megjegyzéseiből származó értékekkel.
- Mentse el a módosított EPS dokumentumot a Save() metódus meghívásával.
XMP metaadatok hozzáadása
// 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; | |
} | |
} |
Módosítsa az EPS-fájl XMP-metaadatait a C++ segítségével
Ha tömbelemeket szeretne hozzáadni az XMP metaadatokhoz, ismét ugyanazokat az entitásokat kell használnia, és hasonló lépéseket kell tennie. A további lépéshez a SetArrayItem vagy az AddArrayItem()
XMP metaadatok módosítása
// 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 Mi a EPS fájlformátum
Az EPS (ERSF) vagy az Encapsulated PostScript File Format az a formátum, amely valójában egy PS-program, amely leírja, hogyan nézzen ki egy oldal. Valójában korlátozott PS és különleges megjegyzések, amelyek segítenek a PostScript grafikák egy másik dokumentumba ágyazásában. Az EPS tökéletesen támogatja a vektorgrafikát vagy a kombinált vektor-raszteres grafikát. A formátum sajátossága, hogy amint egy dokumentumba importálják, már nem szerkeszthető. Ez az egyik oka annak, hogy ezt a formátumot olyanra alakítsa, amellyel dolgozni tud.