Как конвертировать PDF в изображение?

У меня есть требование преобразования страниц PDF в изображения. Существует фоновое изображение с текстом, поэтому, когда я сохраняю его как изображение, сохраняется только фоновое изображение.

Есть ли какое-либо программное обеспечение для того же самого, чтобы полная страница могла быть преобразована в изображение?

13 ответов

Решение
  1. Установите imagemagick.

  2. Используя терминал, где находится PDF:

    • Для полного документа:

      convert -density 150 input.pdf -quality 90 output.png
      
    • Для одной страницы:

      convert -density 150 input.pdf[666] -quality 90 output.png
      

Согласно которому:

  • PNG, JPG или (практически) любой другой формат изображения могут быть выбраны.

  • -density xxx установит DPI xxx (обычно 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
Другие вопросы по тегам