天天看點

java生成PDF檔案

轉載自:http://blog.csdn.net/dinphi/article/details/14122311

1、需要導入itext.jar和itextasian.jar  下載下傳位址:http://sourceforge.net/projects/itext/files/

[java] 

view plain

 copy

import java.awt.color;    

import java.io.file;    

import java.io.filenotfoundexception;    

import java.io.fileoutputstream;    

import java.io.ioexception;    

import java.text.decimalformat;    

import java.text.numberformat;    

import java.util.arraylist;    

import java.util.date;    

import com.lowagie.text.document;    

import com.lowagie.text.documentexception;    

import com.lowagie.text.element;    

import com.lowagie.text.font;    

import com.lowagie.text.pagesize;    

import com.lowagie.text.paragraph;    

import com.lowagie.text.phrase;    

import com.lowagie.text.pdf.basefont;    

import com.lowagie.text.pdf.pdfcell;    

import com.lowagie.text.pdf.pdfpcell;    

import com.lowagie.text.pdf.pdfprow;    

import com.lowagie.text.pdf.pdfptable;    

import com.lowagie.text.pdf.pdfwriter;    

import com.sun.java_cup.internal.internal_error;    

public class pdfreport{    

    document document = new document();// 建立一個document對象        

    private static font headfont ;// 設定字型大小    

    private static font keyfont;// 設定字型大小    

    private static font textfont;// 設定字型大小    

    static{    

        basefont bfchinese;    

        try {    

            //bfchinese = basefont.createfont("stsong-light","unigb-ucs2-h",basefont.not_embedded);    

            bfchinese = basefont.createfont("stsong-light","unigb-ucs2-h",basefont.not_embedded);    

            headfont = new font(bfchinese, 10, font.bold);// 設定字型大小    

            keyfont = new font(bfchinese, 8, font.bold);// 設定字型大小    

            textfont = new font(bfchinese, 8, font.normal);// 設定字型大小    

        } catch (exception e) {             

            e.printstacktrace();    

        }     

    }    

    public pdfreport(file file) {            

         document.setpagesize(pagesize.a4);// 設定頁面大小    

         try {    

            pdfwriter.getinstance(document,new fileoutputstream(file));    

            document.open();     

        } catch (exception e) {    

    int maxwidth = 520;    

     public pdfpcell createcell(string value,com.lowagie.text.font font,int align){    

         pdfpcell cell = new pdfpcell();    

         cell.setverticalalignment(element.align_middle);            

         cell.sethorizontalalignment(align);        

         cell.setphrase(new phrase(value,font));    

        return cell;    

     public pdfpcell createcell(string value,com.lowagie.text.font font){    

         cell.setverticalalignment(element.align_middle);    

         cell.sethorizontalalignment(element.align_center);     

     public pdfpcell createcell(string value,com.lowagie.text.font font,int align,int colspan){    

         cell.setcolspan(colspan);    

    public pdfpcell createcell(string value,com.lowagie.text.font font,int align,int colspan,boolean boderflag){    

         cell.setpadding(3.0f);    

         if(!boderflag){    

             cell.setborder(0);    

             cell.setpaddingtop(15.0f);    

             cell.setpaddingbottom(8.0f);    

         }    

     public pdfptable createtable(int colnumber){    

        pdfptable table = new pdfptable(colnumber);    

        try{    

            table.settotalwidth(maxwidth);    

            table.setlockedwidth(true);    

            table.sethorizontalalignment(element.align_center);         

            table.getdefaultcell().setborder(1);    

        }catch(exception e){    

        }    

        return table;    

     public pdfptable createtable(float[] widths){    

            pdfptable table = new pdfptable(widths);    

            try{    

                table.settotalwidth(maxwidth);    

                table.setlockedwidth(true);    

                table.sethorizontalalignment(element.align_center);         

                table.getdefaultcell().setborder(1);    

            }catch(exception e){    

                e.printstacktrace();    

            }    

            return table;    

     public pdfptable createblanktable(){    

         pdfptable table = new pdfptable(1);    

         table.getdefaultcell().setborder(0);    

         table.addcell(createcell("", keyfont));             

         table.setspacingafter(20.0f);    

         table.setspacingbefore(20.0f);    

         return table;    

     }    

     public void generatepdf() throws exception{    

        pdfptable table = createtable(4);    

        table.addcell(createcell("學生資訊清單:", keyfont,element.align_left,4,false));    

        table.addcell(createcell("姓名", keyfont, element.align_center));    

        table.addcell(createcell("年齡", keyfont, element.align_center));    

        table.addcell(createcell("性别", keyfont, element.align_center));    

        table.addcell(createcell("住址", keyfont, element.align_center));    

        for(int i=0;i<5;i++){    

            table.addcell(createcell("姓名"+i, textfont));    

            table.addcell(createcell(i+15+"", textfont));    

            table.addcell(createcell((i%2==0)?"男":"女", textfont));    

            table.addcell(createcell("位址"+i, textfont));    

        document.add(table);    

        document.close();    

     public static void main(string[] args) throws exception {    

         file file = new file("d:\\text.pdf");    

         file.createnewfile();    

        new pdfreport(file).generatepdf();          

}