Record THPDFHeadlessAnnotationRemovalOptions

THPDFHeadlessAnnotationRemovalOptions = record
  MaxAnnotations, MaxOperations, MaxNameBytes: Integer;
  MaxWorkingBytes: Int64;
  CancellationToken: THPDFCancellationToken;
  class function Default: THPDFHeadlessAnnotationRemovalOptions; static;
end;

Declarado em HPDFHeadlessDocument; inicialize o record com Default antes de mudar capacidades individuais

MembroDefaultÂmbito
MaxAnnotations65536Delimita identidades pedidas e a contagem total de entradas de anotações de páginas analisadas no documento, incluindo entradas não relacionadas com os nomes pedidos
MaxOperations8000000Delimita travessia real, resolução de referências, processamento de identidades, pesquisas em dicionários, ordenação, expansão de dependências e trabalho de preparação
MaxNameBytes16777216Delimita nomes pedidos combinados e nomes de anotações descodificados, cobrados a dois bytes por unidade de código Unicode
MaxWorkingBytes134217728Delimita armazenamento de preparação da remoção, estruturas desanexadas e admissão de serialização
CancellationTokennilToken de cancelamento cooperativo emprestado opcional

Todas as capacidades numéricas têm de ser positivas; exceder uma capacidade válida reporta hdLimitExceeded através de EHPDFHeadlessDocumentError

Limites do documento continuam a aplicar-se, incluindo tamanho de ficheiro, tamanho de objeto, armazenamento descodificado e profundidade de referências; limites de remoção não aumentam essas capacidades

Se tanto o documento como as opções fornecem um token de cancelamento, têm de ser a mesma instância; sem token nas opções, o token existente do documento permanece efetivo

A transação Windows fornece o seu próprio token partilhado e limita a memória de trabalho de remoção a metade da capacidade de trabalho da transação e a contagem de anotações à capacidade de objetos dela

JSON annotationLimits pode baixar as capacidades efetivas; valores acima da capacidade da operação envolvente são rejeitados em vez de aumentar silenciosamente o budget

Falha e cancelamento deixam o grafo carregado nativo e o destino inalterados; veja publicação de callbacks para sinks de saída que podem já ter recebido bytes