Tartalomáram üzemeltetői
Ez a kézikönyv bemutatja, hogyan lehet elérni és manipulálni PDF tartalom áramlás operátorok segítségével ContentStreamParser és a következők: ContentStreamBuilder Az Aspose.PDF FOSS Java-ban. Megtanulják, hogy olvassa el a nyers oldal tartalmát bytes és használja az elemzőt ellenőrizni rajz parancsokat.
Tartalomáramok
A PDF-oldalt a tartalomáramlat operátorok sorozataként kódolják. Page hozzáférést biztosít a tartalomüzemeltetőinek az interneten keresztül. getContents() tulajdon.
ContentStreamParser
ContentStreamParser a nyers tartalom áramlásának bájtjait operátorobjektumokra bontsa, A programmal a weblapok rajzolásának parancsát is át lehet adni. page.getContents().toByteArray() a parser konstruktorhoz:
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 új tartalomáramokat hoz létre a beágyazáshoz egy Page. Használat ContentStreamBuilder programmatically, nem pedig a weboldal tartalmának megtervezése során. A folyamatok egybeesése a meglévő áramlás módosításával szemben. oldalas és mentse a dokumentumot.
Operátor hivatkozása
A PDF tartalomáramláló operátorok az ISO 32000-1:2008 táblázatban vannak meghatározva. Az operátorok közé tartoznak a szöveges operátorok (BT, ET, Tf, Tj), grafikus állapotos operátorok (q, Q, cm), és az útvonal üzemeltetői (m, l, h, f, S).
A tartalomáram üzemeltetői a PDF-specifikációt követik (ISO 32000-1:2008, §8). Használat ContentStreamParser az operátorok felett egy meglévő áramlásban.
Nyers oldal tartalom elérése
Ha egy oldal tartalomcsatornának nyers bájtjait szeretné elolvasni, hívja a page.getContents().toByteArray(). A bytesek akkor lehet ellenőrizni, dekódolni, vagy átadva a 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");
}