Java使用iText生成word文件的解决方案

 

转自【http://www.31km.cn/post/450.html】

JAVA生成WORD文件的方法目前有以下种:

一种是jacob 但是局限于windows平台 往往许多JAVA程序运行于其他操作系统 在此不讨论该方案

一种是pio但是他的excel处理很程序 word模块还局限于读取word的文本内容,写word文件就更弱项了

本文介绍的是itext生成rtf文件并保存格式为word 此方案本人已实践过 并已在项目中使用

用到的jar包: 
iText-2.1.5.jar
iText-rtf-2.1.4.jar
iTextAsian.jar

 

package com.rye.test;  
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.Font;  
import com.lowagie.text.PageSize;  
import com.lowagie.text.Paragraph;  
import com.lowagie.text.Table;  
import com.lowagie.text.rtf.RtfWriter2;  
/**  
  * 创建word文档 步骤:   
  * 1,建立文档   
  * 2,创建一个书写器   
  * 3,打开文档   
  * 4,向文档中写入数据   
  * 5,关闭文档  
  */ 
 public class WordDemo {  
  
  public WordDemo() {  
  }  
  
  /**  
   * @param args  
   */ 
  public static void main(String[] args) {  
 // 创建word文档,并设置纸张的大小
   Document document = new Document(PageSize.A4); 
   try {  
    RtfWriter2.getInstance(document,
 new FileOutputStream("E:/word.doc"));  
 
    document.open();  
     
   //设置合同头  
     
   Paragraph ph = new Paragraph();  
   Font f  = new Font();  
     
   Paragraph p = new Paragraph("出口合同", 
 new Font(Font.NORMAL, 18, Font.BOLDITALIC, new Color(0, 0, 0)) );  
    p.setAlignment(1);  
    document.add(p);  
    ph.setFont(f);  
  
    // 设置中文字体  
    // BaseFont bfFont =  
    // BaseFont.createFont("STSongStd-Light",
 "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);  
    // Font chinaFont = new Font();  
    /*  
     * 创建有三列的表格  
     */ 
    Table table = new Table(4);  
    document.add(new Paragraph("生成表格"));  
    table.setBorderWidth(1);  
    table.setBorderColor(Color.BLACK);  
    table.setPadding(0);  
    table.setSpacing(0);  
      
    /*  
     * 添加表头的元素  
     */ 
    Cell cell = new Cell("表头");//单元格  
    cell.setHeader(true);  
    cell.setColspan(3);//设置表格为三列  
    cell.setRowspan(3);//设置表格为三行  
    table.addCell(cell);  
    table.endHeaders();// 表头结束  
 
    // 表格的主体  
    cell = new Cell("Example cell 2");  
    cell.setRowspan(2);//当前单元格占两行,纵向跨度  
    table.addCell(cell);  
    table.addCell("1,1");  
    table.addCell("1,2");  
    table.addCell("1,3");  
    table.addCell("1,4");  
    table.addCell("1,5");  
    table.addCell(new Paragraph("用java生成的表格1"));  
    table.addCell(new Paragraph("用java生成的表格2"));  
    table.addCell(new Paragraph("用java生成的表格3"));  
    table.addCell(new Paragraph("用java生成的表格4"));  
    document.add(new Paragraph("用java生成word文件"));  
    document.add(table);  
    document.close();  
   } catch (FileNotFoundException e) {  
    e.printStackTrace();  
   } catch (DocumentException e) {  
    e.printStackTrace();  
   } catch (IOException e) {  
    e.printStackTrace();  
   }  
  }  
  
 } 

你可能感兴趣的:(itext)