Preflight Reports
Conformidade, inspeção de documentos, automatização
Overview
PDF Library for Delphi pode executar verificações incorporadas PDF/A e PDF/UA-1 num PDF externo e transformar o resultado num relatório reutilizável. Utilize as APIs de relatórios quando uma aplicação ou pipeline necessitar do mesmo diagnóstico de CheckFileCompliance sem gerir diretamente identificadores de listas de cadeias.
O pipeline de relatórios é deliberadamente estratificado. CheckFileCompliance continua a ser a API de baixo nível que devolve identificadores de listas de problemas. CreatePreflightReport formata as verificações num corpo estável de texto simples. CreatePreflightReportEx converte esse relatório para texto, JSON, HTML ou CSV, partilhando o estado e a contagem.
APIs da biblioteca
| CheckFileCompliance | Executa uma verificação selecionada num ficheiro PDF e devolve 0 em caso de aprovação ou um StringListID com linhas de problemas. |
|---|---|
| CreatePreflightReport | Executa PDF/A, PDF/UA-1 ou ambas e devolve texto simples com metadados, uma secção por verificação e resumo final. |
| CreatePreflightReportEx | Devolve o relatório em texto (0), JSON (1), HTML (2) ou CSV (3). Valores desconhecidos usam texto. |
| SavePreflightReport | Escreve o relatório de texto em UTF-8 e cria o diretório pai quando necessário. |
| SavePreflightReportEx | Escreve um relatório de texto, JSON, HTML ou CSV em UTF-8 e cria o diretório pai. |
| ComparePreflightReports | Compara dois relatórios de texto, ignora linhas voláteis de carimbo Generated: e devolve diferenças compactas apenas quando muda conteúdo estável. |
Contrato de formato
| Text | Corpo canónico do relatório. Contém Generated, Input, Checks, Issue mode, uma secção por verificação e um bloco Summary com Total issues e Result. |
|---|---|
| JSON | Objeto com title, generated, input, checks, issueMode, sections e summary. Cada secção tem nome, estado e array de problemas. |
| HTML | Documento HTML UTF-8 autónomo. O texto é escapado e apresentado num bloco pré-formatado, sem interpretação como marcação. |
| CSV | Linhas com colunas fixas kind,section,status,code,message. Linhas meta transportam cabeçalhos, check o estado PASS/FAIL, issue separam códigos e mensagens e summary transportam os totais. |
Seleção de conformidade
As APIs utilizam uma máscara de bits para ComplianceTests: 1 seleciona PDF/A, 2 PDF/UA-1 e 3 ambas. 0 também executa ambas. Options utiliza atualmente o bit 1 para parar cada verificação no primeiro problema; forneça 0 para recolher todos.
Demonstração de linha de comandos
A demonstração de consola PreflightReport para Delphi apresenta o fluxo de trabalho dos relatórios sem acrescentar uma interface específica da aplicação. Permite validar um único PDF, gerar resultados formatados, comparar um novo relatório de texto com uma referência ou processar um diretório em lote
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.txt"
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.json" --json
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.csv" --format csv
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.txt" --compare "C:\Baselines\invoice.preflight.txt"
PreflightReport.exe --input-dir "C:\PDFs" --output-dir "C:\Reports" --recursive --format html
O modo de ficheiro único devolve o código de saída 0 quando as verificações selecionadas não comunicam problemas, 1 em caso de erros da linha de comandos ou de execução e 2 quando é comunicado algum problema ou a comparação com a referência apresenta diferenças. O modo de diretório grava um ficheiro <basename>.preflight.<ext> por PDF e acrescenta um ficheiro preflight-summary.csv com o caminho de origem, o estado aprovado/reprovado, o número de problemas e o caminho do relatório
Notas sobre a comparação
ComparePreflightReports foi definido para relatórios em texto simples. Deve receber o relatório de texto de referência e o novo relatório de texto gerado, mesmo quando a saída destinada ao utilizador para a mesma execução está em JSON, HTML ou CSV. O comparador normaliza as linhas Generated:, porque as marcas temporais mudam em cada execução; todas as restantes linhas estáveis são comparadas por ordem, com uma pequena janela de antecipação para manter legíveis as diferenças de inserção e eliminação
Consulte também
CheckFileCompliance, CreatePreflightReport, CreatePreflightReportEx, SavePreflightReport, SavePreflightReportEx, ComparePreflightReports, GetPDFUADiagnostics