|
Przepisy preflight
Ten zestaw przepisów grupuje API i demonstracje preflight w przepisy
zorientowane na zadania. Użyj referencji API, gdy potrzebujesz dokładnych
sygnatur; użyj tej strony, gdy potrzebujesz działającej ścieżki dla
aplikacji, skryptu budowania albo zadania CI.
Wybór formatu wyjściowego
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;
Wyjście tekstowe jest stabilne bajtowo i wygodne do porównań diff;
JSON nadaje się do wczytywania przez potoki. HTML jest samowystarczalny
i można go otworzyć bezpośrednio albo zapisać jako artefakt CI. CSV
używa stabilnych kolumn dla arkuszy kalkulacyjnych i wsadowych
przepływów raportowania.
Walidacja dokumentów 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;
Raport PDF/VT skupia się na identyfikacji ISO 16612-2 i strukturze
części dokumentu: XMP GTS_PDFVTVersion w tekście elementu
albo w formie atrybutu RDF, zgodności daty modyfikacji, bazowym znaczniku
PDF/X, output intent, DPartRoot,
DPartRootNode, NodeNameList oraz pokryciu
DPart na poziomie strony.
Zastosowanie profilu
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;
Profile wyciszają nazwane kontrole, ostrzeżenia albo wszystkie
wskazówki. Użyj ValidatePreflightProfile przed zastosowaniem
profilu utworzonego przez użytkownika, gdy bezpieczne przerwanie jest
ważniejsze niż ciche ignorowanie przestarzałej nazwy.
Tworzenie profilu wielokrotnego użytku z presetu
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;
Użyj MergePreflightProfiles, aby połączyć preset z nazwami
specyficznymi dla projektu. Użyj DiffPreflightProfiles, aby
przejrzeć dryf profilu przed aktualizacją współdzielonego pliku
konfiguracyjnego.
Archiwizacja raportu razem z PDF
PDF.EmbedPreflightReportInPDF('Input.pdf', 'Input-with-report.pdf');
PDF.EmbedPreflightReportAsXMP('Input.pdf', 'Input-with-xmp-report.pdf');
Ścieżka osadzania tekstu dopisuje czytelny blok komentarza po końcowym
znaczniku EOF. Ścieżka XMP dopisuje ładunek w kształcie RDF dla przepływów
archiwizacji skanujących pakiety metadanych.
Walidacja osadzonego raportu
var
OriginalReport: AnsiString;
CurrentReport: AnsiString;
begin
if not PDF.LoadAndValidatePreflightReport(
'Input-with-report.pdf', OriginalReport, CurrentReport) then
WriteLn(string(PDF.ComparePreflightReports(OriginalReport, CurrentReport)));
end;
Ścieżka walidacji porównuje osadzony odcisk z nowym uruchomieniem
preflight na bajtach źródłowych. Pomocnik diff działa liniowo i jest
dostrojony do raportów preflight HotPDF.
Uruchomienie konserwatywnej naprawy
var
RepairsApplied: AnsiString;
begin
if PDF.RepairPDFFromPreflightReport(
'Broken.pdf', 'Broken-repaired.pdf', RepairsApplied) then
WriteLn(string(RepairsApplied));
end;
Pomocnik naprawy celowo pozostaje wąski. Obsługuje końcowe bajty po
finalnym znaczniku EOF i brakujące znaczniki EOF, ale nie przebudowuje
tabel cross-reference ani nie przepisuje strumieni.
Agregowanie wielu raportów
Reports[0] := PDF.CreatePreflightReport('A.pdf');
Reports[1] := PDF.CreatePreflightReport('B.pdf');
Summary := PDF.AggregatePreflightReports(Reports);
Wyjście agregacji podaje jeden wiersz statusu na PDF oraz sumy
przetworzonych raportów, błędów i ostrzeżeń. Przydaje się, gdy potok
potrzebuje jednego podsumowania, mimo że szczegółowe raporty są
przechowywane osobno dla każdego pliku wejściowego.
Użycie narzędzia wiersza poleceń
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 odzwierciedla przepływ biblioteki: jeden plik lub rekurencyjne
wejście katalogu, wyjście text / JSON / HTML, opcjonalne hasło,
opcjonalny profil, wbudowany preset, szczegółowy postęp i zagregowane
podsumowanie.
Budowanie statycznego panelu
PreflightDashboard C:\Archive C:\Archive\preflight-dashboard
Demo panelu zapisuje index.html oraz raporty HTML dla
poszczególnych plików. Serwer WWW nie jest wymagany, więc wynik można
opublikować jako statyczny artefakt.
Dostosowanie do odbiorców JSON w stylu veraPDF
Report := PDF.CreatePreflightReport('Input.pdf');
JSON := PDF.ConvertPreflightReportToVeraPDFStyle(Report);
Adapter zachowuje semantykę HotPDF, jednocześnie przekształcając
błędy do znajomej struktury wyników walidacji dla narzędzi, które już
przyjmują JSON podobny do veraPDF.
Powiązane tematy
|