Preflight kogebog

Denne kogebog grupperer preflight API'er og demoer i opgaveorienterede opskrifter. Brug API-referencen, når du har brug for nøjagtige signaturer; brug denne side, når du har brug for en fungerende sti til en applikation, et build-script eller et CI-job

Vælg et outputformat

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;

Tekstoutput er byte-stabilt og diff-venligt. JSON is velegnet til pipeline-indtagelse. HTML er selvstændig og kan åbnes direkte eller gemmes som en CI-artefakt. CSV bruger stabile kolonner til regneark og batch-rapport arbejdsgange

Valider PDF/VT-dokumenter

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 fokuserer på ISO 16612-2 identifikation og dokument-del struktur: XMPGTS_PDFVTVersioni element tekst- eller RDF-attributform, ændringsdato-matching, PDF/X basis markør, output intent,DPartRoot, DPartRootNode, NodeNameList, og side-niveauDPart coverage

Anvend 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 undertrykker navngivne kontroller, advarsler eller alle tip. BrugValidatePreflightProfilefør du anvender en brugeroprettet profil, når fejlslutning er vigtigere end lydløst at ignorere et forældet navn

Opret en genanvendelig profil fra en forudindstilling

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;

Brug MergePreflightProfiles til at kombinere en forudindstilling med projektspecifikke navne. Brug DiffPreflightProfiles til at gennemgå profilafvigelser før opdatering af en delt konfigurationsfil

Arkiver rapporten med PDF'en

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

Tekstindlejringsstien tilføjer en læsbar kommentarblok efter den endelige EOF-markør. XMP-stien tilføjer en RDF-formet nyttelast for arkiverings arbejdsgange, der scanner metadatapakker

Valider en indlejret 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;

Valideringsstien sammenligner det indlejrede fingeraftryk med en frisk preflight-kørsel over kildebytes. Diff-hjælperen er linjeorienteret og tilpasset HotPDF preflight-rapporter

Kør en konservativ reparationspassage

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

Reparationshjælperen forbliver bevidst begrænset. Den håndterer efterfølgende bytes efter den endelige EOF-markør og manglende EOF-markører, men genopbygger ikke krydsreferencetabeller eller omskriver strømme

Saml many rapporter

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

Det samlede output viser én statuslinje pr. PDF og totaler for behandlede rapporter, fejl og advarsler. Det er nyttigt, når en pipeline har brug for ét resumé, selvom detaljerede rapporter gemmes pr. inputfil

Brug kommandolinjeværktøjet

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 afspejler biblioteksarbejdsgangen: én fil eller rekursiv biblioteksinput, tekst / JSON / HTML output, valgfri adgangskode, valgfri profil, indbygget forudindstilling, detaljeret fremdrift og samlet resumé

Byg et statisk dashboard

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

Dashboard-demoen skriver enindex.htmlplus pr.-fil HTML-rapporter. Ingen webserver er påkrævet, så outputtet kan publiceres som en statisk artefakt

Tilpas til veraPDF-stil JSON-forbrugere

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

Adapteren bevarer HotPDF-semantikken, mens den omformer fejl til en kendt valideringsresultat-struktur for værktøjer, der allerede forbruger veraPDF-lignende JSON

Relaterede emner