Итак, я нашел в интернете пример того, как сохранить диаграмму javafx в формате pdf, и попробовал:
final AreaChart<Number, Number> arechart = new AreaChart<>(new NumberAxis(0, 3, 0.5), new NumberAxis(0, 3, 0.5));
xAxis.setLabel("average quality");
yAxis.setLabel("average quantity");
sc.setTitle("Producerdata");
XYChart.Series series1 = new XYChart.Series();
series1.setName("Water 11");
producer.getProducts().forEach((pr) -> {
if (pr.getName().equals("Water 11")) {
series1.getData().add(new XYChart.Data(pr.getPercentQual(), pr.getAmount()));
}
});
XYChart.Series series2 = new XYChart.Series();
series2.setName("Water E40");
producer.getProducts().forEach((pr) -> {
if (pr.getName().equals("Water E40")) {
series2.getData().add(new XYChart.Data(pr.getPercentQual(), pr.getAmount()));
}
});
arechart.getData().addAll(series1, series2);
PDDocument newPDF=new PDDocument();
PDPage chartPage = new PDPage();
newPDF.addPage(chartPage);
WritableImage image = arechart.snapshot(new SnapshotParameters(), null);
BufferedImage bf= SwingFXUtils.fromFXImage(image, null);
PDImageXObject pdImageXObject = LosslessFactory.createFromImage(newPDF, bf);
PDPageContentStream contentStream = new PDPageContentStream(newPDF, chartPage);
contentStream.drawImage(pdImageXObject, 150, 500, pdImageXObject.getWidth() , pdImageXObject.getHeight() );
contentStream.close();
newPDF.close();
newPDF.save(new File("C:\\Users\\chelsfan\\Desktop\\TestingNetbeans\\PDFS\\chart.pdf"));
Теперь проблема, с которой я сталкиваюсь, заключается в том, что когда я сохраняю диаграмму площади javafx в формате pdf, диаграмма выглядит немного размытой.
Например:
Если я увеличу масштаб на 100% до pdf, диаграмма "исчезнет":
Если я уменьшу до 75% или увеличу до 125%, диаграмма будет размытой:
Теперь мой вопрос: есть ли способ сделать диаграмму в PDF более четкой, потому что в программе диаграмма выглядит нормально (не размыто, выглядит резко)?