从命令行打印 SVG

从命令行打印 SVG

如何从命令行打印已缩放至 a4 尺寸的 SVG?我尝试使用lpr,但打印机只是打印出文件的实际 XML,这不是我想要的。

答案1

Inkscape可以在各种矢量图形格式之间进行转换,包括 SVG 到 PDF。虽然它通常是一个 GUI 应用程序,但它可以在没有可用 X 服务器的情况下以批处理模式运行。

inkscape --without-gui --export-pdf=foo.pdf foo.svg
lpr foo.pdf

或者如果你想直接打印:

inkscape --without-gui --export-pdf=/dev/stdout foo.svg | lpr

另一种可能性是阿帕奇蜡染图书馆。然而,尽管有一个基于该库的命令行工具,福普,它似乎没有办法使用 SVG 输入,所以你必须用 Java 编写一些粘合代码。

答案2

例如,尝试使用 GUI侏儒之眼。还火狐浏览器能够打开 svg 并进行打印。
至少你可以将图像导入到开发办公室的作家;-)

答案3

正如您所指出的,SVG 文件只是 xml 文本。将数据直接转储到打印机不会给你带来任何好处。您需要的是一个可以渲染该数据的程序。您说文件已经缩放到 A4 大小,这只是可缩放矢量数据的坐标空间。它没有被渲染。

不过,不要绝望!有很多程序可以从命令行渲染数据,有些程序甚至可以一次性渲染和打印所有数据。您需要查看一些较重的程序的命令行标志,您通常希望使用这些程序获得 GUI。

例如,我知道您可以在命令行上使用 LibreOffice 打开并打印文件或将其转换为其他格式。有一个方便的命令行实用程序称为乌诺夫通过简化您必须发送的所有标志,使转换过程变得更加容易。

Gimp 还具有一些用于打开、转换、保存甚至打印的命令行标志。一些旧的备用软件(例如 ImageMagick)也能够将 SVG 文件转换为给定尺寸的渲染图像。我希望像 Inkscape 这样的其他应用程序也能够做到这一点。

一旦获得图像,就应该很容易从命令行打印。如果您经常这样做,您可以编写一个两行脚本来转换和打印!

相关内容