Changing the orientation of PDF using Itext
11,981
When you create a Document
object like this:
Document document = new Document();
You tell iText to create a document with pages of the A4 format using Portrait orientation. You can add a Rectangle
object as a parameter of the Document
constructor to create documents with pages in any size you want.
You can also use the PageSize
class to use a predefined format. For instance: if you want to use an A4 page in landscape, you'd use this:
Document document = new Document(PageSize.A4.rotate());
Please download the free eBook "The ABC of PDF" for more info.
Author by
Vikram
Updated on June 04, 2022Comments
-
Vikram almost 2 years
I have done creating pdf and chart with the help of this link http://viralpatel.net/blogs/generate-pie-chart-bar-graph-in-pdf-using-itext-jfreechart/.
package net.viralpatel.pdf; import java.awt.Graphics2D; import java.awt.geom.Rectangle2D; import java.io.FileOutputStream; import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.data.general.DefaultPieDataset; import com.itextpdf.text.Document; import com.itextpdf.text.pdf.DefaultFontMapper; import com.itextpdf.text.pdf.PdfContentByte; import com.itextpdf.text.pdf.PdfTemplate; import com.itextpdf.text.pdf.PdfWriter; public class PieChartDemo { public static void main(String[] args) { //TODO: Add code to generate PDFs with charts writeChartToPDF(generateBarChart(), 500, 400, "C://barchart.pdf"); writeChartToPDF(generatePieChart(), 500, 400, "C://piechart.pdf"); } public static void writeChartToPDF(JFreeChart chart, int width, int height, String fileName) { PdfWriter writer = null; Document document = new Document(); try { writer = PdfWriter.getInstance(document, new FileOutputStream( fileName)); document.open(); PdfContentByte contentByte = writer.getDirectContent(); PdfTemplate template = contentByte.createTemplate(width, height); Graphics2D graphics2d = template.createGraphics(width, height, new DefaultFontMapper()); Rectangle2D rectangle2d = new Rectangle2D.Double(0, 0, width, height); chart.draw(graphics2d, rectangle2d); graphics2d.dispose(); contentByte.addTemplate(template, 0, 0); } catch (Exception e) { e.printStackTrace(); } document.close(); } public static JFreeChart generatePieChart() { DefaultPieDataset dataSet = new DefaultPieDataset(); dataSet.setValue("China", 19.64); dataSet.setValue("India", 17.3); dataSet.setValue("United States", 4.54); dataSet.setValue("Indonesia", 3.4); dataSet.setValue("Brazil", 2.83); dataSet.setValue("Pakistan", 2.48); dataSet.setValue("Bangladesh", 2.38); JFreeChart chart = ChartFactory.createPieChart( "World Population by countries", dataSet, true, true, false); return chart; } public static JFreeChart generateBarChart() { DefaultCategoryDataset dataSet = new DefaultCategoryDataset(); dataSet.setValue(791, "Population", "1750 AD"); dataSet.setValue(978, "Population", "1800 AD"); dataSet.setValue(1262, "Population", "1850 AD"); dataSet.setValue(1650, "Population", "1900 AD"); dataSet.setValue(2519, "Population", "1950 AD"); dataSet.setValue(6070, "Population", "2000 AD"); JFreeChart chart = ChartFactory.createBarChart( "World Population growth", "Year", "Population in millions", dataSet, PlotOrientation.VERTICAL, false, true, false); return chart; }
}
Now how to change the orientation of the pdf from prtrait to landscape?
-
Vikram about 10 yearsafter importing import com.itextpdf.text.PageSize package pdf is not creating..what to do ?
-
Bruno Lowagie about 10 yearsYour comment doesn't contain a question a developer would ask: lowagie.com/doesntwork Learn how to walk before trying to run. Start with a simple
Hello World
example: itextpdf.com/examples/iia.php?id=20