У меня есть требование преобразования страниц PDF к изображениям. Существует фоновое изображение с некоторым записанным текстом, поэтому когда я сохраняю это как изображение, только фоновое изображение было сохранено.
Действительно ли там какое-либо программное обеспечение доступно для того же так, чтобы полная страница могла быть преобразована в изображение?
Установка 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
установит DPI на xxx
(распространенный 150 и 300).
-quality xxx
установит сжатие на xxx
для PNG, JPG и форматов файла РАЗМОЛВКИ (100 средств никакое сжатие).
[666]
преобразует только 667-ю страницу в PNG (основанная на нуле нумерация так [0]
1-я страница).
Все другие опции (такие как обрезка, шкала полутонов, и т.д.) могут быть просмотрены на веб-сайте Волшебства Изображения.
Можно использовать pdftoppm
преобразовать PDF в PNG:
pdftoppm input.pdf outputname -png
Это произведет каждую страницу в PDF с помощью формата outputname-01.png
, с 01
будучи индексом страницы.
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 способен к использованию PDFs, т.е. преобразованию их в изображения. Таким образом, если Вы хотите отредактировать изображения сразу же - GIMP является Вашим другом.
Можно использовать, преобразовывают и указывают более высокое использование плотности -density
опция.
например. convert -d 300 foo.pdf bar.png
Если Вы только хотите преобразовать определенную страницу PDF к PNG, можно передать по каналу pdftk
кому: convert
(описанный выше) как это:
pdftk document.pdf cat 12 output - | convert - document-page-12.png
У основного Редактора PDF (ver 2.2) есть эта опция buit в. Откройте файл PDF и затем перейдите к Файлу> Экспорт в> Изображения. Это представляет диалоговое окно, где можно определить различные варианты для вывода. Чрезвычайно полезный. Надеюсь, что эта информация помогает.
Если Ваши pdfs сканируются, изображения уже хранятся как часть PDF. необходимо будет просто извлечь их с pdfimages
:
pdfimages my-file.pdf prefix
Для получения единственной страницы от gm преобразовывают добавляют [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" к выходному имени файла и нет никакого способа остановить это.
В настоящее время принимаемый ответ делает задание, но приводит к выводу, который больше в размере и страдает от качественной потери.
Метод в ответе, данном здесь, приводит к выводу, который сопоставим в размере с входом и не страдает от качественной потери.
TLDR - Использовать pdfimages
: pdfimages -j input.pdf output
Заключение в кавычки связанного ответа:
Не ясно, что Вы подразумеваете "под качественной потерей". Это могло означать много разных вещей. Вы могли отправить некоторые образцы для иллюстрирования? Возможно, сократите тот же раздел из версий низкого качества и хорошего качества (как PNG для предотвращения дальнейшей качественной потери).
Возможно, необходимо использовать
-density
сделать преобразование на уровне более высоких точек на дюйм:convert -density 300 file.pdf page_%04d.jpg
(Можно предварительно ожидать
-units PixelsPerInch
или-units PixelsPerCentimeter
при необходимости. Мои значения по умолчанию копии к пкс/дюйм)Обновление: Поскольку Вы указали,
gscan2pdf
(способ, которым Вы используете его) просто обертка дляpdfimages
(от poppler).pdfimages
не делает того же самого этоconvert
делает при предоставлении PDF как вход.
convert
берет PDF, представляет его в некотором разрешении и использует полученное растровое изображение в качестве исходного изображения.
pdfimages
просматривает PDF для встроенных растровых изображений и экспортирует каждого в файл. Это просто игнорирует любой текст или векторные команды рисования в PDF.В результате, если то, что Вы имеете, является PDF, это - просто обертка вокруг серии битовых массивов,
pdfimages
сделает намного лучшее задание извлечения их, потому что это получает Вас необработанные данные в его первоначальном размере. Вы, вероятно, также хотите использовать-j
опция кpdfimages
, потому что PDF может содержать необработанные данные JPEG. По умолчанию,pdfimages
преобразовывает все в формат PNM и преобразование JPEG> PPM>, JPEG является процессом с потерями.Так, попробуйте
pdfimages -j file.pdf page
Вы можете или, возможно, не должны следовать за этим с a
convert
кому:.jpg
шаг (в зависимости от того, что растровый формат PDF использовал).Я попробовал эту команду на PDF, который я сделал сам из последовательности изображений JPEG. Извлеченные JPEGs были байтом для байта, идентичным исходным изображениям. Вы не можете получить более высокое качество, чем это.
Модификация PDF также позволяет экспортировать изображения всех или отдельных страниц файлов PDF.
Вы можете сделать это с помощью 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 для подробностей