|
Livro de receitas de preflight
Este livro de receitas agrupa as APIs e demos de preflight em receitas orientadas para tarefas. Use a referência da API quando precisar de assinaturas exactas; use esta página quando precisar de um caminho funcional para uma aplicação, script de compilação ou tarefa de CI
Escolher um formato de saída
var
PDF: THotPDF;
begin
PDF := THotPDF.Create(nil);
try
PDF.SavePreflightReport('Input.pdf', 'Input.preflight.txt');
PDF.SavePreflightReport('Input.pdf', 'Input.preflight.json', '', pfJSON);
PDF.SavePreflightReport('Input.pdf', 'Input.preflight.html', '', pfHTML);
PDF.SavePreflightReport('Input.pdf', 'Input.preflight.csv', '', pfCSV);
finally
PDF.Free;
end;
end;
A saída de texto é estável ao nível dos bytes e amiga de diffs. JSON é adequado para ingestão em pipeline. HTML é autónomo e pode ser aberto directamente ou guardado como artefacto de CI. CSV usa colunas estáveis para fluxos de trabalho de folha de cálculo e relatórios em lote
Validar documentos PDF/VT
var
PDF: THotPDF;
Report: AnsiString;
begin
PDF := THotPDF.Create(nil);
try
if not PDF.ValidatePDFVT('Input.pdf', Report) then
WriteLn(string(Report));
finally
PDF.Free;
end;
end;
O relatório PDF/VT centra-se na identificação ISO 16612-2 e na estrutura dos documentos-partes: XMP GTS_PDFVTVersion em texto de elemento ou forma de atributo RDF, correspondência da data de modificação, marcador base PDF/X, output intent, DPartRoot, DPartRootNode, NodeNameList e cobertura ao nível da página de DPart
Aplicar um perfil
var
PDF: THotPDF;
Report: AnsiString;
begin
PDF := THotPDF.Create(nil);
try
Report := PDF.CreatePreflightReportWithProfile(
'Input.pdf', '', 'project-preflight.ini', pfJSON);
finally
PDF.Free;
end;
end;
Os perfis suprimem verificações nomeadas, avisos ou todos os conselhos. Use ValidatePreflightProfile antes de aplicar um perfil criado pelo utilizador quando falhar de forma fechada for mais importante do que ignorar silenciosamente um nome obsoleto
Criar um perfil reutilizável a partir de uma predefinição
var
PDF: THotPDF;
Profile: THPDFPreflightProfile;
begin
PDF := THotPDF.Create(nil);
try
Profile := PDF.GetBuiltInPreflightProfile('compact');
Profile.DisableWarnings := 'OpenAction,JavaScript,URIAction';
PDF.SavePreflightProfile(Profile, 'compact-no-actions.ini');
finally
PDF.Free;
end;
end;
Utilize MergePreflightProfiles para combinar uma predefinição com nomes específicos do projecto. Utilize DiffPreflightProfiles para rever a deriva do perfil antes de actualizar um ficheiro de configuração partilhado
Arquivar o relatório com o PDF
PDF.EmbedPreflightReportInPDF('Input.pdf', 'Input-with-report.pdf');
PDF.EmbedPreflightReportAsXMP('Input.pdf', 'Input-with-xmp-report.pdf');
O caminho de incorporação de texto acrescenta um bloco de comentário legível após o marcador EOF final. O caminho XMP acrescenta uma carga em formato RDF para fluxos de arquivo que analisam pacotes de metadados
Validar um relatório incorporado
var
OriginalReport: AnsiString;
CurrentReport: AnsiString;
begin
if not PDF.LoadAndValidatePreflightReport(
'Input-with-report.pdf', OriginalReport, CurrentReport) then
WriteLn(string(PDF.ComparePreflightReports(OriginalReport, CurrentReport)));
end;
O caminho de validação compara a impressão digital incorporada com uma execução de preflight nova sobre os bytes de origem. O auxiliar de diff é orientado por linhas e afinado para relatórios de preflight do HotPDF
Executar uma passagem de reparação conservadora
var
RepairsApplied: AnsiString;
begin
if PDF.RepairPDFFromPreflightReport(
'Broken.pdf', 'Broken-repaired.pdf', RepairsApplied) then
WriteLn(string(RepairsApplied));
end;
O auxiliar de reparação mantém-se de propósito restrito. Trata bytes finais após o marcador EOF final e marcadores EOF em falta, mas não reconstrói tabelas de referências cruzadas nem reescreve streams
Agregar vários relatórios
Reports[0] := PDF.CreatePreflightReport('A.pdf');
Reports[1] := PDF.CreatePreflightReport('B.pdf');
Summary := PDF.AggregatePreflightReports(Reports);
A saída agregada lista uma linha de estado por PDF e totais para relatórios processados, falhas e avisos. É útil quando um pipeline precisa de um único resumo mesmo que os relatórios detalhados sejam guardados por ficheiro de entrada
Utilizar a ferramenta de linha de comandos
HotPDFPreflight Input.pdf -f json -o reports
HotPDFPreflight Input.pdf --pdfvt -o reports
HotPDFPreflight C:\Archive -r --preset compact -f text -o reports --aggregate reports\Aggregate.txt
HotPDFPreflight C:\Archive -r --profile project-preflight.ini -f html -o reports
A CLI replica o fluxo de trabalho da biblioteca: um ficheiro ou entrada de directório recursivo, saída em texto / JSON / HTML, palavra-passe opcional, perfil opcional, predefinição incorporada, progresso detalhado e resumo agregado
Criar um painel estático
PreflightDashboard C:\Archive C:\Archive\preflight-dashboard
A demo do painel escreve um index.html e relatórios HTML por ficheiro. Não é necessário servidor Web, por isso a saída pode ser publicada como artefacto estático
Adaptar para consumidores JSON ao estilo veraPDF
Report := PDF.CreatePreflightReport('Input.pdf');
JSON := PDF.ConvertPreflightReportToVeraPDFStyle(Report);
O adaptador mantém a semântica do HotPDF enquanto reestrutura falhas numa estrutura familiar de resultado de validação para ferramentas que já consomem JSON semelhante ao veraPDF
Tópicos relacionados
|