I'm glad I did something at least i feel i have. :-)
Something was in my head, what if i need to code to create a PDF document at some point in my life ???
I was aware of Apache's POI being used to handle Excel Sheets, tried a sample script then thought what if i need to create a pdf file.
I am glad i tried it. Okay, lets get on with why we are or rather why you are here.
Check Out : Apache PDFBox
Download link for the jar file : http://pdfbox.apache.org/download.html
I downloaded the version pdfbox-app-1.5.0.jar. Please always download a stable download, avoids we being testers where you expecting things to work for first time. You would not be wanting to do a QA job right ;-) especially when it's someone else's product.
Java Development Environment :
I Choose Eclipse, it makes my work simple. I strongly suggest readers to use the same, saves a lot of time researching how stuff works ( avoids the ant and stuff that scare you over the net).
- Create a New Project named "PDF Test"
- In the Package Explorer, Right Click > Properties
- Go to Java Build Path
- Select Libraries Tab
- Click on "Add External Jars"
Lets say you have saved your jar pdfbox-app-1.5.0.jar at location D:\Jars\pdfbox-app-1.5.0.jar
Browse and select the jar.
Click Okay.
You are good to go.
Now Create a Sample Java file as follows. I've named it PDFTest
import java.io.IOException;
import org.apache.pdfbox.exceptions.COSVisitorException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
public class PDFTest {
public static void main(String[] args) throws IOException, COSVisitorException {
PDDocument document =new PDDocument();
PDPage page = new PDPage();
document.addPage( page );
PDFont font = PDType1Font.HELVETICA_BOLD;
PDPageContentStream contentStream = new PDPageContentStream(document, page);
contentStream.beginText();
contentStream.setFont( font, 12 );
//contentStream.moveTextPositionByAmount( 0, 700 );
contentStream.moveTextPositionByAmount( 10, 700 );
contentStream.drawString( "Hello World" );
contentStream.endText();
contentStream.close();
document.save("D:\\BlankPage.pdf");
document.close();
document.close();
}
}
You can view the file under the D drive in the above mentioned example.
I hope this gives a confidence boost that at least you can print a Hello World into a PDF file before exploring it further.
I tried extending to create table like data, so I've taken a sample version of it to create a Single Cell with Value in it.
http://www.javaapionline.com/2011/06/create-table-data-into-cell-in-pdf.html
Ciao for now
Regards,
Ajith Moni
No comments:
Post a Comment
Please add value. Sharing is caring