Operatori de fluxuri de conținut
Acest ghid arată cum să accesați și manipulați operatorii de flux de conținut PDF folosind ContentStreamParser și de: ContentStreamBuilder în Aspose.PDF FOSS pentru Java. Veți învăța să citiți baiti de conținutul paginii brute și utilizați parser pentru a inspecta desenare comenzi.
Fluxuri de conținut
Conținutul paginii PDF este codificat ca o secvență de operatori într-un flux de conținute. Page oferă acces la operatorii de conținut prin intermediul getContents() proprietate.
ContentStreamParser
ContentStreamParser analizează baitile fluxului de conținut brut în obiecte operator;, care permite inspecția programatică a comenzii de desenare pagină. Treci baiti crude din page.getContents().toByteArray() constructorului de 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 creează noi fluxuri de conținut pentru încorporare într-un Page. Utilizare: ContentStreamBuilder atunci când construiți conținutul paginii programatic mai degrabă decât După construirea fluxului, atribuiți-l înapoi la sistemul de date. Pagina și salvați documentul.
Referință operatorului
Operatorii de flux PDF sunt definiți în ISO 32000-1:2008, tabelul A.1. operatorii includ operatori de text (BT, ET, Tf, Tj), operatori de stare grafică (q, Q, cm), și operatorii de traseu (m, l, h, f, S).
Operatorii de fluxuri de conținut respectă specificația PDF (ISO 32000-1:2008, §8). Utilizare: ContentStreamParser să itereze asupra operatorilor dintr-un flux existent.
Accesarea conținutului de pagină brut
Pentru a citi baiti cruzi de un flux de conținut pagină, apelul page.getContents().toByteArray(). Baiti pot fi apoi inspectate, decodate sau transmise la 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");
}