Ну, я боролся с этим в течение многих недель, многие ответы от SO помогли мне, но всегда что-то не хватало, очевидно, ни у кого здесь никогда не было проблем с изображениями, закодированными в jbig2.
В куча PDF, которые мне нужно сканировать, изображения, закодированные в jbig2, очень популярны.
Насколько я понимаю, есть много копировальных / сканирующих машин, которые сканируют бумаги и преобразуют их в файлы PDF, полные изображений, закодированных в jbig2.
Поэтому после многих дней испытаний решил go за ответ, предложенный здесь Дкагедалом долгое время go.
Здесь мой шаг за шагом на linux: (если у вас есть другая ОС, я предлагаю использовать linux docker, это будет намного проще.)
Первый шаг:
apt-get install poppler-utils Затем я смог запустить инструмент командной строки pdfimages, например:
pdfimages -all myfile.pdf ./images_found/
С помощью приведенной выше команды вы сможете извлечь все изображения , содержащиеся в myfile.pdf, и вы сохраните их в images_found (вы должны создать images_found раньше)
В списке вы можете найти несколько типов изображений (зависит от вашего pdf), таких как: png, jpg, tiff; все они легко читаются с помощью любого графического инструмента c.
Тогда у вас появятся файлы с именами, такими как -145.jb2e и -145.jb2g.
Эти 2 файла содержат ОДИН ИЗОБРАЖЕНИЕ закодированный в jbig2, который сохранен в 2 разных файлах один для заголовка и один для данных
Опять я потерял много дней, пытаясь выяснить, как преобразовать эти файлы в нечто читаемое и наконец я наткнулся на этот инструмент под названием jbig2de c
Итак, сначала вам нужно установить этот инструмент magi c:
apt-get install jbig2de c
тогда вы можете запустить:
jbig2dec -t png -145.jb2g -145.jb2e
Вы наконец сможете преобразовать все извлеченные изображения во что-то полезное.
хорошо удачи!