是否可以使用grails中的蜡染使用外部样式表对svg进行样式设置?

时间:2013-06-27 15:13:22

标签: java grails svg batik

我将svg从gsp传递给我的grails控制器。我将其渲染为pdf并保存文件。然而,没有附加样式。这很有意义,因为样式是使用外部样式表完成的。

我的问题是,是否可以使用grails中的蜡染使用样式表为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")

我是新的蜡染,找不到任何可以让我理解的教程示例。

2 个答案:

答案 0 :(得分:2)

要使用外部SVG,必须在SVG内容之前添加以下说明:

<?xml-stylesheet type="text/css" href="http://ww.test.com/svgstyle.css" ?>

答案 1 :(得分:2)

我不知道grails,但是你可以用java (reference)来做到这一点:

使用'用户样式表':

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

或者,没有经过测试,也不确定它是如何工作的,但也有这种替代样式表的东西:

transcoder.addTranscodingHint(ImageTranscoder.KEY_ALTERNATE_STYLESHEET,
                     alternateStylesheetName);