`

Saving JFreeChart as SVG vector images using Batik

    博客分类:
  • Java
阅读更多
JFreeChart is a free Java class library for generating charts. After creating a nice graph you might want to use it in a report. JFreeChart already allows you to save your graph to PNG and JPEG, but obviously you would rather have it in vector format, so the chart can be scaled to any size.

Just to save you the effort here's the Java code to export your chart to SVG (Scalable Vector Graphics) format.

First download the Batik SVG toolkit. Batik comes in a large number of jar files. You only need the following ones:

batik-dom.jar
batik-svggen.jar
batik-awt-util.jar
batik-util.jar
batik-xml.jar
Create a JFreeChart as you normally do. Use the following function to save the graph to a file.
/**
* Exports a JFreeChart to a SVG file.
*
* @param chart JFreeChart to export
* @param bounds the dimensions of the viewport
* @param svgFile the output file.
* @throws IOException if writing the svgFile fails.
*/
void exportChartAsSVG(JFreeChart chart, Rectangle bounds, File svgFile) throws IOException {
        // Get a DOMImplementation and create an XML document
        DOMImplementation domImpl =
            GenericDOMImplementation.getDOMImplementation();
        Document document = domImpl.createDocument(null, "svg", null);

        // Create an instance of the SVG Generator
        SVGGraphics2D svgGenerator = new SVGGraphics2D(document);

        // draw the chart in the SVG generator
        chart.draw(svgGenerator, bounds);

        // Write svg file
        OutputStream outputStream = new FileOutputStream(svgFile);
        Writer out = new OutputStreamWriter(outputStream, "UTF-8");
        svgGenerator.stream(out, true /* use css */);
        outputStream.flush();
        outputStream.close();
}
One small tip if you want to use the SVG in your LaTeX document: You can convert the SVG file to EPS using Inkscape.

If you don't know how to use this code, you can also download a zip file containing a runnable version of the code (including the required batik and jfreechart libraries) here (compiled with Java SDK 1.5).
分享到:
评论
1 楼 zhaoxiqian 2008-09-12  
生成的图片不支持缩放。

相关推荐

    纯Java动态生成SVG饼图与JFreeChart超强功能生成SVG图表

    纯Java动态生成 SVG 饼图与 JFreeChart 超强功能生成 SVG 图表 在本文中,我们将探讨如何使用 Java 生成 SVG 饼图,并使用 JFreeChart 生成 SVG 图表。我们还将讨论 JFreeChart 的一些缺陷和解决方案。 一、Java ...

    java生成饼图svg及JFreeChart生成svg图表

    在Java编程中,生成SVG(Scalable Vector Graphics)饼图是一种常见的需求,特别是在数据分析和可视化应用中。SVG是一种基于XML的矢量图像格式,它允许图像无损缩放,适用于网页和其他需要高质量图像的场景。...

    jfreechart-1.5.2.jar,jfreechart|jfreechart

    jfreechart-1.5.2.jar,jfreechart|jfreechart

    JFreeChart 官方例子 JFReeChart Dome

    7. **输出格式**:JFreeChart不仅可以将图表显示在屏幕上,还可以导出为多种格式,如JPEG、PNG、PDF和SVG,方便在报告或网页中使用。 通过深入研究JFreeChart的官方示例,开发者能够熟练掌握如何创建、配置和控制...

    jfreechart生成图片及导出pdf 、excel

    JFreeChart是一款强大的Java图表库,它允许开发者在应用程序、Swing组件或Web应用中创建各种图表,如柱状图、饼图、折线图等。这个库支持丰富的定制选项,使得图表可以按照用户需求进行个性化设计。在这个...

    jfreechart

    标题 "jfreechart" 指的是 JFreeChart,这是一个流行的开源 Java 图形库,用于创建高质量的图表。它在各种应用中广泛使用,包括报表、仪表盘、科学出版物等,提供了丰富的图表类型,如饼图、柱状图、线图、散点图和...

    JFreeChart用户开发指南1.0.6(中文).pdf

    - **图像导出**:支持PNG、JPEG等多种图像格式的导出,也可通过集成第三方库(如iText或Batik)支持PDF和SVG格式。 - **交互性**:支持图表上的鼠标事件处理,增强用户体验。 - **注解支持**:允许添加文本或其他...

    jfreechart依赖jar包

    5. **图像输出**:除了在 Swing 或 AWT 组件中显示图表,JFreeChart 还支持将图表保存为 PNG、JPEG、SVG、PDF 等格式的图像文件,方便导出或发送到前端展示。 6. **兼容性**:JFreeChart 与大多数 Java 平台兼容,...

    jfreechart 中文指导

    2. 支持导出PNG和JPEG图像格式,并且通过Java的图像I/O库,可以导出为其他多种格式,如PDF(借助iText库)和SVG(借助Batik库)。 3. 提供图像工具栏功能,增强图表的交互性。 4. 图表支持鼠标事件处理,允许用户与...

    Jfreechart

    JFreeChart 是一个流行的 Java 库,用于创建各种类型的图表,包括饼图、折线图、柱状图等。在使用 JFreeChart 进行数据可视化时,可能会遇到乱码的问题,这通常与字体设置不当有关。本文将详细分析 Jfreechart 乱码...

    JfreeChart-雷达图与导出

    3. **PDF和SVG导出**:JFreeChart也支持导出为矢量图形,如PDF和SVG。这需要使用`ChartRenderingInfo`和`StreamResult`或`FileResult`对象。 ** poi_test 文件关联** 虽然在提供的文件列表中只提到了`poi_test`,...

    jfreechart,jfreechart-1.0.13,jfreechart-1.0.13,jfreechart

    《JFreeChart:Java 图形绘制的利器》 在Java编程世界中,高效且美观的图形展示是数据可视化的重要组成部分。JFreeChart作为一款强大的开源图表库,为开发者提供了丰富的图表类型和高度自定义的能力,使得Java应用...

    jfreechart使用的3个jar包

    **JFreeChart 使用详解** JFreeChart 是一个用于 Java 的开源图表库,它提供了一种简单的方法来创建各种复杂的图表,如折线图、柱状图、饼图、散点图以及更专业的图表类型,如甘特图和雷达图。在Java应用中,如果你...

    JFreeChart-1.0.9.zip jfreechart.jar

    **JFreeChart 1.0.9:一个强大的Java图表库** JFreeChart是一个流行的开源Java库,用于创建各种高质量的图表,包括折线图、柱状图、饼图、散点图、甘特图等。它在描述复杂数据集时提供了一种直观的方式,广泛应用于...

    JFreeChart

    此外,JFreeChart支持多种输出格式,如PNG、JPEG、SVG等,可以满足不同的需求。 总之,JFreeChart是Java开发中一个强大且灵活的图表库,它提供了丰富的图表类型和自定义选项,帮助开发者轻松地将数据可视化。通过...

    jfreechart中文学习文档

    ### jfreechart中文学习文档 #### 一、引言 ##### 1.1 JFreeChart 是什么? **1.1.1 概览** JFreeChart 是一款为 Java 平台设计的免费图表库。这款工具非常适合在各种 Java 应用程序、Applet 和 Servlet 中使用...

    jfreechart demo

    **JFreeChart 演示程序详解** JFreeChart 是一个强大的 Java 图表库,它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图、甘特图等,适用于各种数据可视化需求。这篇内容将深入探讨 JFreeChart 的基本使用...

    jfreechart-1.0.19

    **JFreeChart 1.0.19:Java平台上的高效图表库** JFreeChart 是一个功能丰富的开源Java类库,专为在Java应用程序和Web应用中创建各种类型的图表而设计。这个库提供了广泛的数据可视化功能,包括折线图、柱状图、...

    jfreechart的jar包

    4. **多种输出格式**:JFreeChart 可以将图表导出为 PNG、JPEG、PDF、SVG 等多种格式,方便集成到各种报告和文档中。 5. **与 Swing 和 JavaFX 集成**:JFreeChart 可以轻松地在 Swing 或 JavaFX 应用程序中嵌入,...

    jfreechart1.0.6_pdf

    JFreeChart支持将图表导出为多种格式,包括PNG、JPEG、SVG、EPS等图像文件,以及PDF文档。这对于生成报告或在线分享图表非常有用。此外,JFreeChart生成的图表可以直接在Web应用程序中显示,只需将图表对象嵌入到...

Global site tag (gtag.js) - Google Analytics