在Grails中使用Batik是否可以使用外部样式表来为SVG添加样式?

4
我可以帮助您翻译以下内容,涉及IT技术方面。在将svg从gsp传递到我的grails控制器时,我正在将其呈现为PDF并保存文件。但是没有附加样式。这是有道理的,因为样式是使用外部样式表完成的。 我的问题是,在Grails中是否可以使用Batik添加样式表来为SVG添加样式? 以下是源代码:
 String svg_URI_input = params.image
    TranscoderInput input_svg_image = new TranscoderInput(svg_URI_input);
    OutputStream pdf_ostream = new FileOutputStream("report.pdf");
    TranscoderOutput output_pdf_file = new TranscoderOutput(pdf_ostream);
    Transcoder transcoder = new PDFTranscoder();
    transcoder.transcode(input_svg_image, output_pdf_file);
    pdf_ostream.flush();
    pdf_ostream.close();
    File fd = new File("report.pdf")

我刚开始学习Batik,但是找不到任何我能理解的教程或示例。

2个回答

2
要使用外部SVG,必须在SVG内容之前添加以下指令: <?xml-stylesheet type="text/css" href="http://ww.test.com/svgstyle.css" ?>

2

我不了解Grails,但这是你可以使用Java进行操作的方法(参考)

使用“用户样式表”:

  transcoder.addTranscodingHint(JPEGTranscoder.KEY_USER_STYLESHEET_URI, "http://localhost:2012/hermes/css/d3.css");

或者,没有经过测试,也不确定它的工作原理,但还有这个备用样式表的东西:
transcoder.addTranscodingHint(ImageTranscoder.KEY_ALTERNATE_STYLESHEET,
                     alternateStylesheetName);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接