Вывести svg-файл из командной строки, используя программу просмотра изображений (eog) или lpr

Можно ли распечатать SVG-файл с помощью средства просмотра изображений (например, eye of gnome) из командной строки или с помощью lpr?

Основная проблема заключается в том, что у меня есть каталог со многими SVG-файлами, и я хочу распечатать их все автоматически, без необходимости открывать каждый файл по отдельности в программе просмотра изображений, а затем печатать с использованием пользовательского интерфейса. Мне не нужно менять какие-либо параметры печати в eog (все настройки по умолчанию работают нормально).

Обратите внимание, что lpr команда здесь не помогает - при применении к svg-файлам она просто печатает много страниц XML. Я был бы так же счастлив с любым решением, которое включает в себя получение lpr напечатать изображение в формате SVG, а не в формате XML.

3 ответа

Решение

Как вы испытали lpr будет печатать только SVG-файлы в формате XML (и, следовательно, печатать страницы, заполненные только текстом).

Однако существует очень простой обходной путь, который заключается в преобразовании файлов SVG в нечто более работоспособное, такое как png на лету, а затем автоматически распечатывает эти сгенерированные файлы. Требуются два шага:

Шаг 1: Установите imagemagick:

sudo apt-get install imagemagick

Шаг 2: Пока у вас есть lp правильно настроен для принтера "по умолчанию", затем выполните следующий цикл на экране терминала из каталога, содержащего ваши SVG-файлы:

for i in *.svg
do
convert "$i" png:- | lpr
done

Объяснение:

Этот "цикл" выполняет следующее:

  1. Обрабатывает каждый файл SVG по очереди в каталоге
  2. Использует convert утилита (часть imagemagick) создавать файлы PNG из каждого файла SVG
  3. Передает каждый файл PNG в stdout (вместо того, чтобы постоянно записывать его на диск)
  4. Распечатывает этот файл, используя lpr

Это отлично протестировано на моей собственной системе и должно одинаково хорошо работать на вашей системе:).

Преобразование в удобный для печати векторный формат даст более высокое качество.

      sudo apt-get install librsvg2-bin
      for i in *.svg
do
rsvg-convert -f pdf "$i" | lpr
done

Вы можете показать все SVG в папке, просто выполнив

      find ~/my_folder/ -name '*.svg' -exec display "{}" \;

Поэтому вам необходимо установить imagemagick:

      sudo apt install imagemagick
Другие вопросы по тегам