Lettura e aggiunta di metadati XMP nei documenti EPS/PS con Java
Estrai, esamina, aggiungi e aggiorna i metadati XMP (Extensible Metadata Platform) nei documenti EPS e PostScript (PS) utilizzando Aspose.Page for Java. Incorpora proprietà Dublin Core standard, statistiche sulla creazione del documento, dettagli sul copyright e strutture di metadati personalizzate direttamente nei flussi di file PostScript senza alterare il contenuto visivo della grafica vettoriale sottostante.
Aspose.Page for Java fornisce un modello a oggetti ad alte prestazioni XmpHeaderConverter e XmpMetadata per estrarre i metadati XMP esistenti o inserire nuove proprietà nei file EPS/PS.
- Per leggere informazioni come i dettagli dell’autore, le date di creazione, le note sul copyright e gli attributi personalizzati dai file EPS, utilizzare il metodo
XmpMetadata.add(). - Per modificare i campi dei metadati esistenti, come i titoli dei documenti o la cronologia delle modifiche, utilizzare il metodo
XmpMetadata.set(). - Per aggiungere attributi di metadati proprietari e specifici dell’azienda ai file grafici, utilizzare il metodo
XmpMetadata.registerNamespace().
Lettura dei metadati XMP esistenti da un file EPS
Estrai e analizza le proprietà XMP standard e definite dall’utente da un documento EPS per esaminare campi di metadati come dc:title, xmp:CreatorTool e xmp:CreateDate.
import com.aspose.page.xps.XpsDocument;
import com.aspose.page.xps.XpsPrintTicket;
public class ReadXpsPrintTicket {
public static void main(String[] args) throws Exception {
// Open existing XPS document
XpsDocument doc = new XpsDocument("C:/XPSProject/Input/sample.xps");
// Retrieve the Job-level Print Ticket
XpsPrintTicket printTicket = doc.getJobPrintTicket();
if (printTicket != null) {
System.out.println("Print Ticket found in XPS package.");
// Print raw XML string content of the Print Ticket
System.out.println(printTicket.getXml());
} else {
System.out.println("No Job Print Ticket associated with this document.");
}
doc.close();
}
}Aggiunta e inserimento di nuovi metadati XMP in un file EPS
Inserisci proprietà di metadati standard (come gli schemi Dublin Core o XMP Basic) in un documento EPS e salva il file di output aggiornato.
import com.aspose.page.xps.XpsDocument;
import com.aspose.page.xps.XpsPrintTicket;
import java.io.FileInputStream;
public class AttachJobPrintTicket {
public static void main(String[] args) throws Exception {
// Load target XPS document
XpsDocument doc = new XpsDocument("C:/XPSProject/Input/document.xps");
// Read custom Print Ticket XML file specifying printer settings
FileInputStream ticketStream = new FileInputStream("C:/XPSProject/Config/custom_job_ticket.xml");
XpsPrintTicket customTicket = new XpsPrintTicket(ticketStream);
// Assign Print Ticket to Job level
doc.setJobPrintTicket(customTicket);
// Save updated XPS document
doc.save("C:/XPSProject/Output/document_with_print_ticket.xps");
ticketStream.close();
System.out.println("Job-level Print Ticket attached successfully.");
}
}Aggiunta di namespace denominati personalizzati e metadati array
Registra namespace XML specifici dell’azienda e archivia tipi di dati complessi, come gli elenchi di array, all’interno della struttura XMP del documento.
import com.aspose.page.xps.XpsDocument;
import com.aspose.page.xps.XpsPage;
import com.aspose.page.xps.XpsPrintTicket;
import java.io.FileInputStream;
public class AttachPagePrintTicket {
public static void main(String[] args) throws Exception {
XpsDocument doc = new XpsDocument("C:/XPSProject/Input/multi_page.xps");
// Get reference to the first page (Cover Page)
XpsPage coverPage = doc.getPage(1);
// Load cover-page specific print settings (e.g., Heavyweight Paper Tray)
FileInputStream coverTicketStream = new FileInputStream("C:/XPSProject/Config/cover_page_ticket.xml");
XpsPrintTicket coverTicket = new XpsPrintTicket(coverTicketStream);
// Set Print Ticket on Page 1
coverPage.setPagePrintTicket(coverTicket);
// Save compiled XPS package
doc.save("C:/XPSProject/Output/multi_page_custom_trays.xps");
coverTicketStream.close();
System.out.println("Page-level Print Ticket override attached to Page 1.");
}
}Installazione e configurazione
Aggiungi Aspose.Page for Java al tuo Maven:
Package Manager Console Command
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-page</artifactId>
<version>Latest</version>
</dependency>
FAQ
1. Che cos’è un XPS Print Ticket in Aspose.Page?
Un XPS Print Ticket è una struttura XML definita dalla specifica Print Schema. Incorpora istruzioni di stampa hardware, come orientamento, fronte-retro, numero di copie, dimensioni della carta e vassoi di uscita, direttamente all’interno del file del pacchetto ZIP .xps.
2. Posso modificare dinamicamente singoli parametri XML all’interno di un Print Ticket?
Sì. È possibile recuperare il contenuto XML non elaborato tramite XpsPrintTicket.getXml(), manipolare i nodi o gli attributi DOM utilizzando i parser XML standard di Java e riassegnare il ticket modificato al documento o alla pagina.
3. Cosa succede se sono presenti sia un Print Ticket a livello di Job sia uno a livello di Page?
I Print Ticket a livello di Page hanno la precedenza sui Print Ticket a livello di Job per quella specifica pagina, consentendo agli sviluppatori di creare processi di stampa con supporti misti, ad esempio pagine di copertina in cartoncino combinate con normali pagine di testo.