Читання та додавання метаданих 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 та повторно призначити змінений квиток документу або сторінці.
3. Що відбувається, якщо одночасно присутні Print Ticket на рівні Job і на рівні Page?
Print Ticket на рівні Page має пріоритет над Print Ticket на рівні Job для відповідної сторінки, що дозволяє розробникам створювати завдання друку зі змішаними носіями (наприклад, обкладинки з картону, змішані зі стандартними сторінками зі звичайним текстом).