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).