Operadors de flux de contingut

Operadors de flux de contingut

Aquesta guia mostra com accedir i manipular operadors de flux de contingut PDF utilitzant ContentStreamParser i de la ContentStreamBuilder en Aspose.PDF FOSS per Java. Aprendreu a llegir els bytes de contingut en pàgines brut i utilitzar l’anàlisi per inspeccionar dibuixos. comandaments.

Fluxos de contingut

El contingut de la pàgina PDF s’encodja com una seqüència d’operadors en un flux de continguts. Page proporciona accés als seus operadors de contingut a través del getContents() propietat.

ContentStreamParser

ContentStreamParser analisa els bytes de flux de contingut en operador, Permet l’inspecció programàtica de comandaments de dibuix de pàgines. Passa els bytes bruts des del page.getContents().toByteArray() al constructor del 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 crea nous flux de contingut per a la incorporació en un Page. Utilització: ContentStreamBuilder Quan es construeix el contingut de la pàgina programàticament més aviat Després de construir el flux, assignar-lo a la nova pàgina i guardar el document.

Referència de l’operador

Els operadors de flux de contingut PDF estan definits en la ISO 32000-1:2008, taula A.1. Comuns. els operadors inclouen els operators de text (BT, ET, Tf, Tj), operadors d’estat gràfic. (q, Q, cm), i els operadors de la ruta (m, l, h, f, S).

Els operadors de flux de contingut segueixen la especificació PDF (ISO 32000-1:2008, §8). Utilització: ContentStreamParser per iterar sobre els operadors en un flux existent.

Accedir al contingut de la pàgina en bruto

Per llegir els bytes bruts d’un flux de contingut de pàgina, crida page.getContents().toByteArray(). Els bytes poden ser inspeccionats, descodificats o passat a la seva pàgina web. 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");
}

See Also

 Català