How To Create Pdf Template In Java
Create a new Java project "de.vogella.itext.write" with the package "de.vogella.itext.write". Create a folder "lib" and put the iText library (jar file) into this folder. Add the jar to your classpath.
Create the following class "FirstPdf.java" . I assume that the code is pretty much self-explaining. I tried to add lots of comments to make it easier to understand. For more complex examples have a look at the iText Homepage.
package de.vogella.itext.write ; import java.io.FileOutputStream ; import java.util.Date ; import com.itextpdf.text.Anchor ; import com.itextpdf.text.BadElementException ; import com.itextpdf.text.BaseColor ; import com.itextpdf.text.Chapter ; import com.itextpdf.text.Document ; import com.itextpdf.text.DocumentException ; import com.itextpdf.text.Element ; import com.itextpdf.text.Font ; import com.itextpdf.text.List ; import com.itextpdf.text.ListItem ; import com.itextpdf.text.Paragraph ; import com.itextpdf.text.Phrase ; import com.itextpdf.text.Section ; import com.itextpdf.text.pdf.PdfPCell ; import com.itextpdf.text.pdf.PdfPTable ; import com.itextpdf.text.pdf.PdfWriter ; public class FirstPdf { private static String FILE = "c:/temp/FirstPdf.pdf" ; private static Font catFont = new Font ( Font . FontFamily . TIMES_ROMAN , 18 , Font . BOLD ); private static Font redFont = new Font ( Font . FontFamily . TIMES_ROMAN , 12 , Font . NORMAL , BaseColor . RED ); private static Font subFont = new Font ( Font . FontFamily . TIMES_ROMAN , 16 , Font . BOLD ); private static Font smallBold = new Font ( Font . FontFamily . TIMES_ROMAN , 12 , Font . BOLD ); public static void main ( String [] args ) { try { Document document = new Document (); PdfWriter . getInstance ( document , new FileOutputStream ( FILE )); document . open (); addMetaData ( document ); addTitlePage ( document ); addContent ( document ); document . close (); } catch ( Exception e ) { e . printStackTrace (); } } // iText allows to add metadata to the PDF which can be viewed in your Adobe // Reader // under File -> Properties private static void addMetaData ( Document document ) { document . addTitle ( "My first PDF" ); document . addSubject ( "Using iText" ); document . addKeywords ( "Java, PDF, iText" ); document . addAuthor ( "Lars Vogel" ); document . addCreator ( "Lars Vogel" ); } private static void addTitlePage ( Document document ) throws DocumentException { Paragraph preface = new Paragraph (); // We add one empty line addEmptyLine ( preface , 1 ); // Lets write a big header preface . add ( new Paragraph ( "Title of the document" , catFont )); addEmptyLine ( preface , 1 ); // Will create: Report generated by: _name, _date preface . add ( new Paragraph ( "Report generated by: " + System . getProperty ( "user.name" ) + ", " + new Date (), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ smallBold )); addEmptyLine ( preface , 3 ); preface . add ( new Paragraph ( "This document describes something which is very important " , smallBold )); addEmptyLine ( preface , 8 ); preface . add ( new Paragraph ( "This document is a preliminary version and not subject to your license agreement or any other agreement with vogella.com ;-)." , redFont )); document . add ( preface ); // Start a new page document . newPage (); } private static void addContent ( Document document ) throws DocumentException { Anchor anchor = new Anchor ( "First Chapter" , catFont ); anchor . setName ( "First Chapter" ); // Second parameter is the number of the chapter Chapter catPart = new Chapter ( new Paragraph ( anchor ), 1 ); Paragraph subPara = new Paragraph ( "Subcategory 1" , subFont ); Section subCatPart = catPart . addSection ( subPara ); subCatPart . add ( new Paragraph ( "Hello" )); subPara = new Paragraph ( "Subcategory 2" , subFont ); subCatPart = catPart . addSection ( subPara ); subCatPart . add ( new Paragraph ( "Paragraph 1" )); subCatPart . add ( new Paragraph ( "Paragraph 2" )); subCatPart . add ( new Paragraph ( "Paragraph 3" )); // add a list createList ( subCatPart ); Paragraph paragraph = new Paragraph (); addEmptyLine ( paragraph , 5 ); subCatPart . add ( paragraph ); // add a table createTable ( subCatPart ); // now add all this to the document document . add ( catPart ); // Next section anchor = new Anchor ( "Second Chapter" , catFont ); anchor . setName ( "Second Chapter" ); // Second parameter is the number of the chapter catPart = new Chapter ( new Paragraph ( anchor ), 1 ); subPara = new Paragraph ( "Subcategory" , subFont ); subCatPart = catPart . addSection ( subPara ); subCatPart . add ( new Paragraph ( "This is a very important message" )); // now add all this to the document document . add ( catPart ); } private static void createTable ( Section subCatPart ) throws BadElementException { PdfPTable table = new PdfPTable ( 3 ); // t.setBorderColor(BaseColor.GRAY); // t.setPadding(4); // t.setSpacing(4); // t.setBorderWidth(1); PdfPCell c1 = new PdfPCell ( new Phrase ( "Table Header 1" )); c1 . setHorizontalAlignment ( Element . ALIGN_CENTER ); table . addCell ( c1 ); c1 = new PdfPCell ( new Phrase ( "Table Header 2" )); c1 . setHorizontalAlignment ( Element . ALIGN_CENTER ); table . addCell ( c1 ); c1 = new PdfPCell ( new Phrase ( "Table Header 3" )); c1 . setHorizontalAlignment ( Element . ALIGN_CENTER ); table . addCell ( c1 ); table . setHeaderRows ( 1 ); table . addCell ( "1.0" ); table . addCell ( "1.1" ); table . addCell ( "1.2" ); table . addCell ( "2.1" ); table . addCell ( "2.2" ); table . addCell ( "2.3" ); subCatPart . add ( table ); } private static void createList ( Section subCatPart ) { List list = new List ( true , false , 10 ); list . add ( new ListItem ( "First point" )); list . add ( new ListItem ( "Second point" )); list . add ( new ListItem ( "Third point" )); subCatPart . add ( list ); } private static void addEmptyLine ( Paragraph paragraph , int number ) { for ( int i = 0 ; i < number ; i ++) { paragraph . add ( new Paragraph ( " " )); } } }
The resulting pdf should look like the following.
How To Create Pdf Template In Java
Source: https://www.vogella.com/tutorials/JavaPDF/article.html
Posted by: murphyussighboult1999.blogspot.com
0 Response to "How To Create Pdf Template In Java"
Post a Comment