![如何使用图像查看器(eog)或 lpr 从命令行打印 svg 文件?](https://linux22.com/image/1147902/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E5%9B%BE%E5%83%8F%E6%9F%A5%E7%9C%8B%E5%99%A8%EF%BC%88eog%EF%BC%89%E6%88%96%20lpr%20%E4%BB%8E%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%89%93%E5%8D%B0%20svg%20%E6%96%87%E4%BB%B6%EF%BC%9F.png)
是否可以通过命令行中的图像查看器(即 gnome 之眼)打印 svg 文件,或者通过使用lpr
?
根本问题是,我有一个包含许多 svg 文件的目录,我想自动打印所有文件,而不必在图像查看器中单独打开每个文件,然后使用 UI 进行打印。我不需要更改 eog 中的任何打印选项(默认设置都可以正常工作)。
请注意,该lpr
命令似乎在这里没有帮助 - 当应用于 svg 文件时,它只会打印出许多页 XML。对于任何涉及lpr
以 svg 而不是 XML 打印图像的解决方案,我都会感到高兴。
答案1
正如您所体验到的,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
)从每个 svg 文件生成 png 文件 - 将每个 png 文件传递到
stdout
(而不是永久写入磁盘) - 使用以下方式打印此文件
lpr
这在我的系统上测试得很完美,并且应该在你的系统上运行得同样好:)。
答案2
转换为适合打印的矢量格式将获得更高的质量。
sudo apt-get install librsvg2-bin
for i in *.svg
do
rsvg-convert -f pdf "$i" | lpr
done
答案3
只需执行以下命令即可显示文件夹中的所有 svg
find ~/my_folder/ -name '*.svg' -exec display "{}" \;
因此,您需要安装 imagemagick:
sudo apt install imagemagick