Preflight Cookbook

Dit kookboek groepeert de preflight-API's en demo's in taakgerichte recepten. Gebruik de API-referentie als je exacte signaturen nodig hebt; gebruik deze pagina als je een werkend pad nodig hebt voor een toepassing, buildscript of CI-job.

Kies een uitvoerformaat

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;

Tekstuitvoer is byte-stabiel en diff-vriendelijk. JSON is geschikt voor pipeline-ingest en geeft elke check, hint en waarschuwing een stabiele ruleId met namespace plus een gestructureerde location met logische scope, pad, PDF-sleutel en exacte object-, pagina- of bytecoördinaten wanneer beschikbaar. HTML toont dezelfde identificatoren en locaties, terwijl CSV zijn stabiele kolommen behoudt voor spreadsheet- en batchrapport-workflows

Valideer PDF/VT-documenten

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;

Het PDF/VT-rapport richt zich op de ISO 16612-2-identificatie en documentpart-structuur: XMP GTS_PDFVTVersion als elementtekst of RDF-attribuut, matching van de wijzigingsdatum, PDF/X-basiskenmerk, output intent, DPartRoot, DPartRootNode, NodeNameList en dekking van DPart op paginaniveau.

Apply a profile

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;

Profielen onderdrukken benoemde checks, waarschuwingen of alle hints. Gebruik ValidatePreflightProfile voordat je een door de gebruiker gemaakt profiel toepast wanneer gesloten falen belangrijker is dan een verouderde naam stilletjes te negeren.

Maak een herbruikbaar profiel vanuit een 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;

Gebruik MergePreflightProfiles om een preset te combineren met projectspecifieke namen. Gebruik DiffPreflightProfiles om profielafwijkingen te bekijken voordat je een gedeeld configuratiebestand bijwerkt.

Archiveer het rapport bij de PDF

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

Het tekst-embedpad voegt een leesbaar commentaarblok toe na de laatste EOF-marker. Het XMP-pad voegt een RDF-vormige payload toe voor archiefworkflows die metadatapakketten scannen.

Valideer een ingebed 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;

Het validatiepad vergelijkt de ingebedde vingerprint met een verse preflight-ronde over de bronbytes. De diff-helper werkt op regelniveau en is afgestemd op HotPDF-preflightrapporten.

Draai een conservatieve reparatieronde

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

De reparatiehelper blijft bewust beperkt. Hij pakt bytes na de laatste EOF-marker en ontbrekende EOF-markers op, maar bouwt geen kruisverwijzingstabellen opnieuw en herschrijft geen streams.

Aggregeer veel rapporten

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

De geaggregeerde uitvoer somt één statusregel per PDF op plus totalen voor verwerkte rapporten, fouten en waarschuwingen. Handig wanneer een pijplijn één samenvatting nodig heeft, ook al worden gedetailleerde rapporten per invoerbestand bewaard.

Gebruik het commandline-hulpmiddel

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

De CLI spiegelt de bibliotheekworkflow: één bestand of recursieve directory als invoer, tekst-/JSON-/HTML-uitvoer, optioneel wachtwoord, optioneel profiel, ingebouwde preset, uitgebreide voortgang en geaggregeerde samenvatting.

Bouw een statisch dashboard

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

De dashboarddemo schrijft een index.html plus HTML-rapporten per bestand. Er is geen webserver nodig, dus de uitvoer kan als statisch artefact worden gepubliceerd.

Sluit aan op veraPDF-achtige JSON-consumers

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

De adapter behoudt HotPDF-semantiek terwijl hij fouten herscheupt naar een vertrouwde validatieresultaatstructuur voor tooling die al veraPDF-achtige JSON consumeert. De violations behouden dezelfde stabiele ruleId en gestructureerde location-waarden als het native JSON-rapport

Related Topics