Preflight-kokebok

Denne kokeboken samler preflight-API-er og demoer i oppgaveorienterte oppskrifter Bruk API-referansen når du trenger nøyaktige signaturer; bruk denne siden når du trenger en praktisk arbeidsvei for en applikasjon, et byggeskript eller en CI-jobb

Velg et 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;

Tekstutdata er byte-stabil og diff-vennlig. JSON passer for pipeline-inntak. HTML er selvstendig og kan åpnes direkte eller lagres som et CI-artefakt. CSV bruker stabile kolonner for regneark- og batchrapportflyter

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-identifikasjonen og dokumentdelstrukturen: XMP GTS_PDFVTVersion i elementtekst eller RDF-attributtform, samsvar med modifikasjonsdato, PDF/X-basemarkør, output intent, DPartRoot, DPartRootNode, NodeNameList og sidenivå-DPart-dekning

Bruk 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 navngitte kontroller, advarsler eller alle hint Bruk ValidatePreflightProfile før du bruker en brukerlaget profil når det er viktigere å feile lukket enn å ignorere et utdatert navn stille

Lag en gjenbrukbar profil fra en forhåndsinnstilling

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;

Bruk MergePreflightProfiles til å kombinere en forhåndsinnstilling med prosjektspecifikke navn Bruk DiffPreflightProfiles til å gjennomgå avvik i profilene før du oppdaterer en delt konfigurasjonsfil

Arkiver rapporten sammen med PDF-en

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

Tekstinnbyggingsstien legger til en lesbar kommentarboks etter den siste EOF-markøren. XMP-stien legger til en RDF-formet last for arkivarbeidsflyter som skanner metadatapakker

Valider en innebygd 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 innebygde fingeravtrykket med en fersk preflight-kjøring over kildebytene. Diff-hjelperen er linjeorientert og tilpasset HotPDF-preflightrapporter

Kjør en konservativ reparasjonsrunde

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

Reparasjons-hjelperen holder seg med vilje smal. Den håndterer etterfølgende byte etter den siste EOF-markøren og manglende EOF-markører, men bygger ikke opp kryssreferansetabeller på nytt eller skriver strømmer om

Aggreger mange rapporter

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

Den aggregerte utdataen viser én statuslinje per PDF og totaler for behandlede rapporter, feil og advarsler. Den er nyttig når en pipeline trenger én oppsummering selv om detaljerte rapporter beholdes per innfil

Bruk kommandolinjeverktøyet

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-en speiler biblioteksarbeidsflyten: én fil eller rekursiv kataloginngang, tekst / JSON / HTML-utdata, valgfritt passord, valgfri profil, innebygd forhåndsinnstilling, detaljert fremdrift og aggregert oppsummering

Bygg et statisk dashboard

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

Dashboard-demoen skriver en index.html pluss HTML-rapporter per fil. Ingen webserver er nødvendig, så resultatet kan publiseres som et statisk artefakt

Tilpass til veraPDF-lignende JSON-forbrukere

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

Adapteren bevarer HotPDF-semantikken samtidig som den omformer feil til en kjent valideringsresultatstruktur for verktøy som allerede konsumerer veraPDF-lignende JSON

Relaterte emner