|
Preflight-kookboek
Dit kookboek groepeert de preflight-API's en demo's in taakgerichte
recepten. Gebruik de API-referentie wanneer je exacte handtekeningen nodig hebt; gebruik deze
pagina wanneer 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-invoer. HTML is zelfvoorzienend en kan direct worden geopend of
als CI-artifact worden opgeslagen. CSV gebruikt stabiele kolommen voor spreadsheet- en
batchrapport-workflows
PDF/VT-documenten valideren
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 identificatie en documentdeelstructuur van ISO 16612-2:
XMP GTS_PDFVTVersion in elementtekst of RDF-attribuutvorm, overeenkomst van wijzigingsdatum, PDF/X-basismarkering,
output intent, DPartRoot, DPartRootNode, NodeNameList en
DPart-dekking op paginaniveau
Een profiel toepassen
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 controles, waarschuwingen of alle hints. Gebruik
ValidatePreflightProfile vóór het toepassen van een door de gebruiker gemaakt
profiel wanneer fail-closed belangrijker is dan een verouderde naam stilzwijgend negeren
Maak een herbruikbaar profiel op basis van 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 vóór het bijwerken van een gedeeld configuratiebestand
Archiveer het rapport samen met de PDF
PDF.EmbedPreflightReportInPDF('Input.pdf', 'Input-with-report.pdf');
PDF.EmbedPreflightReportAsXMP('Input.pdf', 'Input-with-xmp-report.pdf');
Het pad voor tekstinsluiting voegt een leesbaar commentaarblok toe na de
laatste EOF-markering. Het XMP-pad voegt een RDF-vormige payload toe voor archiverings-
workflows die metadata-pakketten scannen
Een ingebed rapport valideren
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 vingerafdruk met een verse
preflight-run over de bronbytes. De diff-helper is regelgeoriënteerd en
afgestemd op HotPDF-preflightrapporten
Voer een conservatieve herstelpass uit
var
RepairsApplied: AnsiString;
begin
if PDF.RepairPDFFromPreflightReport(
'Broken.pdf', 'Broken-repaired.pdf', RepairsApplied) then
WriteLn(string(RepairsApplied));
end;
De repair-helper blijft bewust beperkt. Hij verwerkt extra bytes
na de laatste EOF-markering en ontbrekende EOF-markeringen, maar
bouwt cross-reference-tabellen niet opnieuw op en herschrijft streams niet
Veel rapporten aggregeren
Reports[0] := PDF.CreatePreflightReport('A.pdf');
Reports[1] := PDF.CreatePreflightReport('B.pdf');
Summary := PDF.AggregatePreflightReports(Reports);
De aggregaatuitvoer geeft één statusregel per PDF en totalen voor
verwerkte rapporten, fouten en waarschuwingen. Dit is handig wanneer een pipeline
één samenvatting nodig heeft terwijl gedetailleerde rapporten per invoerbestand worden bewaard
Gebruik de commandoregeltool
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
mapinvoer, tekst / JSON / HTML-uitvoer, optioneel wachtwoord, optioneel
profiel, ingebouwde preset, uitgebreide voortgang en aggregaatsamenvatting
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
artifact worden gepubliceerd
Aanpassen aan veraPDF-achtige JSON-consumenten
Report := PDF.CreatePreflightReport('Input.pdf');
JSON := PDF.ConvertPreflightReportToVeraPDFStyle(Report);
De adapter behoudt de HotPDF-semantiek terwijl fouten worden omgevormd tot een
vertrouwde validatieresultaatstructuur voor tools die al veraPDF-achtige JSON gebruiken
Related Topics
|