Operadores de fluxo de conteúdo
Este guia mostra como acessar e manipular os operadores de fluxo de conteúdo PDF usando o ContentStreamParser e a) ContentStreamBuilder em Aspose.PDF FOSS para Java. Você vai aprender a ler o conteúdo da página bytes e usar o parser para inspecionar desenho comandos.
Fluxos de conteúdo
O conteúdo da página PDF é codificado como uma sequência de operadores em um fluxo de conteúdos. Page fornece acesso aos seus operadores de conteúdo através do getContents() propriedade.
ContentStreamParser
ContentStreamParser analisa os bytes do fluxo de conteúdo bruto em objetos de operador, Passar os bytes brutos de um código-fonte para outro. page.getContents().toByteArray() para o constructor do 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 cria novos fluxos de conteúdo para a incorporação numa rede de dados. Page. Utilização: ContentStreamBuilder quando a construção de conteúdo da página programaticamente em vez Depois de construir o fluxo, atribuí-lo novamente para a página e salvar o documento.
Referência do operador
Os operadores de fluxo de conteúdo PDF são definidos na ISO 32000-1:2008, Quadro A.1. Comuns. Os operadores incluem os operadores de texto (BT, ET, Tf, Tj), operadores de estado gráfico. (q, Q, cm), e operadores de trajectórios (m, l, h, f, S).
Os operadores de fluxo de conteúdo seguem a especificação PDF (ISO 32000-1:2008, §8). Utilização: ContentStreamParser Iterar sobre os operadores num fluxo existente.
Acesso ao conteúdo da página em bruto
Para ler os bytes brutos de um fluxo de conteúdo da página, chamar page.getContents().toByteArray(). Os bytes podem então ser inspecionados, decodificados ou passados para o computador. 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");
}