Operadores de contenido Stream

Este guía muestra cómo acceder y manipular a los operadores de flujo de contenido PDF utilizando ContentStreamParser y ContentStreamBuilder En Aspose.PDF FOSS para Java. Aprenderás a leer los bajos de contenido de la página y usar el parser para inspeccionar el dibujo. Los mandos.

Contenido Streams

El contenido de la página PDF se codifica como una secuencia de operadores en un flujo de contenido. Page proporciona acceso a sus operadores de contenido a través del getContents() propiedad .

ContentStreamParser

ContentStreamParser parse los bajos de flujo de contenido crudo en objetos operadores, permiten la inspección programática de los comando de dibujo de página. pasar los bajos crudos de page.getContents().toByteArray() Para el constructor de parcelas:

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 nuevos flujos de contenido para incorporarse en una Page. Uso ContentStreamBuilder Cuando se crea el contenido de la página programáticamente, más bien que modifican un flujo existente.Después de construir el fluxo, asignarlo de nuevo al fluido existiente. página y guardar el documento.

Referencia de Operador

Los operadores de flujo de contenido PDF están definidos en la ISO 32000-1:2008, Tabla A.1. Los operadores incluyen los operarios de texto (BT, ET, Tf, TjLos operadores gráficos del Estado (q, Q, cmy los operadores de la vía (m, l, h, f, S).

Los operadores de flujo de contenido siguen la especificación PDF (ISO 32000-1:2008, §8). Uso ContentStreamParser para iterar sobre los operadores en un flujo existente.

Acceso a contenido de la página principal

Para leer los bajos crudos de un flujo de contenido de una página, llame page.getContents().toByteArray(). Los bajetas pueden ser inspeccionados, descodificados o pasados a 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");
}

Ver también

 Español