Я прочитал ссылку: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 определяется в зависимости от количества файлов)