首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java将XChart保存为PDF

Java将XChart保存为PDF
EN

Stack Overflow用户
提问于 2017-05-21 23:14:16
回答 2查看 1.7K关注 0票数 2

使用XChart,我可以制作出漂亮的图形。当我制作图形时,我可以右键单击它,出现一个“另存为”的选项。然后,我可以将图像以指定的格式保存到指定的目录中。

我如何编写Java代码来为我自动执行此操作?也就是说,我有一个应用程序可以创建大约50个图表,我不想每次运行该应用程序时都必须手动保存每个图表。

下面是我制作图表的方法:

代码语言:javascript
复制
private void makeLineChart(int[][] data, String title) {
    MyLineChart c = new MyLineChart(data, title);
    XYChart chart = c.getChart();
    new SwingWrapper<XYChart>(chart).displayChart();
    // save as pdf...?
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-21 23:22:59

xchart的示例代码提供了解决方案。每次你启动你的应用程序时,BitmapEncoder都可以做到这一点。BitmapEncoder.saveBitmap(chart, "./Sample_Chart", BitmapFormat.PNG);

代码语言:javascript
复制
public class Example1 {

public static void main(String[] args) throws Exception {
 double[] yData = new double[] { 2.0, 1.0, 0.0 };
// Create Chart
XYChart chart = new XYChart(500, 400);
chart.setTitle("Sample Chart");
chart.setXAxisTitle("X");
chart.setXAxisTitle("Y");
XYSeries series = chart.addSeries("y(x)", null, yData);
series.setMarker(SeriesMarkers.CIRCLE);

BitmapEncoder.saveBitmap(chart, "./Sample_Chart", BitmapFormat.PNG);
BitmapEncoder.saveBitmap(chart, "./Sample_Chart", BitmapFormat.JPG);
BitmapEncoder.saveJPGWithQuality(chart, "./Sample_Chart_With_Quality.jpg", 0.95f);
BitmapEncoder.saveBitmap(chart, "./Sample_Chart", BitmapFormat.BMP);
BitmapEncoder.saveBitmap(chart, "./Sample_Chart", BitmapFormat.GIF);

BitmapEncoder.saveBitmapWithDPI(chart, "./Sample_Chart_300_DPI", BitmapFormat.PNG, 300);
BitmapEncoder.saveBitmapWithDPI(chart, "./Sample_Chart_300_DPI", BitmapFormat.JPG, 300);
BitmapEncoder.saveBitmapWithDPI(chart, "./Sample_Chart_300_DPI", BitmapFormat.GIF, 300);

VectorGraphicsEncoder.saveVectorGraphic(chart, "./Sample_Chart", VectorGraphicsFormat.EPS);
VectorGraphicsEncoder.saveVectorGraphic(chart, "./Sample_Chart", VectorGraphicsFormat.PDF);
VectorGraphicsEncoder.saveVectorGraphic(chart, "./Sample_Chart", VectorGraphicsFormat.SVG);

}}

票数 2
EN

Stack Overflow用户

发布于 2021-04-23 03:20:32

类似于dawnfyly's answer,但是更具体地针对OP的问题,并且只将输出写入PDF。

可以使用标题为"Save Chart as Bitmap"的示例中所示的VectorGraphicsEncoder编写PDF。

在这里,我将示例精简为仅包含相关信息:

代码语言:javascript
复制
package com.example;

import java.io.IOException;

import org.knowm.xchart.VectorGraphicsEncoder;
import org.knowm.xchart.VectorGraphicsEncoder.VectorGraphicsFormat;
import org.knowm.xchart.XYChart;
import org.knowm.xchart.XYSeries;
import org.knowm.xchart.style.markers.SeriesMarkers;

public class TryXchartToPdf extends XchartBase {
    /**
     * Creates a simple Chart and saves it as a PDF file.
     * @throws IOException
     */

    public static void main(String[] args) throws IOException {

        double[] yData = new double[] { 2.0, 1.0, 0.0 };

        // Create Chart
        XYChart chart = new XYChart(500, 400);
        chart.setTitle("Sample Chart");
        chart.setXAxisTitle("X");
        chart.setXAxisTitle("Y");
        XYSeries series = chart.addSeries("y(x)", null, yData);
        series.setMarker(SeriesMarkers.CIRCLE);

        VectorGraphicsEncoder.saveVectorGraphic(chart, "./Sample_Chart", VectorGraphicsFormat.PDF);

    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44098450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档