Непонятно, что вы подразумеваете под «потерей качества». Это может означать много разных вещей. Не могли бы вы опубликовать несколько образцов для иллюстрации? Возможно, вырежьте тот же раздел из версий низкого качества и хорошего качества (как PNG, чтобы избежать дальнейшей потери качества).
Возможно, вам нужно использовать -densityдля преобразования с более высоким dpi:
convert -density 300 file.pdf page_%04d.jpg
(Вы можете добавить -units PixelsPerInchили, -units PixelsPerCentimeterесли необходимо, по умолчанию моя копия ppi.)
Обновление: Как вы указали, gscan2pdf(способ, которым вы его используете) является просто оберткой для pdfimages(из poppler ). pdfimagesне делает то же самое, что convertи при вводе PDF-файла.
convert берет PDF, отображает его с некоторым разрешением и использует полученное растровое изображение в качестве исходного изображения.
pdfimagesпросматривает PDF-файл для встроенных растровых изображений и экспортирует каждое из них в файл. Он просто игнорирует любые текстовые или векторные команды рисования в PDF.
В результате, если то, что у вас есть, это PDF, который является просто оберткой вокруг ряда растровых изображений, pdfimagesбудет гораздо лучше извлекать их, потому что он получает необработанные данные в их исходном размере. Возможно, вы также захотите использовать эту -jопцию pdfimages, потому что PDF может содержать необработанные данные JPEG. По умолчанию pdfimagesвсе конвертируется в формат PNM, а конвертирование JPEG> PPM> JPEG - процесс с потерями.
Так что попробуйте
pdfimages -j file.pdf page
Вы можете или не может понадобиться , чтобы следовать , что с convertна .jpgстадии ( в зависимости от того, какое изображение форматировать PDF использовал).
Я попробовал эту команду в PDF, который я сделал сам из последовательности изображений JPEG. Извлеченные файлы JPEG были побайтно идентичны исходным изображениям. Вы не можете получить более высокое качество, чем это.