Content Stream Operatörleri
Bu kılavuz, PDF içerik akış operatörlerine nasıl erişebileceğini ve manipüle edebileceğini gösterir. ContentStreamParser ve ContentStreamBuilder Aspose.PDF FOSS için Java. Ana sayfa içeriği byte okumayı öğreneceksiniz ve çizimleri kontrol etmek için parser kullanırsınız. Komutları için.
içerik akışları
PDF sayfa içeriği bir içerik akışında operatörlerin bir sırası olarak kodlanır. Page içerik operatörlerine erişim sağlar. getContents() Mülkiyet için.
ContentStreamParser
ContentStreamParser -Kuru içerik akışının bytesini operatör nesnelere ayırır, sayfa çizim komutlarının programlı incelenmesini sağlar. page.getContents().toByteArray() Parser Yapımcı için:
try (Document doc = new Document("input.pdf")) {
PageCollection pages = doc.getPages();
Page page = pages.get(1);
byte[] contentBytes = page.getContents().toByteArray();
ContentStreamParser parser = new ContentStreamParser(contentBytes);
// Iterate over parsed operators
}ContentStreamBuilder
ContentStreamBuilder Yeni içerik akışları oluşturur, bir Page. Kullanım ContentStreamBuilder Yazılımı programlama yaparken, daha çok Bir akımdan sonra, bir akımın yeniden yapılandırılmasından sonra bir dönüşü değiştirmek yerine. sayfa ve belgeyi kaydetmek.
Operatör Referansları
PDF içerik akış operatörleri ISO 32000-1:2008 tablosunda tanımlanır. İşletme yöneticileri (İşletmeler)BT, ET, Tf, Tj) grafik devlet operatörleri (q, Q, cm• Yolcu ve yolcu (m, l, h, f, S).
İçerik akışı operatörleri PDF özelliklerine uymaktadır (ISO 32000-1:2008, §8). Kullanım ContentStreamParser Mevcut bir akımda operatörlerin üstünde iterasyon yapmak.
Raw Page İçeriği
Bir sayfa içerik akışının ham byte okumak için, arama page.getContents().toByteArray(). Bu nedenle, bitler kontrol edilebilir, dekod edilebilmektedir veya geçilebilir. ContentStreamParser:
try (Document doc = new Document("input.pdf")) {
PageCollection pages = doc.getPages();
Page page = pages.get(1);
byte[] contentBytes = page.getContents().toByteArray();
System.out.println("Content stream size: " + contentBytes.length + " bytes");
}