Manipolare i metadati XMP
Aggiungi, modifica e recupera senza sforzo i metadati dai file EPS, ottenendo il controllo completo sulle informazioni del documento. Porta il contenuto dei file EPS a un nuovo livello con Aspose.Page Solution per C++!
I metadati XMP sono una raccolta di proprietà per descrivere un file. Sono scritti in formato XML. I metadati includono informazioni sul contenuto del file, dettagli identificativi che lo differenziano dagli altri file, e altri dati relativi alla cronologia di creazione, modifica e caricamento del file. Inoltre, registrano dettagli sugli utenti che hanno contribuito alla creazione, alla modifica e al caricamento del file.
Sfrutta il potenziale dei tuoi file EPS con la nostra soluzione API C++! Integrazione perfetta con i metadati XMP che ti dà il controllo completo sui tuoi documenti EPS. Che tu stia gestendo risorse digitali, migliorando le informazioni sul copyright o ottimizzando il tuo flusso di lavoro creativo, la nostra API semplifica il processo, garantendo precisione ed efficienza. Migliora le tue capacità di gestione dei metadati e ottieni informazioni più approfondite sui tuoi file EPS. Sperimenta l’integrazione perfetta con i metadati XMP utilizzando la nostra soluzione API C++. Acquista la soluzione oggi o prova semplicemente una versione di prova gratuita per scoprire le funzionalità di aggiunta, modifica e recupero dei metadati dai file EPS! Per ulteriori informazioni ed esempi su come lavorare con i metadati XMP, visita la documentazione dell’API Aspose.Page su GitHub . Prova anche la nostra app web Editor di Metadati XMP per vedere come le funzionalità possono essere utilizzate.
Per eseguire l'esempio di codice, avrai bisogno di:
L'API Aspose.Page per C++, un'API di manipolazione e conversione dei documenti ricca di funzionalità, potente e facile da usare per la piattaforma C++.
Puoi scaricare la sua versione più recente direttamente, basta aprire il gestore di pacchetti NuGet, cercare Aspose.Page.Cpp e installarlo. Puoi anche usare il seguente comando dalla Console del Gestore Pacchetti.
Package Manager Console Command
PM> Install-Package Aspose.Page.Cpp
Aggiungere metadati XMP a un file EPS con C++
Per inserire metadati XMP in EPS, dovrai utilizzare entità della XmpMetadata Class. Segui i prossimi passaggi:
- Imposta il percorso della directory in cui si trova il documento.
- Inizializza un flusso di input per il file EPS.
- Utilizza la Classe PsDocument per creare un file PS dal flusso di input.
- Recupera i metadati XMP chiamando il GetXmpMetadata() Metodo. Se il file EPS non contiene metadati XMP, otteniamo uno nuovo riempito con valori dai commenti dei metadati PS.
- Salva il documento EPS modificato chiamando il metodo Save().
Aggiungere metadati 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;
}
}
Modificare i metadati XMP di un file EPS con C++
Per aggiungere elementi di array ai metadati XMP, dovrai di nuovo utilizzare le stesse entità e seguire passaggi simili. Il passaggio aggiuntivo richiede l’uso di SetArrayItem o AddArrayItem()
Modificare i metadati 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 Cos'è il formato file EPS
EPS (Encapsulated PostScript) è un formato basato su PostScript che descrive una singola pagina. Ideale per grafica vettoriale e combinazioni vettoriale‑raster. Dopo l’importazione il file non è più modificabile; si consiglia di convertirlo in un formato editabile come SVG o PDF.