Вывести 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
Объяснение:
Этот "цикл" выполняет следующее:
- Обрабатывает каждый файл SVG по очереди в каталоге
- Использует
convert
утилита (частьimagemagick
) создавать файлы PNG из каждого файла SVG - Передает каждый файл PNG в
stdout
(вместо того, чтобы постоянно записывать его на диск) - Распечатывает этот файл, используя
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