Método THotPDF.RepairPDFA4
Executa uma transação delimitada no grafo de objetos que aplica a normalização determinística de PDF/A-4, valida o resultado e então confirma o conjunto completo de reparos seguros ou restaura o estado original do documento
Declaração
function RepairPDFA4(
const Options: THPDFPDFA4RepairOptions;
out Report: THPDFPDFA4RepairReport;
out Issues: THPDFPDFA4ValidationIssues): boolean; overload;
function RepairPDFA4(
const Options: THPDFPDFA4RepairOptions;
out Report: THPDFPDFA4RepairReport;
out Issues: THPDFPDFA4ValidationIssues;
out Findings: THPDFComplianceFindings): boolean; overload;
Contrato de confirmação
Truesignifica que a transação foi aceita, incluindo o caso de nenhuma alteração em um documento já conformeFalsesignifica que a transação foi revertida após falha de limite, regressão de validação, exceção ou políticaRequireFullConformancenão atendidaReport.ValidationSucceededé o resultado autoritativo de conformidade total após um reparo confirmado- Com as opções padrão, reparos seguros podem ser confirmados enquanto achados de validação inseguros e não relacionados permanecem explícitos em
IssueseFindings
Fronteira do reparo seguro
O método pode normalizar o cabeçalho PDF 2.0, criar um ID de trailer ausente, criar ou reparar fluxos e dicionários de metadados, canonizar a identificação PDF/A pela URI do namespace preservando qualquer prefixo RDF legal, remover entradas proibidas do Catálogo e remover estruturas de apresentação alternativa
O reparo de XMP UTF-8 remove atributos proibidos de bytes e de codificação do cabeçalho do pacote, usa o namespace canônico de identificação PDF/A, grava part=4 e rev=2020, e seleciona a propriedade de conformidade correta de base, engineering ou arquivo associado
O pipeline de reparo nunca reescreve fluxos de conteúdo de páginas ou anotações, fontes, espaços de cor, transparência, imagens, operadores gráficos nem texto extraído
Reversão e auditabilidade
Os snapshots do grafo cobrem mutações de dicionários e bytes dos fluxos de metadados, de modo que a reversão restaura o cabeçalho original, o estado do trailer, o grafo de objetos, o payload XMP e o conteúdo das páginas
A sobrecarga com achados compartilhados anexa as ações de reparo, o status aplicado, não resolvido, falho ou revertido, as contagens de reparo, identificadores estáveis de regras, cláusulas, caminhos de objetos, números de objetos e localizações de páginas
Orçamentos de objetos, mutações, questões retidas, bytes decodificados e tokens de conteúdo impedem que arquivos adversariais transformem o reparo ou suas portas de validação em trabalho ilimitado
Exemplo
var
Options: THPDFPDFA4RepairOptions;
Report: THPDFPDFA4RepairReport;
Issues: THPDFPDFA4ValidationIssues;
begin
Options := THPDFPDFA4RepairOptions.Default;
Options.Profile := p4pAutomatic;
if not PDF.RepairPDFA4(Options, Report, Issues) then
raise Exception.Create('PDF/A-4 repair rolled back');
if not Report.ValidationSucceeded then
LogRemainingPDFA4Issues(Issues);
end;