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

251

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

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

задан Deependra Solanky 23.06.2011 в 12:16
источник

10 ответов

240
  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] - первая страница).

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

ответ дан Binarylife 23.06.2011 в 12:25
источник
280

Вы можете использовать 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
    
ответ дан enzotib 23.06.2011 в 13:07
17

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

    
ответ дан tesseract 23.06.2011 в 12:29
11

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

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

TLDR - используйте pdfimages : pdfimages -j input.pdf output

Указание связанного ответа:

It's not clear what you mean by "quality loss". That could mean a lot of different things. Could you post some samples to illustrate? Perhaps cut the same section out of the poor quality and good quality versions (as a PNG to avoid further quality loss).

Perhaps you need to use -density to do the conversion at a higher dpi:

convert -density 300 file.pdf page_%04d.jpg

(You can prepend -units PixelsPerInch or -units PixelsPerCentimeter if necessary. My copy defaults to ppi.)

Update: As you pointed out, gscan2pdf (the way you're using it) is just a wrapper for pdfimages (from poppler). pdfimages does not do the same thing that convert does when given a PDF as input.

convert takes the PDF, renders it at some resolution, and uses the resulting bitmap as the source image.

pdfimages looks through the PDF for embedded bitmap images and exports each one to a file. It simply ignores any text or vector drawing commands in the PDF.

As a result, if what you have is a PDF that's just a wrapper around a series of bitmaps, pdfimages will do a much better job of extracting them, because it gets you the raw data at its original size. You probably also want to use the -j option to pdfimages, because a PDF can contain raw JPEG data. By default, pdfimages converts everything to PNM format, and converting JPEG > PPM > JPEG is a lossy process.

So, try

pdfimages -j file.pdf page

You may or may not need to follow that with a convert to .jpg step (depending on what bitmap format the PDF was using).

I tried this command on a PDF that I had made myself from a sequence of JPEG images. The extracted JPEGs were byte-for-byte identical to the source images. You can't get higher quality than that.

    
ответ дан Anmol Singh Jaggi 12.03.2016 в 14:14
6

Если ваши PDF-файлы сканируются, изображения уже хранятся как часть PDF. вам просто нужно извлечь их с помощью pdfimages :

pdfimages my-file.pdf prefix 
    
ответ дан VitoshKa 18.09.2015 в 12:14
3

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

    
ответ дан user3080602 02.04.2015 в 23:44
2

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

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

    
ответ дан Arjun 24.07.2014 в 04:23
1

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

    
ответ дан Rush 28.12.2014 в 23:42
1

Если вы хотите конвертировать определенную страницу PDF в PNG, вы можете передать pdftk в convert ( описанное выше ) следующим образом:

pdftk document.pdf cat 12 output - | convert - document-page-12.png
    
ответ дан IQAndreas 06.11.2014 в 06:11
0

PDF Mod также позволяет экспортировать изображения всех или отдельных страниц PDF-файлов.

  • Открыть PDF-файл в формате PDF.
  • Выберите страницу (ы) -
  • Изменить > Экспортировать изображение (ы)
ответ дан nhylated 15.12.2015 в 12:56