Raporty preflight

Zgodność, Inspekcja dokumentu, Automatyzacja

Wybór profilu czytnika PDF/UA

Kontrole PDF/UA wybierają część 2, gdy XMP wskazuje pdfuaid:part=2, a w przeciwnym razie zachowują kontrole części 1; opisane tu starsze kontrole PDF/UA-1 nie obejmują automatycznie części 2

Profil PDF/UA-2 implementuje podstawowe kontrole identyfikacji, przestrzeni nazw, ról i struktury; raporty strukturalne używają PDF/UA-2 i ISO 14289-2 oraz ujawniają fullCertification=false i niezweryfikowany zakres

Użyj CheckFilePDFUACompliance lub RunPDFUAValidationPipelineTask, aby wymusić część docelową, oraz GetPDFUAReadValidationCoverageJSON, aby obejrzeć limity możliwości

Przegląd

PDF Library for Delphi może uruchamiać wbudowane kontrole zgodności plików PDF/A i PDF/UA-1 dla zewnętrznego pliku PDF oraz przekształcać wynik w wynik raportu wielokrotnego użytku. Używaj interfejsów API raportów, gdy aplikacja lub potok kompilacji potrzebuje tej samej diagnostyki co CheckFileCompliance, ale nie chce bezpośrednio zarządzać uchwytami list ciągów

Potok raportu jest celowo warstwowy. CheckFileCompliance pozostaje niskopoziomowym interfejsem API zwracającym uchwyty list problemów. CreatePreflightReport formatuje wybrane kontrole w stabilną treść zwykłego tekstu. CreatePreflightReportEx konwertuje ten sam raport tekstowy do formatu tekstowego, JSON, HTML lub CSV, dzięki czemu wszystkie formaty mają ten sam stan powodzenia lub niepowodzenia i liczbę problemów

Interfejsy API biblioteki

CheckFileComplianceUruchamia jedną wybraną kontrolę zgodności dla pliku PDF i zwraca 0 w razie powodzenia albo StringListID zawierający wiersze problemów
CreatePreflightReportUruchamia kontrolę PDF/A, PDF/UA-1 lub obie i zwraca raport tekstowy z metadanymi nagłówka, jedną sekcją na kontrolę i końcowym podsumowaniem
CreatePreflightReportExZwraca ten sam raport w formacie tekstowym (0), JSON (1), HTML (2) lub CSV (3). Nieznane wartości formatu używają tekstu
SavePreflightReportZapisuje raport tekstowy jako UTF-8 i w razie potrzeby tworzy katalog nadrzędny
SavePreflightReportExZapisuje raport tekstowy, JSON, HTML lub CSV jako UTF-8 i w razie potrzeby tworzy katalog nadrzędny
ComparePreflightReportsPorównuje dwa raporty tekstowe, ignoruje zmienne wiersze sygnatury czasowej Generated: i zwraca zwięzłą różnicę tylko po zmianie stabilnej zawartości

Kontrakt formatu

TextKanoniczna treść raportu. Zawiera Generated, Input, Checks, Issue mode, po jednej sekcji dla każdej wybranej kontroli oraz blok Summary z Total issues i Result
JSONJeden obiekt z polami title, generated, input, checks, issueMode, sections i summary. Każda sekcja zawiera nazwę, stan i tablicę ciągów problemów
HTMLSamodzielny dokument HTML UTF-8. Raport tekstowy jest kodowany dla HTML i wyświetlany we wstępnie sformatowanym bloku, dzięki czemu zawartość raportu jest widoczna bez interpretowania jej jako znaczników
CSVWiersze używają stałych kolumn kind,section,status,code,message. Wiersze meta zawierają pola nagłówka, wiersze check stan sekcji PASS/FAIL, wiersze issue oddzielają liczbowe kody problemów od komunikatów, a wiersze summary zawierają końcowe sumy

Wybór zgodności

Interfejsy API raportów używają maski bitowej dla ComplianceTests: 1 wybiera PDF/A, 2 wybiera PDF/UA-1, a 3 wybiera obie kontrole. Przekazanie 0 również uruchamia obie. Options używa obecnie bitu 1, aby zatrzymać każdą wybraną kontrolę po pierwszym problemie; przekaż 0, aby zebrać wszystkie zgłoszone problemy

Demo wiersza poleceń

Konsolowe demo Delphi PreflightReport przedstawia przepływ pracy raportu bez dodawania interfejsu użytkownika właściwego dla aplikacji. Może sprawdzić jeden plik PDF, wygenerować sformatowane dane wyjściowe, porównać nowy raport tekstowy z wartością bazową albo przetworzyć katalog wsadowo

PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.txt"
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.json" --json
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.csv" --format csv
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.txt" --compare "C:\Baselines\invoice.preflight.txt"
PreflightReport.exe --input-dir "C:\PDFs" --output-dir "C:\Reports" --recursive --format html

Tryb pojedynczego pliku zwraca kod zakończenia 0, gdy wybrane kontrole nie zgłaszają problemów, 1 dla błędów wiersza poleceń lub środowiska wykonawczego oraz 2, gdy zgłoszono problem lub porównanie z wartością bazową wykazało różnicę. Tryb katalogu zapisuje po jednym pliku <basename>.preflight.<ext> dla każdego PDF i dodaje plik preflight-summary.csv ze ścieżką źródłową, stanem powodzenia lub niepowodzenia, liczbą problemów i ścieżką raportu

Uwagi porównawcze

ComparePreflightReports jest zdefiniowana dla raportów tekstowych. Należy przekazać jej bazowy raport tekstowy i nowo wygenerowany raport tekstowy nawet wtedy, gdy wynik przeznaczony dla użytkownika dla tego samego uruchomienia ma format JSON, HTML lub CSV. Moduł porównujący normalizuje wiersze Generated:, ponieważ sygnatury czasowe zmieniają się przy każdym uruchomieniu; wszystkie pozostałe stabilne wiersze są porównywane kolejno z niewielkim oknem wyprzedzenia, aby różnice wstawień i usunięć pozostały czytelne

Zobacz również

CheckFileCompliance, CreatePreflightReport, CreatePreflightReportEx, SavePreflightReport, SavePreflightReportEx, ComparePreflightReports, GetPDFUADiagnostics