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

У меня есть требование конвертировать PDF-страницы в изображения. В моем файле есть фоновое изображение с некоторым текстом, и когда я сохраняю его как изображение, сохраняется только фоновое изображение.

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

Вы можете использовать pdftoppm из poppler-utils пакет для преобразования 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 это была бы первая страница.

Если вы хотите работать с целым рядом страниц, вы также можете указать номер для флага -l (последняя страница), поэтому, имея -f 1 -l 30 будет указано количество страниц от 1 до 30.

Указание разрешения преобразованного изображения

Разрешение по умолчанию для этой команды составляет 150 точек на дюйм. Его увеличение приведет как к увеличению размера файла, так и к большей детализации.

Чтобы увеличить разрешение преобразованного PDF-файла, добавьте параметры -rx {resolution} и -ry {resolution}. Например:

pdftoppm input.pdf outputname -png -rx 300 -ry 300
  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-я страница).

  • Все остальные параметры (такие как обрезка, оттенки серого и т.д.) Можно просмотреть на веб-сайте Магия образов.

IIRC GIMP способен использовать PDF-файлы, то есть преобразовывать их в изображения. Так что, если вы хотите отредактировать изображения прямо сейчас - GIMP - ваш друг.

Принятый в настоящее время ответ выполняет эту работу, но приводит к получению результата, который больше по размеру и страдает от потери качества.

Метод, указанный в ответе здесь в результате получается результат, сопоставимый по размеру с исходным и не страдающий от потери качества.

ДВУ - Использовать pdfimages : pdfimages -j input.pdf output

Цитирую связанный ответ:

Непонятно, что вы подразумеваете под "потерей качества". Это может означать много разных вещей. Не могли бы вы опубликовать несколько примеров для иллюстрации? Возможно, вырезать один и тот же раздел из версий низкого качества и хорошего качества (в формате PNG, чтобы избежать дальнейшей потери качества).

Возможно, вам нужно использовать -density чтобы выполнить преобразование с более высоким разрешением dpi:

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 в 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

Чтобы получить одну страницу из 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" к выходному имени файла, и нет никакого способа остановить это.

Вы можете использовать convert и указать более высокую плотность с помощью -density вариант.

напр.. convert -d 300 foo.pdf bar.png

В главный редактор PDF (версия 2.2) встроена эта опция. Откройте PDF-файл, а затем перейдите к Файл > Экспорт в > Изображения. Он представляет диалоговое окно, в котором вы можете определить различные параметры для вывода.Чрезвычайно полезно. Надеюсь, эта информация поможет.

pdftocairo file.pdf -png (было опубликовано Энтони Эбертом в качестве комментария на Как конвертировать PDF в изображение?)

У меня нет 10 повторений, чтобы опубликовать ответ, поэтому вот другой способ, используйте MuPDF. mutool convert -o file.png file.pdf

На bash: файл pdftocairo.pdf -png

По-видимому, это также возможно с inkscape: image - Converting a PDF to PNG - Stack Overflow

PDFBox также делает это хорошо. https://pdfbox.apache.org/

Вы можете использовать https://convertpdftojpg.net который является безопасным и быстрым конвертером PDF в JPG