Membaca dan menambahkan metadata XMP dalam dokumen EPS/PS dengan Java

Ekstrak, periksa, tambahkan, dan perbarui metadata XMP (Extensible Metadata Platform) dalam dokumen EPS dan PostScript (PS) menggunakan Aspose.Page for Java. Sematkan properti Dublin Core standar, statistik pembuatan dokumen, detail hak cipta, dan struktur metadata kustom langsung ke aliran file PostScript tanpa mengubah konten visual grafik vektor yang mendasarinya.

 

Aspose.Page for Java menyediakan model objek XmpHeaderConverter dan XmpMetadata berkinerja tinggi untuk mengekstrak metadata XMP yang ada atau menyisipkan properti baru ke dalam file EPS/PS.

  • Untuk membaca informasi seperti detail penulis, tanggal pembuatan, pemberitahuan hak cipta, dan atribut kustom dari file EPS, gunakan metode XmpMetadata.add().
  • Untuk mengedit bidang metadata yang ada seperti judul dokumen atau riwayat modifikasi, gunakan metode XmpMetadata.set().
  • Untuk menambahkan atribut metadata proprietari dan khusus perusahaan ke file grafik, gunakan metode XmpMetadata.registerNamespace().

Membaca metadata XMP yang ada dari File EPS

Ekstrak dan uraikan properti XMP standar dan yang ditentukan pengguna dari dokumen EPS untuk memeriksa bidang metadata seperti dc:title, xmp:CreatorTool, dan 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();
    }
}

Menambahkan dan menyisipkan metadata XMP baru ke dalam File EPS

Sisipkan properti metadata standar (seperti skema Dublin Core atau XMP Basic) ke dalam dokumen EPS dan simpan output file yang telah diperbarui.

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

Menambahkan namespace bernama kustom dan metadata array

Daftarkan namespace XML khusus perusahaan dan simpan tipe data kompleks, seperti daftar array, di dalam struktur XMP dokumen.

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

Instalasi dan Penyiapan

Tambahkan Aspose.Page for Java ke Maven Anda:

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. Apa itu XPS Print Ticket di Aspose.Page?

XPS Print Ticket adalah struktur XML yang ditentukan oleh spesifikasi Print Schema. Struktur ini menyematkan instruksi pencetakan perangkat keras (seperti orientasi, pencetakan dupleks, jumlah salinan, dimensi kertas, dan baki keluaran) langsung ke dalam file paket ZIP .xps.

2. Bisakah saya memodifikasi parameter XML individual di dalam Print Ticket secara dinamis?

Ya. Anda dapat mengambil konten XML mentah melalui XpsPrintTicket.getXml(), memanipulasi node atau atribut DOM menggunakan parser XML Java standar, lalu menetapkan kembali ticket yang telah dimodifikasi ke dokumen atau halaman.

3. Apa yang terjadi jika Print Ticket tingkat Job dan Print Ticket tingkat Page sama-sama tersedia?

Print Ticket tingkat Page memiliki prioritas lebih tinggi daripada Print Ticket tingkat Job untuk halaman tertentu tersebut, sehingga pengembang dapat membuat pekerjaan pencetakan dengan media campuran (misalnya halaman sampul dari karton yang dicampur dengan halaman teks biasa standar).