EnumPageContentStatesEx

Manipulação de páginas

Descrição

Percorre as instruções da página selecionada e, opcionalmente, desce para o conteúdo de Form XObject usando o estado gráfico e o âmbito de recursos ativos em cada operador Do

Sintaxe

Delphi

Function EnumPageContentStatesEx(AfterInstruction: Boolean; MaxFormDepth: Integer; Var States: Array Of TPDFlibContentGraphicsState): Integer;

Parâmetros

AfterInstruction seleciona instantâneos imediatamente depois de cada operador quando true e imediatamente antes de cada operador quando false

MaxFormDepth seleciona o número de níveis de formulários aninhados a executar, em que zero mantém apenas instruções ao nível da página e valores acima de 64 são limitados a 64

States recebe tantos registos quantos caibam na matriz fornecida pelo chamador

Valor devolvido

A contagem total de instantâneos, incluindo registos que não cabem em States, ou zero quando não há documento selecionado ou uma camada de conteúdo da página não pode ser analisada

Observações

Chame uma vez com uma matriz vazia para obter a contagem, aloque o destino e depois volte a chamar para o preencher

A execução de formulários segue o isolamento do estado gráfico, a concatenação da matriz do formulário, o recorte /BBox e a seleção de recursos atual

O estado filho herda o valor efetivo de UseBlackPtComp ativo no respetivo operador Do e depois aplica quaisquer alterações ExtGState locais do formulário sem as deixar escapar de volta ao chamador

Um formulário com o seu próprio dicionário /Resources utiliza esse dicionário em exclusivo; um formulário sem um dicionário próprio herda o dicionário de recursos invocador, por compatibilidade com ficheiros PDF anteriores

Os fluxos de formulários repetidos são descodificados e analisados uma vez por enumeração e depois executados de forma independente em cada invocação

A deteção de ciclos no caminho ativo e o limite de profundidade impedem a recursão ilimitada sem suprimir a reutilização válida de ramos de invocação separados

Quando AfterInstruction é true, os instantâneos aninhados precedem o instantâneo Do que os contém, porque o operador termina depois dos seus descendentes; os instantâneos anteriores utilizam a pré-ordem oposta

FormTraversalStatus e FormDescendantCount comunicam se cada formulário foi enumerado ou ignorado, enquanto os campos de invocação e de pai reconstruem a árvore de chamadas