XMP-Metadaten in EPS/PS-Dokumenten mit Java lesen und hinzufügen

Extrahieren, überprüfen, hinzufügen und aktualisieren Sie XMP-Metadaten (Extensible Metadata Platform) in EPS- und PostScript-(PS-)Dokumenten mit Aspose.Page for Java. Betten Sie standardmäßige Dublin-Core-Eigenschaften, Statistiken zur Dokumenterstellung, Urheberrechtsdetails und benutzerdefinierte Metadatenstrukturen direkt in PostScript-Dateiströme ein, ohne den zugrunde liegenden visuellen Inhalt der Vektorgrafik zu verändern.

 

Aspose.Page for Java stellt ein leistungsstarkes XmpHeaderConverter- und XmpMetadata-Objektmodell bereit, um vorhandene XMP-Metadaten zu extrahieren oder neue Eigenschaften in EPS/PS-Dateien einzufügen.

  • Um Informationen wie Angaben zum Autor, Erstellungsdaten, Urheberrechtshinweise und benutzerdefinierte Attribute aus EPS-Dateien zu lesen, verwenden Sie die Methode XmpMetadata.add().
  • Um vorhandene Metadatenfelder wie Dokumenttitel oder Änderungshistorie zu bearbeiten, verwenden Sie die Methode XmpMetadata.set().
  • Um proprietäre, unternehmensspezifische Metadatenattribute zu Grafikdateien hinzuzufügen, verwenden Sie die Methode XmpMetadata.registerNamespace().

Vorhandene XMP-Metadaten aus einer EPS-Datei lesen

Extrahieren und analysieren Sie standardmäßige und benutzerdefinierte XMP-Eigenschaften aus einem EPS-Dokument, um Metadatenfelder wie dc:title, xmp:CreatorTool und xmp:CreateDate zu überprüfen.

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();
    }
}

Neue XMP-Metadaten zu einer EPS-Datei hinzufügen und einfügen

Fügen Sie standardmäßige Metadateneigenschaften (z. B. Dublin-Core- oder XMP-Basic-Schemas) in ein EPS-Dokument ein und speichern Sie die aktualisierte Dateiausgabe.

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.");
    }
}

Benutzerdefinierte benannte Namespaces und Array-Metadaten hinzufügen

Registrieren Sie unternehmensspezifische XML-Namespaces und speichern Sie komplexe Datentypen, z. B. Array-Listen, innerhalb der XMP-Struktur des Dokuments.

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.");
    }
}

Installation und Einrichtung

Fügen Sie Aspose.Page for Java zu Ihrem Maven hinzu:

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. Was ist ein XPS Print Ticket in Aspose.Page?

Ein XPS Print Ticket ist eine XML-Struktur, die durch die Print-Schema-Spezifikation definiert wird. Sie enthält Hardware-Druckanweisungen (z. B. Ausrichtung, Duplexdruck, Anzahl der Kopien, Papierabmessungen und Ausgabefächer) direkt in der .xps-ZIP-Paketdatei.

2. Kann ich einzelne XML-Parameter innerhalb eines Print Tickets dynamisch ändern?

Ja. Sie können den unformatierten XML-Inhalt über XpsPrintTicket.getXml() abrufen, die DOM-Knoten oder Attribute mithilfe standardmäßiger Java-XML-Parser bearbeiten und das geänderte Ticket anschließend wieder dem Dokument oder der Seite zuweisen.

3. Was geschieht, wenn sowohl ein Print Ticket auf Jobebene als auch eines auf Seitenebene vorhanden ist?

Print Tickets auf Seitenebene haben für die jeweilige Seite Vorrang vor Print Tickets auf Jobebene. Dadurch können Entwickler Druckaufträge mit unterschiedlichen Medien erstellen (z. B. Deckblätter aus Karton zusammen mit normalen Textseiten).