Native Linux archival font repair
Natywna konwersja PDF/A-4 tekstu/wektora może jawnie normalizować brakujące fonty przez skonfigurowany proces Ghostscript pdfwrite, zachować przeszukiwalny tekst i ścieżki wektorowe oraz zwalidować finalny natywny dokument archiwalny oficjalnym CLI veraPDF przed publikacją
Callback ABI
{"schemaVersion":1,"type":"pdfa.convert","mode":"preserve","profile":"PDF/A-4","fontRepair":true,"maxFontRepairMilliseconds":120000}
fontRepair defaultowo false; ustawienie true jawnie pozwala na podstawienie fontów zgodnie z zainstalowaną konfiguracją fontów Ghostscript i zwraca fontRepairPerformed true po udanej normalizacji
Odpowiedź zawiera też textAndVectorsPreserved, validationSucceeded, pageCount i istniejące liczby usuniętych pól, podpisów i adnotacji; udana publikacja zastępuje handle zweryfikowanym niezaszyfrowanym dokumentem archiwalnym
Pascal configuration
Options := THPDFHeadlessArchivalPreservationOptions.Default;
Options.FontRepair := True;
Options.GhostscriptExecutable := '/usr/bin/gs';
Options.MaxFontRepairMilliseconds := 120000;
Report := HPDFConvertHeadlessToPDFA4PreservingFile(Document, Destination, Options);
GhostscriptExecutable wybiera wykonywalny normalizacji, JavaExecutable i ValidatorJAR prawdziwy walidator, a CancellationToken dotyczy traversalu zasobów, sprawdzeń tekstu, normalizacji i walidacji
Processing and limits
Konwerter najpierw importuje zasoby stron źródła i spłaszcza kwalifikujące się wyglądy adnotacji do prywatnego natywnego dokumentu, więc uwierzytelnione wejścia AES są deszyfrowane przez czytnik dokumentu, a oryginalne uprawnienia stron nadal obowiązują
Ghostscript dostaje wektor argumentów z SAFER włączonym, baseline prepress, wyjściem PDF 2.0, osadzaniem fontów i jawnymi nadpisaniami downsamplingu obrazów; ograniczony traversalu zasobów kolekcjonuje nazwy fontów do PostScript nazw szesnastkowych i jawnej listy AlwaysEmbed dla starszych wersji Ghostscript
Proces normalizacji działa przez /usr/bin/prlimit z limitem przestrzeni adresowej z MaxWorkingBytes i limitem rozmiaru pliku z MaxOutputBytes; jego wyjście i diagnostyka mają limity bajtów, a MaxFontRepairMilliseconds ogranicza czas przetwarzania
Znormalizowane strony muszą zachować oryginalną liczbę stron i sekwencję ekstrahowanych znaków, dopuszczając zmiany layoutu linii i białych znaków oraz dodatkowy tekst spłaszczonych wyglądów; konwerter potem importuje je do świeżego natywnego szablonu PDF/A-4 z output intent sRGB, XMP i identyfikatorami dokumentu
Finalny kandydat musi przejść oficjalną skonfigurowaną walidację PDF/A-4 veraPDF przed fsync i atomową zmianą nazwy; niedostępny backend, zmieniony tekst, niepoprawne wyjście, przekroczony budżet, timeout albo anulowanie pozostawiają cel nienaruszony i sprzątają prywatne pliki staging
Timeout i anulowanie przerywają, w razie potrzeby zabijają i zbierają bezpośredni proces normalizacji; wykonywalne podprocesów powinny działać bezpośrednio, a nie przez shell albo wrapper tworzący niepowiązanych potomków
Runtime and fidelity
Naprawa fontów wymaga Ghostscript, jego zainstalowanych fontów zastępczych i util-linux prlimit; walidacja zachowania wymaga bezgłowego runtime'u Java, oficjalnego JAR CLI veraPDF i Little CMS 2 do natywnego generowania profilu sRGB
Podstawione fonty mogą zmienić kontury glifów i layout; dostępny oryginalny font jest preferowany, gdy liczy się dokładny wygląd, a jawna naprawa fontów nie obiecuje byte-identycznych zasobów stron ani zachowanych podpisów
Podpisane wejścia wymagają AllowSignatureInvalidation true, aliasy źródła/wyjścia są odrzucane, a widoczne adnotacje nadal potrzebują użytecznego wyglądu normal przed spłaszczeniem
Niezależna akceptacja pokrywa 12 standardowych krójów fontów łacińskich i nieosadzony font TrueType Arial dla wejść plain, AES R5 i AES R6, obróconych stron, rzeczywistych osadzonych programów fontów, przeszukiwalnego tekstu akcentowanego, zachowanych ścieżek wektorowych, wierności pikselowej i prawdziwej walidacji PDF/A-4
Importy stron i zachowanie · Natywne ABI callbacków · Natywne workflow