Operações de conteúdo

Operações de conteúdo

Operações de conteúdo

As páginas PDF são renderizadas por uma sequência de operadores armazenados em um fluxo de conteúdo. Aspose.PDF FOSS for .NET exposes these operators through OperatorCollection em cada um dos seguintes: Page, e prevê: ContentStreamBuilder para a construção de novos conteúdo programaticamente.


Operadores de fluxo de conteúdo para leitura

Cada um. Page tem um Contents propriedade que retorna um valor de OperatorCollection. Iterar para inspecionar cada operador.

using var doc = Document.Open(pdfBytes);
var page = doc.Pages[1];

foreach (var op in page.Contents)
{
    Console.WriteLine(op.ToString());
}

Fluxos de conteúdo da construção

ContentStreamBuilder fornece uma API fluente para a construção de conteúdo-stream sequências de operadores, incluindo gestão gráfica do estado, construção dos caminhos;, saída de texto e configurações de cores.

var builder = new ContentStreamBuilder();
builder.SaveState();
builder.SetFillColor(1.0, 0.0, 0.0);  // Red fill
builder.SetMatrix(1, 0, 0, 1, 72, 700); // Translate
// ... add drawing or text operators
builder.RestoreState();

Estado dos gráficos

GraphicsState rastreia a matriz de transformação atual, o estado do texto e Valores de cor conforme executados pelos operadores.:

var gs = new GraphicsState();
gs.Save();
gs.ConcatMatrix(new Matrix(1, 0, 0, 1, 100, 200));
gs.Restore();

Operadores de cores

SetColor e a) SetColorStroke Colocar cores de preenchimento e traço, respectivamente. Aceitam componentes RGB, CMYK ou escala de cinza.

// RGB fill color (blue)
var fill = new SetColor(0, 0, 1);

// RGB stroke color (red)
var stroke = new SetColorStroke(1, 0, 0);

Operadores de texto

ShowText Rende uma cadeia de texto na posição atual do texto usando o fonte e tamanho atuais do estado gráfico.

var textOp = new ShowText("Hello, PDF!");

SetTextMatrix posiciona texto definindo uma matriz de transformação para o texto espaço.


Estado de gráficos estendidos

ExtGState Controla propriedades de renderização avançadas como preenchimento e traço alfa (transparência) e modo de mistura.


Dicas e melhores práticas

  • Sempre em par . SaveState / RestoreState (ou q / Q operadores) para evitar corromper a pilha de estado gráfico.
  • Utilização: ContentStreamBuilder para novos conteúdos, em vez de construir manualmente objetos do operador.
  • Inspecção OperatorCollection somente leitura antes de modificar Sequências inesperadas do operador podem causar problemas de renderização.
  • Os operadores de cores devem corresponder ao espaço de cor atual (RGB, CMYK ou escala de cinzas).
  • Utilização: SetAdvancedColor para espaços de cores com padrões e baseados em ICC.

Problemas comuns

EmissãoCausa da morteCorreção
Texto não visível após a adição de operadoresNenhuma fonte definida no estado de textoAdicionar um SetFont operador antes de ShowText
As cores parecem erradas .Desconcordância de espaço-cor (RGB vs CMYK)Use o operador que corresponde ao espaço de cores ativo
Desbordamento de pilha do estado gráficoDesbalanceado Save / Restore pares de animaisAssegurar que todos os SaveState tem um correspondente RestoreState
Conteúdo aparece na posição erradaTransformação de matriz inexistente ou incorretaVerificar SetMatrix ou a) ConcatMatrix valores de

FAQ

O que é um fluxo de conteúdo PDF?

Um fluxo de conteúdo é uma sequência de operadores que descrevem como renderizar uma página traços de desenho, colocação de texto, configuração de cores e gerenciamento do estado gráfico.

Posso adicionar novo conteúdo a uma página existente?

Sim, acesso. page.Contents e adicionar novos operadores, ou utilizar ContentStreamBuilder para construir uma sequência e anexá-la.

Como faço o texto transparente?

Utilização: ExtGState para definir o alfa de enchimento (ca) a um valor entre 0 (total) transparente) e 1 (totalmente opaco).


Resumo de referência da API

Classe / MétodoDescrição:
OperatorCollectionSequência de operadores do fluxo de conteúdo numa página
ContentStreamBuilderConstruidor fluente para a construção de sequências de operadores
ContentStreamBuilder.SaveStateEmpurrar o estado gráfico atual na pilha
ContentStreamBuilder.RestoreStatePop gráficos estado da pilha
ContentStreamBuilder.SetFillColorConfigurar a cor de preenchimento no espaço de cores atual
ContentStreamBuilder.SetMatrixAplicar uma transformação de coordenadas
GraphicsStateRastreia a matriz de transformação, cor e estado do texto
SetColorO operador define a cor sem marcas (enchimento)
SetColorStrokeOperador a definir a cor de traço
SetAdvancedColorOperador para espaços de cores baseados em padrões / ICC
ShowTextOperador que representa uma cadeia de texto
SetTextMatrixTexto de posicionamento do operador através de uma matriz
ExtGStateEstado gráfico estendido (modo alfa, blend)

Ver também:

 Português