การอ่านและเพิ่มข้อมูลเมตา XMP ในเอกสาร EPS/PS ด้วย Java
แยก ตรวจสอบ เพิ่ม และอัปเดตข้อมูลเมตา XMP (Extensible Metadata Platform) ในเอกสาร EPS และ PostScript (PS) โดยใช้ Aspose.Page for Java ฝังคุณสมบัติ Dublin Core มาตรฐาน สถิติการสร้างเอกสาร รายละเอียดลิขสิทธิ์ และโครงสร้างข้อมูลเมตาแบบกำหนดเองลงในสตรีมไฟล์ PostScript โดยตรงโดยไม่เปลี่ยนแปลงเนื้อหาภาพของกราฟิกเวกเตอร์พื้นฐาน
Aspose.Page for Java มีโมเดลอ็อบเจ็กต์ XmpHeaderConverter และ XmpMetadata ประสิทธิภาพสูงสำหรับแยกข้อมูลเมตา XMP ที่มีอยู่หรือแทรกคุณสมบัติใหม่ลงในไฟล์ EPS/PS
- หากต้องการอ่านข้อมูล เช่น รายละเอียดผู้เขียน วันที่สร้าง ประกาศลิขสิทธิ์ และแอตทริบิวต์แบบกำหนดเองจากไฟล์ EPS ให้ใช้เมธอด
XmpMetadata.add() - หากต้องการแก้ไขฟิลด์ข้อมูลเมตาที่มีอยู่ เช่น ชื่อเอกสารหรือประวัติการแก้ไข ให้ใช้เมธอด
XmpMetadata.set() - หากต้องการเพิ่มแอตทริบิวต์ข้อมูลเมตาที่เป็นกรรมสิทธิ์และเฉพาะองค์กรลงในไฟล์กราฟิก ให้ใช้เมธอด
XmpMetadata.registerNamespace()
การอ่านข้อมูลเมตา XMP ที่มีอยู่จากไฟล์ EPS
แยกและวิเคราะห์คุณสมบัติ XMP มาตรฐานและที่ผู้ใช้กำหนดจากเอกสาร EPS เพื่อตรวจสอบฟิลด์ข้อมูลเมตา เช่น dc:title, xmp:CreatorTool และ 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();
}
}การเพิ่มและแทรกข้อมูลเมตา XMP ใหม่ลงในไฟล์ EPS
แทรกคุณสมบัติข้อมูลเมตามาตรฐาน (เช่น Dublin Core หรือสคีมา XMP Basic) ลงในเอกสาร EPS และบันทึกไฟล์เอาต์พุตที่อัปเดตแล้ว
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.");
}
}การเพิ่มเนมสเปซที่กำหนดเองและข้อมูลเมตาแบบอาร์เรย์
ลงทะเบียนเนมสเปซ XML เฉพาะองค์กรและจัดเก็บประเภทข้อมูลที่ซับซ้อน เช่น รายการอาร์เรย์ ภายในโครงสร้าง XMP ของเอกสาร
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.");
}
}การติดตั้งและการตั้งค่า
เพิ่ม Aspose.Page for Java ลงใน 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. XPS Print Ticket ใน Aspose.Page คืออะไร?
XPS Print Ticket คือโครงสร้าง XML ที่กำหนดโดยข้อกำหนด Print Schema โดยฝังคำสั่งการพิมพ์ฮาร์ดแวร์ เช่น การวางแนว การพิมพ์สองด้าน จำนวนสำเนา ขนาดกระดาษ และถาดรับงานพิมพ์ไว้โดยตรงภายในไฟล์แพ็กเกจ ZIP .xps
2. ฉันสามารถแก้ไขพารามิเตอร์ XML แต่ละรายการภายใน Print Ticket แบบไดนามิกได้หรือไม่?
ได้ คุณสามารถเรียกดูเนื้อหา XML ดิบผ่าน XpsPrintTicket.getXml() จัดการโหนดหรือแอตทริบิวต์ DOM โดยใช้ตัวแยกวิเคราะห์ XML มาตรฐานของ Java และกำหนด Ticket ที่แก้ไขแล้วกลับไปยังเอกสารหรือหน้าได้
3. จะเกิดอะไรขึ้นหากมีทั้ง Print Ticket ระดับ Job และระดับ Page?
Print Ticket ระดับ Page จะมีลำดับความสำคัญเหนือ Print Ticket ระดับ Job สำหรับหน้านั้นโดยเฉพาะ ทำให้นักพัฒนาสามารถสร้างงานพิมพ์ที่ใช้สื่อผสมกันได้ เช่น หน้าปกกระดาษการ์ดที่ผสมกับหน้าข้อความธรรมดามาตรฐาน