قراءة وإضافة بيانات XMP الوصفية في مستندات EPS/PS باستخدام Java

استخراج بيانات XMP (منصة البيانات الوصفية القابلة للتوسعة)، وفحصها وإضافتها وتحديثها في مستندات 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>

الأسئلة الشائعة

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 على مستوى المهمة وPrint Ticket على مستوى الصفحة موجودًا؟

تأخذ Print Tickets على مستوى الصفحة الأولوية على Print Tickets على مستوى المهمة لتلك الصفحة المحددة، مما يسمح للمطورين بإنشاء مهام طباعة متعددة الوسائط (مثل صفحات غلاف من الورق المقوى ممزوجة بصفحات نصية عادية قياسية).