【问题标题】:Converting svg to pdf with Batik not working on Ubuntu 11.10使用 Batik 将 svg 转换为 pdf 无法在 Ubuntu 11.10 上运行
【发布时间】:2011-12-08 16:40:31
【问题描述】:

我正在尝试使用 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

我收到以下错误:

转换文件时出错:
  错误:无法访问应用程序/pdf 类型图像的转码器

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

如果有任何在 ubuntu 上使用 Batik 的经验,我将不胜感激。我错过了什么?

-J

【问题讨论】:

    标签: pdf svg batik ubuntu-11.10


    【解决方案1】:

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

    应该有

    /usr/java/share/lib

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

    /usr/java/share/lib/pdf-transcoder.jar

    不管怎样,除了这个,你还需要其他的libs,所以,你最好把lib全部内容复制过来batik 二进制分发 zip 文件中包含的目录

    /usr/java/share/lib/

    只有*内容*,而不是lib,如果你想一次复制整个lib,你需要放入

    /usr/java/share/

    【讨论】:

    • 谢谢澳洲野狗!我会试一试,然后告诉你它是如何工作的。
    • 好的,我的 batik-rasterizer.jar 副本在 /usr/share/java 中,所以我在那里添加了一个名为“lib”的文件夹,并将 lib 中的所有文件放入 batik1.7 但我仍然得到同样的错误。
    • 请解压您下载的这个文件 (mirror.nohup.it/apache//xmlgraphics/batik/batik-1.7.zip) 并从同一个文件夹中运行 batik-rasterizer。这种方式我用成功了
    • +1 这是正确的解决方案。我在 Ubuntu 12.04 上遇到了同样的问题。来自存储库的包莫名其妙地不起作用(在我的情况下仅适用于 PDF,但确实适用于 PNG、JPEG 等),但我直接从 apache 下载并引用了他们的 jar 文件,它适用于所有格式。
    【解决方案2】:

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

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

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

    cp META-INF/MANIFEST.MF .
    

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

    vi MANIFEST.MF
    

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

    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
    

    例如,就是这样!

    【讨论】:

      猜你喜欢
      • 2016-03-12
      • 2014-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-13
      • 2016-10-20
      • 1970-01-01
      相关资源
      最近更新 更多