|
Preflight Cookbook
Acest cookbook grupează API-urile și demo-urile de preflight în
rețete orientate pe sarcini. Folosește referința API când ai nevoie de
semnături exacte; folosește această pagină când ai nevoie de o cale de
lucru pentru o aplicație, un script de build sau un job CI
Alege un format de ieșire
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;
Ieșirea text este stabilă la nivel de octet și potrivită pentru diff
JSON este potrivit pentru ingestie în pipeline. HTML este autonom și
poate fi deschis direct sau salvat ca artefact CI. CSV folosește coloane
stabile pentru foi de calcul și fluxuri de rapoarte batch
Validează documente PDF/VT
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;
Raportul PDF/VT se concentrează pe identificarea ISO 16612-2 și pe
structura document-part: XMP GTS_PDFVTVersion în textul
elementului sau în formă de atribut RDF, potrivirea datei de modificare,
marcatorul de bază PDF/X, output intent, DPartRoot,
DPartRootNode, NodeNameList și acoperirea
DPart la nivel de pagină
Aplică un 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;
Profilele suprimă verificări numite, avertismente sau toate sugestiile
Folosește ValidatePreflightProfile înainte de a aplica un
profil scris de utilizator atunci când eșecul în mod închis este mai
important decât ignorarea silențioasă a unui nume învechit
Creează un profil reutilizabil dintr-un 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;
Folosește MergePreflightProfiles pentru a combina un
preset cu nume specifice proiectului. Folosește
DiffPreflightProfiles pentru a revizui deriva de profil
înainte de actualizarea unui fișier de configurare partajat
Arhivează raportul împreună cu PDF-ul
PDF.EmbedPreflightReportInPDF('Input.pdf', 'Input-with-report.pdf');
PDF.EmbedPreflightReportAsXMP('Input.pdf', 'Input-with-xmp-report.pdf');
Calea de încorporare a textului adaugă un bloc de comentarii lizibil
după marcatorul EOF final. Calea XMP adaugă o sarcină utilă în formă RDF
pentru fluxurile de arhivare care scanează pachete de metadate
Validează un raport încorporat
var
OriginalReport: AnsiString;
CurrentReport: AnsiString;
begin
if not PDF.LoadAndValidatePreflightReport(
'Input-with-report.pdf', OriginalReport, CurrentReport) then
WriteLn(string(PDF.ComparePreflightReports(OriginalReport, CurrentReport)));
end;
Calea de validare compară amprenta încorporată cu o rulare preflight
nouă peste octeții sursă. Helperul diff este orientat pe linii și
calibrat pentru rapoartele preflight HotPDF
Rulează o trecere de reparare conservatoare
var
RepairsApplied: AnsiString;
begin
if PDF.RepairPDFFromPreflightReport(
'Broken.pdf', 'Broken-repaired.pdf', RepairsApplied) then
WriteLn(string(RepairsApplied));
end;
Helperul de reparare rămâne intenționat restrâns. Gestionează octeții
rămași după marcatorul EOF final și marcatorii EOF lipsă, dar nu
reconstruiește tabelele cross-reference și nu rescrie fluxurile
Agregă multe rapoarte
Reports[0] := PDF.CreatePreflightReport('A.pdf');
Reports[1] := PDF.CreatePreflightReport('B.pdf');
Summary := PDF.AggregatePreflightReports(Reports);
Ieșirea agregată afișează un rând de stare per PDF și totalurile
pentru rapoarte procesate, eșecuri și avertismente. Este utilă atunci
când un pipeline are nevoie de un singur rezumat, chiar dacă rapoartele
detaliate sunt păstrate per fișier de intrare
Folosește utilitarul din linia de comandă
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-ul oglindește fluxul bibliotecii: o intrare de fișier sau de
director recursiv, ieșire text / JSON / HTML, parolă opțională, profil
opțional, preset încorporat, progres detaliat și rezumat agregat
Construiește un dashboard static
PreflightDashboard C:\Archive C:\Archive\preflight-dashboard
Demo-ul dashboard scrie un index.html plus rapoarte HTML
per fișier. Nu este necesar un server web, astfel că ieșirea poate fi
publicată ca artefact static
Adaptează-te la consumatorii JSON în stil veraPDF
Report := PDF.CreatePreflightReport('Input.pdf');
JSON := PDF.ConvertPreflightReportToVeraPDFStyle(Report);
Adaptorul păstrează semantica HotPDF în timp ce remodelează eșecurile
într-o structură familiară de rezultat al validării pentru instrumentele
care consumă deja JSON de tip veraPDF
Subiecte înrudite
|