Java ile EPS/PS belgelerinde XMP meta verilerini okuma ve ekleme

Aspose.Page for Java kullanarak EPS ve PostScript (PS) belgelerindeki XMP (Extensible Metadata Platform) meta verilerini çıkarın, inceleyin, ekleyin ve güncelleyin. Standart Dublin Core özelliklerini, belge oluşturma istatistiklerini, telif hakkı bilgilerini ve özel meta veri yapılarını, temel vektör grafik içeriğini değiştirmeden doğrudan PostScript dosya akışlarına ekleyin.

 

Aspose.Page for Java, mevcut XMP meta verilerini çıkarmak veya EPS/PS dosyalarına yeni özellikler eklemek için yüksek performanslı bir XmpHeaderConverter ve XmpMetadata nesne modeli sağlar.

  • EPS dosyalarından yazar bilgileri, oluşturulma tarihleri, telif hakkı bildirimleri ve özel öznitelikler gibi bilgileri okumak için XmpMetadata.add() yöntemini kullanın.
  • Belge başlıkları veya değişiklik geçmişi gibi mevcut meta veri alanlarını düzenlemek için XmpMetadata.set() yöntemini kullanın.
  • Grafik dosyalarına özel, kuruluşa özgü meta veri öznitelikleri eklemek için XmpMetadata.registerNamespace() yöntemini kullanın.

Bir EPS Dosyasından mevcut XMP meta verilerini okuma

dc:title, xmp:CreatorTool ve xmp:CreateDate gibi meta veri alanlarını incelemek için bir EPS belgesinden standart ve kullanıcı tanımlı XMP özelliklerini çıkarın ve ayrıştırın.

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();
    }
}

Bir EPS Dosyasına yeni XMP meta verileri ekleme ve yerleştirme

Standart meta veri özelliklerini (Dublin Core veya XMP Basic şemaları gibi) bir EPS belgesine ekleyin ve güncellenmiş dosya çıktısını kaydedin.

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.");
    }
}

Özel adlandırılmış ad alanları ve dizi meta verileri ekleme

Kuruluşa özgü XML ad alanlarını kaydedin ve dizi listeleri gibi karmaşık veri türlerini belgenin XMP yapısında depolayın.

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.");
    }
}

Kurulum ve Ayarlar

Aspose.Page for Java’yı Maven’ınıza ekleyin:

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. Aspose.Page’de XPS Print Ticket nedir?

XPS Print Ticket, Print Schema belirtimi tarafından tanımlanan bir XML yapısıdır. Yönlendirme, çift taraflı yazdırma, kopya sayısı, kâğıt boyutları ve çıktı tepsileri gibi donanım yazdırma talimatlarını doğrudan .xps ZIP paket dosyasının içine yerleştirir.

2. Print Ticket içindeki tek tek XML parametrelerini dinamik olarak değiştirebilir miyim?

Evet. XpsPrintTicket.getXml() aracılığıyla ham XML içeriğini alabilir, standart Java XML ayrıştırıcılarını kullanarak DOM düğümlerini veya özniteliklerini değiştirebilir ve değiştirilmiş bileti belgeye veya sayfaya yeniden atayabilirsiniz.

3. Hem Job düzeyinde hem de Page düzeyinde bir Print Ticket mevcutsa ne olur?

Belirli bir sayfa için Page düzeyindeki Print Ticket’lar, Job düzeyindeki Print Ticket’lara göre önceliklidir. Bu, geliştiricilerin karton kapak sayfalarını standart düz metin sayfalarıyla birleştirmek gibi karma medyalı yazdırma işleri oluşturmasına olanak tanır.