Ремонт шрифтов для архивации в нативном Linux
Нативная конвертация PDF/A-4 с сохранением текста/векторов может явно нормализовать отсутствующие шрифты через сконфигурированный процесс Ghostscript pdfwrite, сохранить текст с поиском и векторные пути и провалидировать финальный нативный архивный документ официальным CLI veraPDF до публикации
Колбэк-ABI
{"schemaVersion":1,"type":"pdfa.convert","mode":"preserve","profile":"PDF/A-4","fontRepair":true,"maxFontRepairMilliseconds":120000}
fontRepair по умолчанию false; установка в true явно разрешает замену шрифтов согласно установленной конфигурации шрифтов Ghostscript и возвращает fontRepairPerformed true после успешной нормализации
Ответ также включает textAndVectorsPreserved, validationSucceeded, pageCount и существующие счётчики удалённых полей, подписей и аннотаций; успешная публикация заменяет дескриптор проверенным незашифрованным архивным документом
Конфигурация Pascal
Options := THPDFHeadlessArchivalPreservationOptions.Default;
Options.FontRepair := True;
Options.GhostscriptExecutable := '/usr/bin/gs';
Options.MaxFontRepairMilliseconds := 120000;
Report := HPDFConvertHeadlessToPDFA4PreservingFile(Document, Destination, Options);
GhostscriptExecutable выбирает исполняемый файл нормализации, JavaExecutable и ValidatorJAR — подлинный валидатор, а CancellationToken применяется к обходу ресурсов, проверкам текста, нормализации и валидации
Обработка и лимиты
Конвертер сначала импортирует ресурсы исходных страниц и уплощает подходящие appearance аннотаций в приватный нативный документ, поэтому аутентифицированные входы AES расшифровываются через читатель документа, и исходные права страниц продолжают действовать
Ghostscript получает вектор аргументов с включённым SAFER, baseline prepress, выводом PDF 2.0, встраиванием шрифтов и явными переопределениями уменьшения изображений; ограниченный обход ресурсов собирает имена шрифтов в шестнадцатеричные имена PostScript и явный список AlwaysEmbed для старых версий Ghostscript
Процесс нормализации запускается через /usr/bin/prlimit с лимитом адресного пространства от MaxWorkingBytes и лимитом размера файла от MaxOutputBytes; его вывод и диагностика имеют байтовые лимиты, а MaxFontRepairMilliseconds ограничивает время обработки
Нормализованные страницы обязаны сохранить исходное число страниц и последовательность извлечённых символов, допуская изменения раскладки строк и пробелов и дополнительный текст уплощённых appearance; конвертер затем импортирует их в свежий нативный шаблон PDF/A-4 с output intent sRGB, XMP и идентификаторами документа
Финальный кандидат обязан пройти официальную сконфигурированную валидацию veraPDF PDF/A-4 до fsync и атомарного переименования; недоступный бэкенд, изменившийся текст, недопустимый вывод, исчерпанный бюджет, таймаут или отмена оставляют назначение нетронутым и чистят приватные staging-файлы
Таймаут и отмена завершают, при необходимости убивают и забирают прямой процесс нормализации; исполняемые файлы подпроцессов должны запускаться напрямую, а не через shell или wrapper, создающий посторонних потомков
Рантайм и точность
Ремонту шрифтов нужны Ghostscript, его установленные шрифты-замены и util-linux prlimit; валидации сохранения нужны headless-рантайм Java, официальный JAR CLI veraPDF и Little CMS 2 для нативной генерации профиля sRGB
Заменённые шрифты могут изменить очертания глифов и раскладку; когда важна точная внешность, лучше доступный исходный шрифт, а явный ремонт шрифтов не обещает побайтово идентичных ресурсов страниц или сохранённых подписей
Подписанные входы требуют AllowSignatureInvalidation true, алиасы источника/назначения отклоняются, а видимым аннотациям по-прежнему нужен пригодный normal appearance до уплощения
Независимая приёмка покрывает 12 стандартных латинских начертаний и невстроенный шрифт Arial TrueType на plain-, AES R5- и AES R6-входах, повёрнутые страницы, фактические встроенные программы шрифтов, текст с акцентами с поиском, сохранённые векторные пути, точность пикселей и подлинную валидацию PDF/A-4
Импорт страниц и сохранение · Нативный колбэк-ABI · Нативные сценарии