<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

     iText使用指南

    iText使用指南

    ----------使用iText輸出PDF文件。

    前言

    如今PDF格式文檔的使用已經越來越普遍,它在文檔壓縮、安全等方面都表現的非常優秀,有關它的好處我就不在這里多說了。那么如何使用Java語言開發應用來輸出PDF格式的文檔呢?答案就是iText,它是一個開發源代碼的項目,你可以使用iText方便的實現PDF的輸出。這篇文章我將向大家介紹如何使用iText來生成PDF文檔。

    HelloWorld

    作為一個程序開發人員,對于HelloWorld程序并不陌生,幾乎每一種語言或應用開始總是會舉一個HelloWorld的例子來向大家介紹。在開始介紹iText時,我們不妨也從HelloWorld開始。

    /*

     * Created on 2004-1-3,創建第一個Hello World程序

     */

    package test1;

     

    import java.io.FileNotFoundException;

    import java.io.FileOutputStream;

     

    import com.lowagie.text.*;

    import com.lowagie.text.pdf.*;

    public class HelloWorld {

     

        public static void main(String[] args) {

            //創建一個文檔對象

            Document doc=new Document();

            try {

            //定義輸出位置并把文檔對象裝入輸出對象中

               PdfWriter.getInstance(doc, new FileOutputStream("c:/hello.pdf"));

                //打開文檔對象

                doc.open();

             // 加入文字“Hello World”

                doc.add(new Paragraph("HelloWorld"));

             //  關閉文檔對象,釋放資源

                doc.close();           

           } catch (FileNotFoundException e) {

               e.printStackTrace();

           } catch (DocumentException e) {

               e.printStackTrace();

           }

        }

    }

     

    現在運行上面的代碼(記住在這之前把itext.jar放到你的ClassPath 之中),如果一切正常的話你會在”c:/”看到一個名為hello.pdf的文件。打開這個文件,看到了什么?是的文檔里有一行字符“HelloWorld”,如下圖。

    Hello1

    怎么樣是不是很簡單?當然我們在實際應用時不可能只是簡單的輸出一個字符串就完事了,還要作很多的工作,輸出更復雜的PDF,下面就讓我們開始進一步了解iText的其他功能。

    更復雜的設置

       分析一下Document的構造方法,我們發現除了我們上一個例子中的無參數構造以外還有兩個:

    public Document();

    public Document(Rectangle pageSize);

    public Document(Rectangle pageSize,

       int marginLeft,

       int marginRight,

       int marginTop,

       int marginBottom);

    第一個設置文檔的頁面大小,第二個除了設置文檔的頁面大小還設置頁面邊距。下面我分別給出例子。

    Rectangle pSize=new Rectangle(144,90);

      //文檔的背景色

            pSize.setBackgroundColor(Color.blue);       

            //創建一個文檔對象,并設置他的初始化大小

            Document doc=new Document(pSize);

     

    Rectangle pSize=new Rectangle(144,90);

            //文檔的背景色

            pSize.setBackgroundColor(Color.blue);             

            //創建一個文檔對象,設置初始化大小和頁邊距

            Document doc=new Document(pSize,5,5,5,5);

    將第一個例子中的代碼按上面的方法修改然后運行,你可以看到輸出的PDF文檔將是這個樣子,文檔變得很小而且背景是藍色:

      Hello2

    在上面的例子中我們通過Rectangle設置了文檔的大小,其實iText已經為我們定義好了許多常用的頁面,比如:A0-A10, LEGAL, LETTER等等,這些都放在com.lowagie.text.PageSize這個類中,你可以通過調用PageSize中的靜態方法直接引用頁面信息。比如:

    PageSize.A4;

     

    設置字體

       使用iText可以設置文字的字體,對于我們中國的程序員來說如何顯示中文是最緊要的問題。幸好iText中有一個專門的包用來設置亞洲國家的字體你可以從http://itext.sourceforge.net/downloads/iTextAsian.jar下載這個包。然后把它直接放到你的ClassPath中就可以了。如何設置字體呢?

    BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);

                Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);

    在上面的代碼中設置了中文字體的顯示,你只要使用下面的代碼就可以包中文加到PDF中了

    String title = "最新電影:矩陣革命";

                Paragraph t = new Paragraph(title, FontChinese);

                doc.add(t);

     

    如果你覺得這樣設置很麻煩的話,呵呵,那你要自己擴展它的源代碼了,設置字體全部在那個BaseFont里邊。

     

    編輯表格

       iText中的表格很像HTML中表格的使用不過它有一個cell代表一個格子,基本上這里的TableSwing中的Table對象是一致的,比如上面代碼中對于表格的設置:

    //定義一個表格

               Table table = new Table(2);

                //設置表格邊框

               table.setBorderWidth(1);

                Cell cell = new Cell("Matrix III");

               cell.setHeader(true);

                //分列

               cell.setColspan(2);

                cell.setBackgroundColor(Color.blue);

               table.addCell(cell);

     

     

    放置圖片

    現在你一定知道如何把一個圖片加到文檔中了,沒錯只要聲明一個Image對象就可以了,這里的ImageAWT中的Image使用方法是一樣的。

    //定義一個圖片

               Image jpeg = Image.getInstance("C:/matrix.jpg");

                //圖片居中

               jpeg.setAlignment(Image.ALIGN_CENTER);

     

     

    運行后輸出的PDF文件為:

    matrix3 

    結束

    有關iText的使用我就大致介紹這些,更深入的東西只有大家參考源代碼自己體會了。當然其中有些理解也可能是不對的,哪位朋友有什么建議歡迎與我聯系。

    Mail:wafd@hotmail.com

     

     

    資源:

    iText站點

    http://www.lowagie.com

    iText中文顯示包

    大毛 發表于 12:04 | 閱讀 (1796) | 評論 (0) | 引用 (0)

    posted on 2005-03-04 23:05 AK747 閱讀(725) 評論(0)  編輯  收藏 所屬分類: JAVA
     
    主站蜘蛛池模板: 亚洲av午夜国产精品无码中文字| 国产亚洲av片在线观看播放| 亚洲欧洲国产成人精品| 久操免费在线观看| 亚洲成A∨人片在线观看不卡 | 亚洲国产精品久久66| 国产一精品一AV一免费| 亚洲线精品一区二区三区影音先锋| 一出一进一爽一粗一大视频免费的| 亚洲成A∨人片天堂网无码| 日韩a毛片免费观看| 久久久无码精品亚洲日韩软件| 国产精品免费看久久久香蕉| 中文字幕亚洲乱码熟女一区二区| 中文字幕一区二区三区免费视频| 亚洲日韩精品无码专区网址| 国产99视频精品免费专区| 亚洲黄色在线观看视频| 91视频国产免费| 亚洲爆乳成av人在线视菜奈实| 免费一级毛片在播放视频| 久久精品成人免费国产片小草| 久久精品国产96精品亚洲| 国产在线观看麻豆91精品免费| 精品久久久久久亚洲精品| 国产成人免费a在线视频app| 日韩成人毛片高清视频免费看| 亚洲av午夜福利精品一区| 99久久综合国产精品免费| 无码一区二区三区亚洲人妻| 亚洲欧洲无码AV电影在线观看| 99国产精品视频免费观看| 亚洲一区二区无码偷拍| 亚洲激情视频网站| 成人人观看的免费毛片| 欧洲乱码伦视频免费国产| 婷婷精品国产亚洲AV麻豆不片| 免费毛片在线看片免费丝瓜视频| 色哟哟国产精品免费观看| 亚洲伦另类中文字幕| 国产又长又粗又爽免费视频|