Извлечение векторной графики из pdf с помощью Inkscape

Я хотел бы извлечь некоторые pdf-изображения из статьи для презентации. В окнах Adobe Illustrator отлично работает, но теперь я должен выполнить эту задачу в окне Debian.

Два популярных решения, которые я нашел в Интернете, используют

Файл pdf не соответствует моим потребностям, так как я хочу использовать векторную графику (pdf), а не jpg, поэтому предпочитаю использовать Inkscape, но он не работает должным образом. Надеюсь, что я смогу использовать какой-то инструмент селектора, чтобы перетащить ящик и выбрать все внутри, как я обычно делал с Illustrator, но ни один из инструментов Inkscape не работает.

Если я использую инструмент "select and transform objects" (черная стрелка), вся страница pdf выбирается, пока я хочу только небольшую часть; если я использую инструмент "edit path by nodes" (стрелка черного треугольника с некоторыми узлами), я могу выбрать только один объект за раз. Перетаскивание (даже с нажатой клавишей сдвига) не работает.

Мне интересно, есть ли способ обойти это, или есть ли лучший инструмент в Debian для достижения того же? Спасибо.

Ответ 1

По моему скромному мнению, я могу предложить, как я использую, чтобы получить векторные изображения из pdf

имеется инструмент под названием

pdftocairo, содержащийся в poppler-utils

Синтаксис:

pdftocairo [options] <PDF-file> [<output-file>]

pdftocairo может производить в представлении как растровый, так и векторный формат между этими последними, он способен преобразовывать содержимое одной страницы pdf (если у вас есть multipage pdf doc, вам сначала нужно взорвать это в своих одностраничных страницах pdf, например pdftk), в:

  • -ps: создать файл PostScript
  • -eps: сгенерировать инкапсулированный PostScript (EPS)
  • -svg: создать файл масштабируемой векторной графики (SVG)

лучший формат вывода для ваших потребностей может быть svg, поэтому после преобразования страницы pdf вы можете открыть этот svg с любым svg-приложением (с inkscape или хорошим старый sodipodi), выберите векторные элементы, которые вы хотите извлечь и сохраните

RESUMING:

если у вас есть МНОГОСТОРОННЕЕ PDF

  • вы ПЕРВЫЙ разделите этот многостраничный pdf на свои отдельные страницы (создайте папка для этих отдельных страниц)

    pdftk file.pdf burst
    
  • затем используйте pdftocairo, чтобы преобразовать любую страницу PDF в svg

    for f in *.pdf; do pdftocairo -svg $f; done
    

Ответ 2

Вы можете разделить многостраничные pdf файлы с помощью pdftk, а затем использовать inkscape для преобразования pdf в файл svg с помощью командной строки, например

inkscape --without-gui --file=input.pdf --export-plain-svg=output.svg