XMP-metaadatok olvasása és hozzáadása EPS/PS-dokumentumokban Java használatával

XMP (Extensible Metadata Platform) metaadatok kinyerése, vizsgálata, hozzáadása és frissítése EPS- és PostScript (PS)-dokumentumokban az Aspose.Page for Java használatával. Szabványos Dublin Core-tulajdonságokat, dokumentum-létrehozási statisztikákat, szerzői jogi adatokat és egyéni metaadat-struktúrákat ágyazhat közvetlenül a PostScript-fájlfolyamokba anélkül, hogy módosítaná az alapul szolgáló vektorgrafika vizuális tartalmát.

 

Az Aspose.Page for Java nagy teljesítményű XmpHeaderConverter és XmpMetadata objektummodellt biztosít a meglévő XMP-metaadatok kinyeréséhez vagy új tulajdonságok EPS/PS-fájlokba történő beillesztéséhez.

  • Az EPS-fájlokból származó szerzői adatok, létrehozási dátumok, szerzői jogi megjegyzések és egyéni attribútumok olvasásához használja a XmpMetadata.add() metódust.
  • A meglévő metaadatmezők, például a dokumentumcímek vagy a módosítási előzmények szerkesztéséhez használja a XmpMetadata.set() metódust.
  • Saját tulajdonú, vállalatspecifikus metaadat-attribútumok grafikus fájlokhoz való hozzáadásához használja a XmpMetadata.registerNamespace() metódust.

Meglévő XMP-metaadatok olvasása EPS-fájlból

Szabványos és felhasználó által definiált XMP-tulajdonságok kinyerése és elemzése egy EPS-dokumentumból olyan metaadatmezők vizsgálatához, mint a dc:title, xmp:CreatorTool és 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();
    }
}

Új XMP-metaadatok hozzáadása és beillesztése EPS-fájlba

Szabványos metaadat-tulajdonságok (például Dublin Core- vagy XMP Basic-sémák) beillesztése egy EPS-dokumentumba, majd a frissített fájl kimenetének mentése.

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

Egyéni elnevezett névterek és tömb-metaadatok hozzáadása

Vállalatspecifikus XML-névterek regisztrálása és összetett adattípusok, például tömblisták tárolása a dokumentum XMP-struktúrájában.

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

Telepítés és beállítás

Adja hozzá az Aspose.Page for Java csomagot a Mavenhez:

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>

GYIK

1. Mi az XPS Print Ticket az Aspose.Page-ben?

Az XPS Print Ticket egy, a Print Schema specifikáció által meghatározott XML-struktúra. Hardveres nyomtatási utasításokat (például tájolást, kétoldalas nyomtatást, példányszámot, papírméreteket és kimeneti tálcákat) ágyaz közvetlenül a .xps ZIP-csomagfájlba.

2. Dinamikusan módosíthatom a Print Ticket egyes XML-paramétereit?

Igen. A nyers XML-tartalmat a XpsPrintTicket.getXml() metódussal kérheti le, a DOM-csomópontokat vagy attribútumokat szabványos Java XML-elemzőkkel módosíthatja, majd a módosított ticketet visszarendelheti a dokumentumhoz vagy az oldalhoz.

3. Mi történik, ha egy feladatszintű és egy oldalszintű Print Ticket is jelen van?

Az oldalszintű Print Ticket elsőbbséget élvez a feladatszintű Print Ticket felett az adott oldalon, így a fejlesztők vegyes médiát használó nyomtatási feladatokat hozhatnak létre (például kartonból készült borítóoldalakat szabványos egyszerű szöveges oldalakkal kombinálva).