如何使用图像查看器(eog)或 lpr 从命令行打印 svg 文件?

如何使用图像查看器(eog)或 lpr 从命令行打印 svg 文件?

是否可以通过命令行中的图像查看器(即 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

解释:

此“循环”可实现以下目的:

  1. 处理每个 svg 文件反过来在目录中
  2. 使用convert实用程序(的一部分imagemagick)从每个 svg 文件生成 png 文件
  3. 将每个 png 文件传递​​到stdout(而不是永久写入磁盘)
  4. 使用以下方式打印此文件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

相关内容