Как конвертировать 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