Operatori sadržaja u strimu
Ovaj vodič pokazuje kako pristupiti i manipulirati PDF sadržaj stream operatora koristeći ContentStreamParser i u članku 1. ContentStreamBuilder u Aspose.PDF FOSS za Java. Naučit ćete čitati sirove stranice sadržaj bajtova i koristiti parser za pregled crteža Zapovijedi.
Svrha sadržaja
Sadržaj PDF stranice kodiran je kao niz operatora u strimu sadržaja. Page omogućuje pristup svojim operatarima sadržaja putem getContents() imovina.
ContentStreamParser
ContentStreamParser U ovom slučaju, u skladu s člankom 21. stavkom 1. točkom (a) i podstavkom 2. točkama 3. i 4. ovog članka., Prenosite sirove bajtova iz page.getContents().toByteArray() na konstruktor parser:
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 stvara nove tokove sadržaja za ugradnju u Page. Upotreba: ContentStreamBuilder kada izgradnja sadržaja stranice programski nego Nakon izgradnje tok, dodijeliti ga natrag na stranicu i sačuvati dokument.
Referencija operatora
Operatori toka sadržaja PDF-a definirani su u ISO 32000-1:2008, tablica A.1. Operatori uključuju tekstne operatore (BT, ET, Tf, Tj), grafički operateri stanja (q, Q, cm), i operatora staza (m, l, h, f, S).
Operatori struje sadržaja slijede PDF specifikaciju (ISO 32000-1:2008, §8). Upotreba: ContentStreamParser da se ponavljaju preko operatora u postojećem toku.
Pristup sirovom sadržaju stranice
Za čitanje sirovih bajta strim sadržaja stranice, poziv page.getContents().toByteArray(). Bajtovi se zatim mogu pregledati, dekodirati ili proslijediti na 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");
}