使用Batik将svg转换为pdf不适用于Ubuntu 11.10

时间:2011-12-08 16:40:32

标签: pdf svg batik ubuntu-11.10

我正在尝试使用Ubuntu-11.10上的Batik SVG工具包将svg图像转换为pdf。 我安装了Batik 1.7和Fop 0.95。在终端中运行以下内容时:

java -jar /usr/java/share/batik-rasterizer.jar -m application/pdf /home/user/Batik_Test/colors.svg  
-scriptSecurityOff

我收到以下错误:

转换文件时出错:
错误:无法访问application / pdf类型图像的代码转换器

我注意到的一件事是文件'pdf-transcoders.jar'不在机器上,所以我把它添加到/ usr / share / java上的机会就是问题,但没有什么区别。

我将非常感谢那些在ubuntu上使用Batik的经验。我错过了什么?

-J

2 个答案:

答案 0 :(得分:1)

如果 / usr / java / share / 目录中有 java 可执行文件 batik-rasterizer.jar ,则可以创建目录在同一路径中命名 lib / usr / java / share /

所以

<强>的/ usr /爪哇/共享/ lib中

在最新的目录( lib )中,您将复制 pdf-transcoder.jar 以便

<强> /usr/java/share/lib/pdf-transcoder.jar

无论如何,除此之外你还需要其他 libs ,因此,对你来说更好,复制 lib 整个内容 batik二进制分发zip文件中包含的目录

<强>的/ usr / JAVA /共享/ LIB /

* 内容 * ,而非 lib ,如果您想立即复制整个lib ,需要投入

<强>的/ usr / JAVA /共享/

答案 1 :(得分:0)

如果你使用.jar文件从fedora执行Batik,由于java忽略-classpath标志,这是非常痛苦的。我假设在/ usr / share / java中的蜡染根据你的系统选择位置一个解决方案可能如下:创建一个临时目录(我假设你是超级用户,无论如何你总是可以sudo命令)

mkdir scratch
cd scratch
jar -xf /usr/share/java/batik-rasterizer.jar

这将jar文件的内容输出到临时,然后创建一个MANIFEST.MF文件或从转储中获取输出

cp META-INF/MANIFEST.MF .

现在编辑MANIFEST.MF文件(我喜欢使用vi,任何人都使用他们喜欢的文件)

vi MANIFEST.MF

将一个Class-Path:行添加到MANIFEST.MF中,例如:

Class-Path: batik-all.jar xmlgraphics-commons.jar xml-commons-apis-ext.jar pdf-transcoder.jar avalon-framework.jar avalon-framework-api.jar apache-commons-logging.jar apache-commons-io.jar

然后关闭文件并重新创建jar文件

jar cmf MANIFEST.MF /usr/share/java/batik-rasterizer.jar org/*

包含蜡染具有嵌套类的所有jar

然后你可以使用它!

java -jar /usr/share/java/batik-rasterizer.jar -scriptSecurittyOff -m image/png -d image.png image.svg
例如

,那就是它!