我将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")
我是新的蜡染,找不到任何可以让我理解的教程示例。
答案 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);