Created
April 7, 2017 14:10
-
-
Save erickzanardo/d33b60e8cfe5c60a80fc8d98f8770184 to your computer and use it in GitHub Desktop.
PDFBox and JFreeChart example
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package br.com.tagview; | |
import org.apache.pdfbox.pdmodel.PDDocument; | |
import org.apache.pdfbox.pdmodel.PDPage; | |
import org.apache.pdfbox.pdmodel.PDPageContentStream; | |
import org.apache.pdfbox.pdmodel.font.PDFont; | |
import org.apache.pdfbox.pdmodel.font.PDType1Font; | |
import org.apache.pdfbox.pdmodel.graphics.image.JPEGFactory; | |
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; | |
import org.jfree.chart.ChartFactory; | |
import org.jfree.chart.JFreeChart; | |
import org.jfree.chart.plot.PiePlot3D; | |
import org.jfree.data.general.DefaultPieDataset; | |
import java.awt.*; | |
import java.awt.image.BufferedImage; | |
public class PdfPoc { | |
public static void main(String[] args) { | |
try { | |
DefaultPieDataset dataset = new DefaultPieDataset(); | |
dataset.setValue("One", new Double(43.2)); | |
dataset.setValue("Two", new Double(10.0)); | |
dataset.setValue("Three", new Double(27.5)); | |
dataset.setValue("Four", new Double(17.5)); | |
dataset.setValue("Five", new Double(11.0)); | |
dataset.setValue("Six", new Double(19.4)); | |
JFreeChart chart = ChartFactory.createPieChart3D( | |
"Pie Chart Demo 1", // chart title | |
dataset, // data | |
true, // include legend | |
true, | |
false | |
); | |
PiePlot3D plot = (PiePlot3D) chart.getPlot(); | |
plot.setLabelFont(new Font("SansSerif", Font.PLAIN, 12)); | |
plot.setNoDataMessage("No data available"); | |
plot.setCircular(false); | |
plot.setLabelGap(0.02); | |
BufferedImage chartImage = chart.createBufferedImage(300, 200); | |
PDDocument document = new PDDocument(); | |
PDPage page = new PDPage(); | |
document.addPage(page); | |
PDFont font = PDType1Font.HELVETICA_BOLD; | |
PDPageContentStream content = new PDPageContentStream(document, page); | |
content.beginText(); | |
content.setFont( font, 12 ); | |
content.newLineAtOffset(150, 750); | |
content.showText("Hello to pdfbox and JFreeChart world"); | |
content.endText(); | |
PDImageXObject pdfChartImage = JPEGFactory.createFromImage(document, chartImage, 1f); | |
content.drawImage(pdfChartImage, 50, 500); | |
content.close(); | |
document.save("/tmp/bla-java.pdf"); | |
document.close(); | |
} catch (Exception e) { | |
throw new RuntimeException(e); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment