Как конвертировать PDF в изображение?
У меня есть требование преобразования страниц PDF в изображения. Существует фоновое изображение с текстом, поэтому, когда я сохраняю его как изображение, сохраняется только фоновое изображение.
Есть ли какое-либо программное обеспечение для того же самого, чтобы полная страница могла быть преобразована в изображение?
13 ответов
Установите imagemagick.
Используя терминал, где находится PDF:
Для полного документа:
convert -density 150 input.pdf -quality 90 output.pngДля одной страницы:
convert -density 150 input.pdf[666] -quality 90 output.png
Согласно которому:
PNG, JPG или (практически) любой другой формат изображения могут быть выбраны.
-density xxxустановит DPIxxx(обычно 150 и 300).-quality xxxустановит сжатие вxxxдля форматов файлов PNG, JPG и MIFF (100 означает отсутствие сжатия).[666]преобразует только 667-ю страницу в PNG (нумерация с нуля, так[0]это 1-я страница).Все остальные параметры (такие как обрезка, оттенки серого и т. Д.) Можно просмотреть на веб-сайте Image Magic.
Ты можешь использовать pdftoppm преобразовать PDF в PNG:
pdftoppm input.pdf outputname -png
Это выведет каждую страницу в PDF, используя формат outputname-01.png, с 01 быть индексом страницы.
Преобразование одной страницы PDF
pdftoppm input.pdf outputname -png -f {page} -singlefile
+ Изменить {page} на номер страницы. Индексируется на 1, так -f 1 будет первая страница.
Указание разрешения преобразованного изображения
Разрешение по умолчанию для этой команды составляет 150 DPI. Увеличение его приведет к увеличению размера файла и большей детализации.
Чтобы увеличить разрешение преобразованного PDF, добавьте параметры -rx {resolution} а также -ry {resolution}, Например:
pdftoppm input.pdf outputname -png -rx 300 -ry 300
IIRC GIMP может использовать PDF-файлы, то есть преобразовывать их в изображения. Так что, если вы хотите редактировать изображения прямо сейчас - GIMP - ваш друг.
В настоящее время принятый ответ выполняет свою работу, но в результате получается выход, который больше по размеру и страдает от потери качества.
Метод в ответе, приведенном здесь, приводит к выводу, который по размеру сопоставим с вводом и не страдает от потери качества.
TLDR - Использование pdfimages: pdfimages -j input.pdf output
Цитирую связанный ответ:
Непонятно, что вы подразумеваете под "потерей качества". Это может означать много разных вещей. Не могли бы вы опубликовать несколько образцов для иллюстрации? Возможно, вырежьте тот же раздел из версий низкого качества и хорошего качества (как PNG, чтобы избежать дальнейшей потери качества).
Возможно, вам нужно использовать
-densityсделать преобразование с более высоким разрешением:convert -density 300 file.pdf page_%04d.jpg(Вы можете предварять
-units PixelsPerInchили же-units PixelsPerCentimeterесли необходимо. Моя копия по умолчанию в ppi.)Обновление: как вы указали,
gscan2pdf(то, как вы используете его) это просто оболочка дляpdfimages(из попплера).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 были побайтно идентичны исходным изображениям. Вы не можете получить более высокое качество, чем это.
Если ваши PDF-файлы отсканированы, изображения уже сохранены как часть PDF-файла. вам просто нужно извлечь их pdfimages:
pdfimages my-file.pdf prefix
Если вы хотите преобразовать только определенную страницу PDF в PNG, вы можете передать pdftk в convert ( описано выше) вот так:
pdftk document.pdf cat 12 output - | convert - document-page-12.png
Вы можете сделать это с помощью ghostscript:
gs -dSAFER -dBATCH -dNOPAUSE -r300 -sDEVICE=png16m -dFirstPage=1 -dLastPage=1 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -sOutputFile=output.png input.pdf
См. https://www.ghostscript.com/doc/9.52/Devices.htm для подробностей.
Чтобы получить одну страницу из gm convert, добавьте [N] (с N номер страницы, начинающийся с 0) к имени PDF, т.е. gm convert foo.pdf[11] out.png чтобы получить 12-ю страницу из PDF.
За pdftoppm использование -f N -singlefileгде N - номер страницы, начинающийся с 1, т.е. pdftoppm -f 12 -singlefile foo.pdf out за тот же результат. Кажется, что всегда добавлять ".png" к выходному имени файла, и нет никакого способа остановить это.
Вы можете использовать конвертировать и указать более высокую плотность, используя -density вариант.
например. convert -d 300 foo.pdf bar.png
В Master PDF Editor (версия 2.2) имеется эта опция. Откройте файл PDF и перейдите в "Файл"> "Экспорт в"> "Изображения". Он представляет диалог, в котором вы можете определить различные параметры для вывода. Очень полезно. Надеюсь, эта информация поможет.
pdftocairo file.pdf -png (опубликовал Энтони Эберт в качестве комментария на Как конвертировать PDF в изображение?)
PDF Mod также позволяет экспортировать изображения всех или отдельных страниц файлов PDF.
- Открыть PDF файл в PDF Mod
- Выберите страницу (ы)-
- Редактировать> Экспорт изображений
Для высококачественного вывода отлично подходит, если для выходного разрешения задано высокое значение (например, выше 250).mutoolпроисходит изmupdf-toolsпакет, связанный со средством просмотра MuPDF. Команда также может выполнять противоположную задачу, конвертируя png обратно в pdf.
mutool convert -O resolution=600 -o out-pdf.png in-pdf.pdf