将SVG转换为PDF

将SVG转换为PDF,第1张

将SVG转换为PDF

感谢Adrian展示了应该如何使用Batik光栅化器API。但是,我需要一个更轻量的解决方案–
我无法写入临时文件,并且我希望更少的依赖关系。因此,从他指出的方法开始,我找到了一种访问较低级代码进行转换的方法,而没有其他方法。

import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import org.apache.batik.transprer.Transprer;import org.apache.batik.transprer.TransprerException;import org.apache.batik.transprer.TransprerInput;import org.apache.batik.transprer.TransprerOutput;import org.apache.fop.svg.PDFTransprer;public class Test {    public static void main(String[] argv) throws TransprerException, FileNotFoundException {        Transprer transprer = new PDFTransprer();        TransprerInput transprerInput = new TransprerInput(new FileInputStream(new File("/tmp/test.svg")));        TransprerOutput transprerOutput = new TransprerOutput(new FileOutputStream(new File("/tmp/test.pdf")));        transprer.transpre(transprerInput, transprerOutput);    }}

编译运行命令是

javac -cp batik-rasterizer.jar -d build Test.javajava -cp build:batik-rasterizer.jar Test

重要的一点是,

TransprerInput
并且
TransprerOutput
可以与
InputStream
和一起使用
OutputStream
,而不仅仅是文件流。请注意,其中一个构造函数采用
org.w3c.dom.document
,这意味着您甚至不需要将SVG
DOM序列化为SVG字符串,从而节省了额外的步骤。

与高级API不同,此版本也不向stdout / stderr写入任何内容。

对于JPEG,PNG或TIFF输出,请替换

org.apache.fop.svg.PDFTransprer
org.apache.batik.transprer.image.JPEGTransprer
PNGTransprer
TIFFTransprer
(请注意,这些栅格格式在不同的包装中)。

(我不太确定Java如何找到

org.apache.batk.transprer.*
org.apache.fop.svg.PDFTransprer
类,因为我没有在中看到它们
batik-rasterizer.jar
。)

编辑:

尽管简单的命令行编译

batik-rasterizer.jar
仅适用于该命令,但是它正在执行某种类加载器的魔力来查找所有必需的类。在更实际的情况下(使用Ant构建项目),您必须手动查找类。他们可以发现
batik-1.7.zip
蜡染项目,并
fop-1.1.zip
从该项目的FOP。在蜡染中,您需要进行编译
batik-transprer.jar
和运行

  • batik-transprer.jar
  • batik-anim.jar
  • batik-awt-util.jar
  • batik-bridge.jar
  • batik-css.jar
  • batik-dom.jar
  • batik-ext.jar
  • batik-gvt.jar
  • batik-parser.jar
  • batik-script.jar
  • batik-svg-dom.jar
  • batik-util.jar
  • batik-xml.jar
  • xml-apis-ext.jar

在FOP中,您需要进行编译

fop.jar
和运行

  • fop.jar
  • avalon-framework-4.2.0.jar
  • xmlgraphics-commons-1.5.jar


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5140578.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存