Lecture et ajout de métadonnées XMP dans les documents EPS/PS avec Java

Extrayez, inspectez, ajoutez et mettez à jour les métadonnées XMP (Extensible Metadata Platform) dans les documents EPS et PostScript (PS) à l’aide d’Aspose.Page for Java. Intégrez des propriétés Dublin Core standard, des statistiques de création de documents, des informations de droits d’auteur et des structures de métadonnées personnalisées directement dans les flux de fichiers PostScript sans modifier le contenu visuel sous-jacent des graphiques vectoriels.

 

Aspose.Page for Java fournit un modèle d’objet hautes performances XmpHeaderConverter et XmpMetadata permettant d’extraire les métadonnées XMP existantes ou d’injecter de nouvelles propriétés dans les fichiers EPS/PS.

  • Pour lire des informations telles que les détails de l’auteur, les dates de création, les mentions de droits d’auteur et les attributs personnalisés à partir de fichiers EPS, utilisez la méthode XmpMetadata.add().
  • Pour modifier les champs de métadonnées existants tels que les titres de documents ou l’historique des modifications, utilisez la méthode XmpMetadata.set().
  • Pour ajouter des attributs de métadonnées propriétaires et spécifiques à l’entreprise aux fichiers graphiques, utilisez la méthode XmpMetadata.registerNamespace().

Lecture des métadonnées XMP existantes à partir d’un fichier EPS

Extrayez et analysez les propriétés XMP standard et définies par l’utilisateur d’un document EPS afin d’inspecter des champs de métadonnées tels que dc:title, xmp:CreatorTool et 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();
    }
}

Ajout et injection de nouvelles métadonnées XMP dans un fichier EPS

Injectez des propriétés de métadonnées standard (telles que les schémas Dublin Core ou XMP Basic) dans un document EPS et enregistrez le fichier mis à jour.

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

Ajout d’espaces de noms personnalisés nommés et de métadonnées de tableaux

Enregistrez des espaces de noms XML spécifiques à l’entreprise et stockez des types de données complexes, tels que des listes de tableaux, dans la structure XMP du document.

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 et configuration

Ajoutez Aspose.Page for Java à votre 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. Qu’est-ce qu’un XPS Print Ticket dans Aspose.Page ?

Un XPS Print Ticket est une structure XML définie par la spécification Print Schema. Il intègre directement dans le fichier de package ZIP .xps des instructions d’impression matérielles (telles que l’orientation, l’impression recto verso, le nombre de copies, les dimensions du papier et les bacs de sortie).

2. Puis-je modifier dynamiquement des paramètres XML individuels dans un Print Ticket ?

Oui. Vous pouvez récupérer le contenu XML brut via XpsPrintTicket.getXml(), manipuler les nœuds ou attributs DOM à l’aide des analyseurs XML Java standard, puis réaffecter le ticket modifié au document ou à la page.

3. Que se passe-t-il si un Print Ticket au niveau du travail et un Print Ticket au niveau de la page sont tous deux présents ?

Les Print Tickets au niveau de la page sont prioritaires sur ceux au niveau du travail pour la page concernée, ce qui permet aux développeurs de créer des travaux d’impression avec différents supports (par exemple, des pages de couverture en carton associées à des pages de texte standard).