可能重复:
如何在 Linux 上将 SVG 转换为 PDF
我想通过编程将 SVG 文件转换为 PDF 文件。但是,SVG 文件包含的文本必须在生成的 PDF 文件中可搜索。此外,它还必须在 x86_64 架构的 Red Hat Enterprise Linux 5.3 或 CentOS 5.3 上运行。如果它是开源的或者至少不是很贵就好了。
这是我试过的。除了 Batik 之外,所有这些在 Debian Lenny 上都可以正常工作。
Inkscape
我可以使用自动包来安装它http://inkscape.modevia.com/ap,但是当我从命令行使用它时,文本不可搜索。
蜡染光栅化器[原文如此]
当将 SVG 文件转换为 PDF 文件时,文本不再可搜索。
svg转pdf
此源代码及其几个依赖项可供下载。我一直试图在 CentOS 上编译它,但还没有成功。我找到了一个预编译版本适用于 Debian x86_64,但它不适用于 CentOS。
rsvg-转换
生成的 PDF 在 CentOS 5.3 上无法搜索。安装较新版本的 cairo 或许会有所帮助。感谢 DaveParillo 提到 rsvg-convert(超级用户)。
解决方案(但或许上面的一些内容对读者仍然有用)
princeXML
从源代码安装时,它在 CentOS 上工作正常。出于某种原因,从 .rpm 安装时它不起作用。谢谢 Erik Dahlström!(在 stackoverflow 上提供了适用于我的情况的解决方案)
答案1
大多数工具(例如 batik 或 imagemagick)都会将矢量数据转换为栅格图。
我会尝试rsvg-转换。它使用 cairo 作为后端,因此您可能会遇到与 svg2pdf 相同的编译问题。
答案2
另一个(目前鲜为人知)替代方案是 GhostPDL 的 gsvg(在 Windows 上:gsvg.exe)。GhostPDL 是 Ghostscript 的姊妹应用程序(目前正在合并为一个存储库,网址为http://svn.ghostscript.com/ghostpdl/)。GhostPDL 用于 SVG、XPS 和 PCL 处理,类似于 Ghostscript 用于 PostScript 和 PDF 处理。如下所示:
gsvg.exe ^
-dBATCH ^
-dNOPAUSE ^
-dSAFER ^
-sDEVICE=pdfwrite ^
-sOutputFile=my.pdf ^
[...more options you may want/need...] ^
c:/path/to/my.svg