导出的SVG溢出边界

时间:2019-05-01 09:59:57

标签: java svg vaadin vaadin-charts

我正在使用vaadin-charts:3.2.0可视化一些数据,并且尝试从图表中导出SVG。我得到了一些结果,但并不令人满意。我只能共享screenshosts,而不能共享SVG本身。我还必须对标签进行像素化以掩盖私有数据。

屏幕上显示的原始vaadin图: Original vaadin-charts seen on screen

导出的SVG: Exported SVG

一个问题是标签溢出了svg边界。图表图纸也溢出了边界,使其看起来像是不完整的图纸。知道这个结构有什么问题吗?

public class SvgStreamResource extends StreamResource {

  public SvgStreamResource(String svgText, String filename) {
    super(new StreamSource() {
      @Override
      public InputStream getStream() {
        InputStream s = new BufferedInputStream( new ReaderInputStream(new StringReader(svgText)));
        return s;
      }
    }, filename + ".svg");
  }

  @Override
  public String getMIMEType() {
    return "image/svg+xml";
  }

}

在组件内:

  Button exportButton = createExportButton("SVG", createSVGStreamSource(conf));
private SvgStreamResource createSVGStreamSource(Configuration conf) {
      String svg = SVGGenerator.getInstance().generate(conf);
      return new SvgStreamResource(svg, fileBaseName);
}
private Button createExportButton(String caption, SvgStreamResource svgStreamResource) {
      Button b = new Button(caption);
      FileDownloader downloader = new FileDownloader(svgStreamResource);
      downloader.extend(b);
      return b;
}

0 个答案:

没有答案