`

java导出JFreeChart图表到PDF文件,SVG图像

阅读更多
一、导出到PDF文件
0,环境搭建所需jar包:
文件 描述
jfreechart-1.0.6.jar JFreeChart类库
jcommon-1.0.9.jar          Jcommon类库
itext-2.0.6.jar           Itext类库
1、硬编码创建一个PDF文件,调用方法将图表写入文件,方法的一个参数是FontMapper对象。iText使用FontMapper接口将java字体对象映射成基本的字体对象。DefaultFontMapper类预先默认映射为java本地化字体,而400和300分别是图表的宽和高
File fileName = new File(System.getProperty("user.home") + "/jfreechart1.pdf");
saveChartAsPDF(fileName, chart, 400, 300, new DefaultFontMapper());

2、saveChartAsPDF方法具体内容
public static void saveChartAsPDF(File file, JFreeChart chart, int width,
			int height, FontMapper mapper) throws IOException {
OutputStream out = new BufferedOutputStream(new FileOutputStream(file));
writeChartAsPDF(out, chart, width, height, mapper);
out.close();
}

3、writeChartAsPDF方法具体内容,此方法将图表写入文件输入流中
public static void writeChartAsPDF(OutputStream out, JFreeChart chart,
		int width, int height, FontMapper mapper) throws IOException {
		Rectangle pagesize = new Rectangle(width, height);
		Document document = new Document(pagesize, 50, 50, 50, 50);
		try {
			PdfWriter writer = PdfWriter.getInstance(document, out);
			document.addAuthor("JFreeChart");
			document.addSubject("Demonstration");
			document.open();
			PdfContentByte cb = writer.getDirectContent();
			PdfTemplate tp = cb.createTemplate(width, height);
			Graphics2D g2 = tp.createGraphics(width, height, mapper);
			Rectangle2D r2D = new Rectangle2D.Double(0, 0, width, height);
			chart.draw(g2, r2D);
			g2.dispose();
			cb.addTemplate(tp, 0, 0);
		} catch (DocumentException de) {
			System.err.println(de.getMessage());
		}
		document.close();
}

二、导出到SVG图像文件
1、搭建环境所需jar包
文件 描述
jcommon-1.0.9.jar         JFreeChart的通用类包。
jfreechart-1.0.6.jar     JFreeChart的类包
batik-awt-util.jar     Batik实时运行文件
batik-dom.jar        Batik实时运行文件
batik-svggen.jar        Batik实时运行文件
batik-util.jar        Batik实时运行文件
2、执行代码,完整的代码如下:
public class SVGExportDemo {
	/**
	 * Starting point for the demo.
	 * 
	 * @param args
	 *            ignored.
	 */
	public static void main(String[] args) throws IOException {
		// create a dataset...
		DefaultPieDataset data = new DefaultPieDataset();
		data.setValue("Category 1", new Double(43.2));
		data.setValue("Category 2", new Double(27.9));
		data.setValue("Category 3", new Double(79.5));
		// create a chart
		JFreeChart chart = ChartFactory.createPieChart("Sample Pie Chart",
				data, true, false, false);
		// THE FOLLOWING CODE BASED ON THE EXAMPLE IN THE BATIK DOCUMENTATION...
		// Get a DOMImplementation
		DOMImplementation domImpl = GenericDOMImplementation
				.getDOMImplementation();
		// Create an instance of org.w3c.dom.Document
		Document document = domImpl.createDocument(null, "svg", null);
		// Create an instance of the SVG Generator
		SVGGraphics2D svgGenerator = new SVGGraphics2D(document);
		// set the precision to avoid a null pointer exception in Batik 1.5
		svgGenerator.getGeneratorContext().setPrecision(6);
		// Ask the chart to render into the SVG Graphics2D implementation
		chart.draw(svgGenerator, new Rectangle2D.Double(0, 0, 400, 300), null);
		// Finally, stream out SVG to a file using UTF-8 character to
		// byte encoding
		boolean useCSS = true;
		Writer out = new OutputStreamWriter(new FileOutputStream(new File(
				"test.svg")), "UTF-8");
		svgGenerator.stream(out, useCSS);
	}
}

3、  Batik类库内包含了一个”Squiggle”的小应用,我们可以使用该工具浏览SVG文件。我们可以使用下面命令打开:java -jar batik-squiggle.jar
分享到:
评论

相关推荐

    jfreechart生成图片及导出pdf 、excel

    JFreeChart是一个强大且灵活的Java图表库,能够帮助开发者轻松创建和定制各种图表,并支持将图表导出为图片、PDF和Excel等多种格式。理解并熟练运用其API,能够让你在数据分析和可视化方面游刃有余。记得在实际开发...

    java/JFreeChart图表

    JFreeChart可以导出为多种格式,如PNG、JPEG、PDF、SVG等。使用`ChartUtilities`类的静态方法,可以将图表保存到文件或直接写入流。 **7. 动态更新** JFreeChart支持实时数据更新。你可以创建一个可更新的数据集,...

    java根据模板导出PDF详细教程(包含统计图)

    例如,你可以使用JFreeChart这样的图表库生成图片,然后将图片作为PDF的一个元素插入。或者,使用更现代的库如MPAndroidChart,先生成SVG或PNG图片,再将其转换为PDF格式并插入。 7. **保存和输出PDF**:生成的PDF...

    java源码:Java图表 JFreeChart.zip

    1. 支持多种输出格式:JFreeChart可以将图表导出为JPEG、PNG、PDF、SVG等多种格式,方便集成到各种应用场景。 2. 自定义样式:开发者可以通过设置颜色、线条样式、字体等属性,对图表进行高度自定义。 3. 动态图表:...

    JfreeChart-雷达图与导出

    5. **显示和导出**:最后,你可以将图表显示在Java Swing组件上,或者导出为各种图像格式,如PNG、JPEG或PDF。对于导出,可以使用`ChartUtilities`类中的静态方法。 **数据导出** 在JFreeChart中,数据导出通常是...

    jfreechart图表demo

    此外,JFreeChart 还可以导出图表为各种格式,如 PNG、JPEG、SVG 和 PDF,方便在报告或网页中使用。 **2. Maven 依赖** 在 Maven 项目中,添加 JFreeChart 依赖至 `pom.xml` 文件是非常关键的步骤。以下是一个基本...

    java报表jfreechart开发

    ##### 16.7 查看PDF文件 使用PDF阅读器打开导出的文件进行查看。 ##### 16.8 Unicode字符问题 处理PDF中的Unicode字符问题。 #### 17. 导出图表为SVG格式 ##### 17.1 简介 SVG是一种基于XML的矢量图形格式。 ####...

    最新Java做图表的jfreechart包

    7. **导出和打印**:除了在屏幕上显示,JFreeChart还可以将图表导出为JPEG、PNG、PDF、SVG等多种格式,便于报告或网页的制作。同时,它也支持打印图表,方便纸质文档的制作。 在使用这个“最新Java做图表的...

    java图形jfreechart-0.9.16

    4. **导出与打印**:除了在屏幕上显示,JFreeChart还支持将图表导出为多种格式,如JPEG、PNG、PDF、SVG等,便于报告或网页集成。同时,它也支持打印功能,方便用户进行硬拷贝。 5. **Web应用支持**:在Servlet环境...

    java生成报表JFreeChart

    此外,还可以导出生成的图表为PDF、SVG、JPEG等多种格式,方便在不同的应用场景中使用。 在实际开发中,JFreeChart与Swing或JavaFX等GUI框架结合,可以构建出强大的数据分析界面。例如,将图表嵌入到JPanel或JFrame...

    JFreeChart,Java开源图表框架

    - **绘制图表**:将图表添加到组件(如`JFrame`)上显示,或导出为图像文件。 **3. ** **实战示例** 以下是一个简单的柱状图创建示例: ```java import org.jfree.chart.ChartFactory; import org.jfree.chart....

    jfreechart1.0.6_pdf

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

    用jfreechart来生成统计图表.doc

    6. 支持导出图表为 PNG、JPEG、PDF、SVG 等多种格式。 对于 web 应用,jFreeChart 还可以通过 Servlet 将图表直接输出到 HTTP 响应,这样可以直接在网页上显示图表。在给定的文档中提到的 `GSPieChart` 类就展示了...

    JFreeChart -- web图表生成源码.zip_JfreeChart web_java web_jfreechart_w

    5. **导出功能**:JFreeChart 提供了将图表导出为 PNG、JPEG、SVG、PDF、EPS 等格式的功能,方便在报告、网页和打印中使用。 **JFreeChart 在 Web 开发中的应用** 在 Web 开发中,JFreeChart 主要通过 JavaServer ...

    jfreechart java画图表开源jar包

    此外,还可以导出为 PNG、JPEG、SVG、PDF 等格式的文件,或者直接输出到打印机。 **6. 高级功能** JFreeChart 还支持复杂的图表特性,比如动画、3D 效果、自定义颜色、渐变填充、图例项的点击事件等。用户可以通过...

    Java报表之JFreeChart视频教程 java1234出品

    5. **导出和打印**:JFreeChart 允许将图表导出为多种格式(如 PNG、JPEG、PDF、SVG),并支持打印,方便报告制作和分享。 6. **兼容性**:JFreeChart 与大多数 Java GUI 框架(如 Swing 和 JavaFX)兼容,可以轻松...

    java图形工具 jfreechart全套图形工具及文档源码一网打尽

    5. **输出格式广泛**:JFreeChart可以生成静态图像(如PNG、JPEG、SVG),也可以导出为PDF或SVG矢量图,方便在各种平台上显示和打印。 6. **文档完善**:JFreeChart提供了详细的用户指南和API文档,帮助开发者快速...

    JFreeChart Java图表组件 v1.0.12

    6. **保存或导出图表**:使用`ChartUtilities`类的方法将图表保存到文件或输出为图像流。 ### 示例代码 ```java import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.data...

    java开发JFreeChart相关包

    它提供了一套完整的API,使得开发者可以方便地生成静态图表,并可以导出为多种格式,如JPEG、PNG、PDF、SVG等。此外,JFreeChart还支持在Swing、JavaFX和Web应用中集成图表。 2. **图表类型** - **线图**:适用于...

    JFreeChart图表制作工具

    **JFreeChart图表制作工具详解** JFreeChart是一款在Java平台上广泛使用的开源图表库,它提供了丰富的图表类型,包括柱状图、折线图、饼图、散点图、甘特图、3D图表等,使得开发者能够方便地在应用程序中生成高质量...

Global site tag (gtag.js) - Google Analytics