Preflight-kokbok

Den här kokboken grupperar preflight-API:er och demos i uppgiftsorienterade recept. Använd API-referensen när du behöver exakta signaturer; använd den här sidan när du behöver en fungerande väg för ett program, ett byggskript eller ett CI-jobb.

Välj ett utdataformat

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;

Textutdata är byte-stabila och diff-vänliga. JSON passar för pipeline-intag. HTML är fristående och kan öppnas direkt eller sparas som en CI-artefakt. CSV använder stabila kolumner för kalkylblad och batchrapporteringsflöden.

Validera PDF/VT-dokument

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;

PDF/VT-rapporten fokuserar på ISO 16612-2-identifiering och dokumentdelsstruktur: XMP GTS_PDFVTVersion i elementtext eller RDF-attributform, matchning av ändringsdatum, PDF/X-basmarkör, output intent, DPartRoot, DPartRootNode, NodeNameList och täckning för DPart på sidnivå.

Tillämpa en profil

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;

Profiler undertrycker namngivna kontroller, varningar eller alla tips; Använd ValidatePreflightProfile innan du tillämpar en användarskriven profil när ett tydligt stopp är viktigare än att tyst ignorera ett föråldrat namn.

Skapa en återanvändbar profil från en preset

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;

Använd MergePreflightProfiles för att kombinera en preset med projektspecifika namn. Använd DiffPreflightProfiles för att granska profildrift innan du uppdaterar en delad konfigurationsfil.

Arkivera rapporten med PDF-filen

PDF.EmbedPreflightReportInPDF('Input.pdf', 'Input-with-report.pdf');
PDF.EmbedPreflightReportAsXMP('Input.pdf', 'Input-with-xmp-report.pdf');

Textinbäddningsvägen lägger till ett läsbart kommentarsblock efter den sista EOF-markören. XMP-vägen lägger till en RDF-formad nyttolast för arkiveringsflöden som skannar metadatapaket.

Validera en inbäddad rapport

var
  OriginalReport: AnsiString;
  CurrentReport: AnsiString;
begin
  if not PDF.LoadAndValidatePreflightReport(
    'Input-with-report.pdf', OriginalReport, CurrentReport) then
    WriteLn(string(PDF.ComparePreflightReports(OriginalReport, CurrentReport)));
end;

Valideringsvägen jämför det inbäddade fingeravtrycket med en ny preflight-körning över källbyten. Diff-hjälparen är radorienterad och anpassad för HotPDF preflight-rapporter.

Kör en konservativ reparationspass

var
  RepairsApplied: AnsiString;
begin
  if PDF.RepairPDFFromPreflightReport(
    'Broken.pdf', 'Broken-repaired.pdf', RepairsApplied) then
    WriteLn(string(RepairsApplied));
end;

Reparationshjälparen hålls avsiktligt snäv. Den hanterar avslutande byte efter den sista EOF-markören och saknade EOF-markörer, men bygger inte om korsreferenstabeller och skriver inte om strömmar.

Sammanställ många rapporter

Reports[0] := PDF.CreatePreflightReport('A.pdf');
Reports[1] := PDF.CreatePreflightReport('B.pdf');
Summary := PDF.AggregatePreflightReports(Reports);

Den sammanställda utdatan listar en statusrad per PDF och totalsummor för bearbetade rapporter, fel och varningar. Det är användbart när en pipeline behöver en enda sammanfattning även om detaljerade rapporter sparas per indatafil.

Använd kommandoradsverktyget

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

CLI:n speglar bibliotekets arbetsflöde: en fil eller rekursiv katalogindata, text / JSON / HTML-utdata, valfritt lösenord, valfri profil, inbyggd preset, utförliga framsteg och sammanställd sammanfattning.

Bygg en statisk dashboard

PreflightDashboard C:\Archive C:\Archive\preflight-dashboard

Dashboard-demot skriver en index.html plus HTML-rapporter per fil. Ingen webbserver krävs, så resultatet kan publiceras som en statisk artefakt.

Anpassa till JSON-konsumenter i veraPDF-stil

Report := PDF.CreatePreflightReport('Input.pdf');
JSON := PDF.ConvertPreflightReportToVeraPDFStyle(Report);

Adaptern behåller HotPDF-semantiken samtidigt som fel omformas till en bekant valideringsresultatstruktur för verktyg som redan förbrukar veraPDF-liknande JSON.

Relaterade ämnen