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

MembroDefaultEscopo
MaxAnnotations65536Delimita identidades solicitadas e a contagem total de entradas de anotações de página escaneadas no documento, incluindo entradas não relacionadas aos nomes solicitados
MaxOperations8000000Delimita travessia real, resolução de referências, processamento de identidades, buscas em dicionários, ordenação, expansão de dependências e trabalho de preparação
MaxNameBytes16777216Delimita nomes solicitados combinados e nomes de anotações decodificados, 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 precisam ser positivas; exceder uma capacidade válida reporta hdLimitExceeded por meio de EHPDFHeadlessDocumentError

Limites do documento continuam se aplicando, incluindo tamanho de arquivo, tamanho de objeto, armazenamento decodificado e profundidade de referências; limites de remoção não aumentam essas capacidades

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

A transação Windows fornece seu próprio token compartilhado e limita a memória de trabalho de remoção à 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 callback para sinks de saída que podem já ter recebido bytes