IText匯出Word文件

bolan392發表於2010-08-26

      在開發過程中,經常使用一些匯出功能,如Excel,Word,PDF等,今天專案中需要做一個Word文件的匯出功能,使用了一個開源工具IText。

 

      iText是著名的開放原始碼的站點sourceforge一個專案,是用於生成PDF文件的一個java類庫。通過iText不僅可以生成PDF或rtf的文件,而且可以將XML、Html檔案轉化為PDF檔案。

  iText的安裝非常方便,在http://www.lowagie.com/iText/download.html - download 網站上下載iText.jar檔案後,只需要在系統的CLASSPATH中加入iText.jar的路徑,在程式中就可以使用iText類庫了。

     一下是一段使用iText生成Word文件的程式碼:

import java.awt.Color;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import com.lowagie.text.Cell;
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.Table;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.rtf.RtfWriter2;
public class CreateWordDemo {
	public void createDocContext(String file,String contextString)throws DocumentException, IOException{
		//設定紙張大小
		Document document = new Document(PageSize.A4);
		//建立一個書寫器,與document物件關聯
		RtfWriter2.getInstance(document, new FileOutputStream(file));
		document.open();
		//設定中文字型
		BaseFont bfChinese = BaseFont.createFont("STSongStd-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);
		//標題字型風格
		Font titleFont = new Font(bfChinese,12,Font.BOLD);
		//正文字型風格
		Font contextFont = new Font(bfChinese,10,Font.NORMAL);
		Paragraph title = new Paragraph("標題");
		//設定標題格式對齊方式
		title.setAlignment(Element.ALIGN_CENTER);
		title.setFont(titleFont);
		document.add(title);
		Paragraph context = new Paragraph(contextString);
		context.setAlignment(Element.ALIGN_LEFT);
		context.setFont(contextFont);
		//段間距
		context.setSpacingBefore(3);
		//設定第一行空的列數
		context.setFirstLineIndent(20);
		document.add(context);
		//設定Table表格,建立一個三列的表格
		Table table = new Table(3);
		int width[] = {25,25,50};//設定每列寬度比例
		table.setWidths(width);
		table.setWidth(90);//佔頁面寬度比例
		table.setAlignment(Element.ALIGN_CENTER);//居中
		table.setAlignment(Element.ALIGN_MIDDLE);//垂直居中
		table.setAutoFillEmptyCells(true);//自動填滿
		table.setBorderWidth(1);//邊框寬度
		//設定表頭
		Cell haderCell = new Cell("表格表頭");
		haderCell.setHeader(true);
		haderCell.setColspan(3);
		table.addCell(haderCell);
		table.endHeaders();
		
		Font fontChinese = new Font(bfChinese,12,Font.NORMAL,Color.GREEN);
		Cell cell = new Cell(new Paragraph("這是一個3*3測試表格資料",fontChinese));
		cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
		table.addCell(cell);
		table.addCell(new Cell("#1"));
		table.addCell(new Cell("#2"));
		table.addCell(new Cell("#3"));
		
		document.add(table);
		document.close();
			
	}
	public static void main(String[] args) {
		CreateWordDemo word = new CreateWordDemo();
		String file = "test.doc";
		try {
			word.createDocContext(file, "測試iText匯出Word文件");
		} catch (DocumentException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

 

 

相關文章