Конвертировать PDF в несколько изображений (png,jpg)

Конвертировать PDF в несколько изображений (png,jpg)

Я прочитал ссылку:https://www.overleaf.com/blog/613-совет-недели-как-конвертировать-страницы-формата-pdf-в-растровые-форматы-изображений

Я использую Texmarker 5.0.3. Могу ли я преобразовать main.pdf в несколько изображений (каждая страница = одно изображение)?

Пример кода:

\documentclass[11pt]{article}
\usepackage{blindtext}
%\usepackage{tikz}
\usepackage{tcolorbox}

\begin{document}

\blindtext

\begin{tcolorbox}[width=\textwidth,height=5cm]

ABC DEF

\end{tcolorbox}

\blindtext

\newpage
\clearpage
\blindtext

\begin{tcolorbox}[width=\textwidth,height=5cm]

XXX YYY

\end{tcolorbox}
\blindtext

\end{document}

Заранее спасибо

решение1

В (полном) дистрибутиве TeXLive есть интересная утилита, pdftoppmкоторая может конвертировать PDF в PNG с некоторыми опциями (например, на моей машине Windows C:\texlive\2018\bin\win32\pdftoppm.exe). Неоспоримым преимуществом является то, что не нужно ничего устанавливать.

Запустив cmdутилиту pdftoppm -help, вы получите следующий вывод, информирующий о работе утилиты:

введите описание изображения здесь

Поэтому достаточно написать, например,

C:\path\to\my\PDFfile pdftoppm -f 1 -l 2 -r 300 -png Name_Of_My.pdf My_Images

для преобразования двухстраничного PDF-файла, сгенерированного LaTeX ( Name_Of_My.pdf), в отдельные файлы изображений My_Images-1.pngи My_Images-2.png, где префикс имени ( My_Images) сгенерированных PNG-файлов берется из последней части командной строки выше.

Ниже приведен вывод PNG из вашего MWE...

введите описание изображения здесь

решение2

Если я правильно понимаю, шаг PDF->изображение выполняется не LaTeX, а внешним вызовом convert(частьюПакет ImageMagick). Возможно, это не по теме, но...

По сути, после установки вы сможете использовать эту команду (по крайней мере в Linux, я думаю, что и в других ОС она будет такой же):

 convert -density 300 -background white -alpha remove -alpha off pdf-file.pdf page.png 

и ваши страницы будут иметь разрешение 300 точек на дюйм, называться page-0.pngи page-1.pngт. д.

Обратите внимание, что в последней версии convertмогут быть проблемы. Обязательно прочтитеhttps://stackoverflow.com/questions/42928765/convertnot-authorized-aaaa-error-constitute-c-readimage-453иhttps://github.com/ImageMagick/ImageMagick/issues/396и затем, если у вас есть ошибки, отредактируйте свой текст /etc/ImageMagick-6/policy.xmlследующим образом:

  <policy domain="resource" name="memory" value="4GiB"/>
  <policy domain="resource" name="map" value="4GiB"/>
  <policy domain="resource" name="width" value="128KP"/>
  <policy domain="resource" name="height" value="128KP"/>
  <policy domain="resource" name="area" value="1.28GP"/>
  <policy domain="resource" name="disk" value="8GiB"/>

  <policy domain="coder" rights="read|write" pattern="PS" />
  <policy domain="coder" rights="read|write" pattern="EPS" />
  <policy domain="coder" rights="read|write" pattern="PDF" />
  <policy domain="coder" rights="read|write" pattern="XPS" />

В исходных файлах rightsбыли noneи ограничения гораздо ниже, что затруднит выполнение для PDF-файла среднего размера.

решение3

Я считаю pdftoppm(инструмент poppler) гораздо более эффективным, чем imagemagick/convert, с лучшим качеством (когда я устанавливаю слишком высокое качество с помощью convert, он вылетает). Например, вы можете сделать:

pdftoppm -jpeg -r 300 -scale-to-x 1920 -scale-to-y 1080 yourfile.pdf output-prefix

и он создаст много изображений, таких как output-prefix-01.jpg, output-prefix-02.jpg… (количество 0 определяется в зависимости от количества файлов)

Связанный контент