Если ghostscript оставит файлы JBIG2 в покое
Я использую gs
чтобы удалить некоторые плохие OCR из PDF-файлов, которые по сути являются изображениями страниц книги с невидимыми текстовыми слоями. Изображения страниц в некоторых из них кодируются как JBIG2. Когда я запускаю их через gs, он меняет формат изображения на CCIT, что обычно неплохо, но может быть от 10 до 20 раз больше, чем версии JBIG2.
Я искал способ оставить их в покое - например, PassThroughJPEGImages - или перекодировать их с помощью MonoImageEncoder, но мне это не удалось. Я не нашел аналогичного варианта сквозной передачи и получил ошибку при установке кодировщика на JBIG2Encode. Из того, что я обнаружил, я предполагаю, что последний вариант не является стандартным, но требует библиотек Luratech.
Может ли кто-нибудь подтвердить или - желательно - объяснить мою ошибку?
TIA.
1 ответ
В настоящее время не существует способа, чтобы Ghostscript передавал изображения JBIG2 без изменений.
Устройство pdfwrite не разрешает JBIG2Encode в качестве возможного метода кодирования, поэтому вы не можете его использовать.
В результате вы можете использовать только CCITTFaxEncode в качестве параметра MonoImageEncode.
В общем, JBIG2 немного лучше, чем CCITTFax, за исключением текста, где, если содержание текста известно, значительной экономии можно добиться за счет повторного использования сегментов (это также является источником ошибки декодирования JBIG2, которая попала в новости в 2013). Похоже, ваши изображения закодированы таким образом, так что да, вы собираетесь получать изображения большего размера.