Đọc và thêm siêu dữ liệu XMP trong tài liệu EPS/PS bằng Java
Trích xuất, kiểm tra, thêm và cập nhật siêu dữ liệu XMP (Extensible Metadata Platform) trong các tài liệu EPS và PostScript (PS) bằng Aspose.Page for Java. Nhúng các thuộc tính Dublin Core tiêu chuẩn, thống kê tạo tài liệu, thông tin bản quyền và cấu trúc siêu dữ liệu tùy chỉnh trực tiếp vào các luồng tệp PostScript mà không làm thay đổi nội dung trực quan của đồ họa vector bên dưới.
Aspose.Page for Java cung cấp mô hình đối tượng XmpHeaderConverter và XmpMetadata hiệu suất cao để trích xuất siêu dữ liệu XMP hiện có hoặc chèn các thuộc tính mới vào tệp EPS/PS.
- Để đọc các thông tin như chi tiết tác giả, ngày tạo, thông báo bản quyền và các thuộc tính tùy chỉnh từ tệp EPS, hãy sử dụng phương thức
XmpMetadata.add(). - Để chỉnh sửa các trường siêu dữ liệu hiện có như tiêu đề tài liệu hoặc lịch sử sửa đổi, hãy sử dụng phương thức
XmpMetadata.set(). - Để thêm các thuộc tính siêu dữ liệu độc quyền và dành riêng cho doanh nghiệp vào các tệp đồ họa, hãy sử dụng phương thức
XmpMetadata.registerNamespace().
Đọc siêu dữ liệu XMP hiện có từ tệp EPS
Trích xuất và phân tích các thuộc tính XMP tiêu chuẩn và do người dùng xác định từ tài liệu EPS để kiểm tra các trường siêu dữ liệu như dc:title, xmp:CreatorTool và 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();
}
}Thêm và chèn siêu dữ liệu XMP mới vào tệp EPS
Chèn các thuộc tính siêu dữ liệu tiêu chuẩn (chẳng hạn như lược đồ Dublin Core hoặc XMP Basic) vào tài liệu EPS và lưu tệp đầu ra đã cập nhật.
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.");
}
}Thêm namespace có tên tùy chỉnh và siêu dữ liệu mảng
Đăng ký các namespace XML dành riêng cho doanh nghiệp và lưu trữ các kiểu dữ liệu phức tạp, chẳng hạn như danh sách mảng, bên trong cấu trúc XMP của tài liệu.
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.");
}
}Cài đặt và thiết lập
Thêm Aspose.Page for Java vào Maven của bạn:
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 trong Aspose.Page là gì?
XPS Print Ticket là một cấu trúc XML được định nghĩa bởi đặc tả Print Schema. Nó nhúng các hướng dẫn in phần cứng (chẳng hạn như hướng trang, in hai mặt, số bản sao, kích thước giấy và khay đầu ra) trực tiếp bên trong tệp gói ZIP .xps.
2. Tôi có thể sửa đổi động từng tham số XML riêng lẻ bên trong Print Ticket không?
Có. Bạn có thể truy xuất nội dung XML thô thông qua XpsPrintTicket.getXml(), thao tác với các nút hoặc thuộc tính DOM bằng các trình phân tích XML tiêu chuẩn của Java, sau đó gán lại ticket đã sửa đổi cho tài liệu hoặc trang.
3. Điều gì xảy ra nếu cả Print Ticket cấp Job và Print Ticket cấp Page đều tồn tại?
Print Ticket cấp Page được ưu tiên hơn Print Ticket cấp Job đối với trang cụ thể đó, cho phép các nhà phát triển tạo các lệnh in sử dụng nhiều loại phương tiện (ví dụ: các trang bìa bằng bìa cứng kết hợp với các trang văn bản thông thường).