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

 

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

 

  1. package com.rye.test;    
  2. import java.awt.Color;    
  3. import java.io.FileNotFoundException;    
  4. import java.io.FileOutputStream;    
  5. import java.io.IOException;    
  6.    
  7. import com.lowagie.text.Cell;    
  8. import com.lowagie.text.Document;    
  9. import com.lowagie.text.DocumentException;    
  10. import com.lowagie.text.Font;    
  11. import com.lowagie.text.PageSize;    
  12. import com.lowagie.text.Paragraph;    
  13. import com.lowagie.text.Table;    
  14. import com.lowagie.text.rtf.RtfWriter2;    
  15. /**   
  16.   * 创建word文档 步骤:    
  17.   * 1,建立文档    
  18.   * 2,创建一个书写器    
  19.   * 3,打开文档    
  20.   * 4,向文档中写入数据    
  21.   * 5,关闭文档   
  22.   */   
  23.  public class WordDemo {    
  24.     
  25.   public WordDemo() {    
  26.   }    
  27.     
  28.   /**   
  29.    * @param args   
  30.    */   
  31.   public static void main(String[] args) {    
  32.  // 创建word文档,并设置纸张的大小   
  33.    Document document = new Document(PageSize.A4);   
  34.    try {    
  35.     RtfWriter2.getInstance(document,  
  36.  new FileOutputStream("E:/word.doc"));    
  37.    
  38.     document.open();    
  39.        
  40.    //设置合同头     
  41.        
  42.    Paragraph ph = new Paragraph();    
  43.    Font f  = new Font();    
  44.        
  45.    Paragraph p = new Paragraph("出口合同",   
  46.  new Font(Font.NORMAL, 18, Font.BOLDITALIC, new Color(000)) );    
  47.     p.setAlignment(1);    
  48.     document.add(p);    
  49.     ph.setFont(f);    
  50.     
  51.     // 设置中文字体     
  52.     // BaseFont bfFont =     
  53.     // BaseFont.createFont("STSongStd-Light",   
  54.  "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);    
  55.     // Font chinaFont = new Font();     
  56.     /*   
  57.      * 创建有三列的表格   
  58.      */   
  59.     Table table = new Table(4);    
  60.     document.add(new Paragraph("生成表格"));    
  61.     table.setBorderWidth(1);    
  62.     table.setBorderColor(Color.BLACK);    
  63.     table.setPadding(0);    
  64.     table.setSpacing(0);    
  65.         
  66.     /*   
  67.      * 添加表头的元素   
  68.      */   
  69.     Cell cell = new Cell("表头");//单元格     
  70.     cell.setHeader(true);    
  71.     cell.setColspan(3);//设置表格为三列     
  72.     cell.setRowspan(3);//设置表格为三行     
  73.     table.addCell(cell);    
  74.     table.endHeaders();// 表头结束     
  75.    
  76.     // 表格的主体     
  77.     cell = new Cell("Example cell 2");    
  78.     cell.setRowspan(2);//当前单元格占两行,纵向跨度     
  79.     table.addCell(cell);    
  80.     table.addCell("1,1");    
  81.     table.addCell("1,2");    
  82.     table.addCell("1,3");    
  83.     table.addCell("1,4");    
  84.     table.addCell("1,5");    
  85.     table.addCell(new Paragraph("用java生成的表格1"));    
  86.     table.addCell(new Paragraph("用java生成的表格2"));    
  87.     table.addCell(new Paragraph("用java生成的表格3"));    
  88.     table.addCell(new Paragraph("用java生成的表格4"));    
  89.     document.add(new Paragraph("用java生成word文件"));    
  90.     document.add(table);    
  91.     document.close();    
  92.    } catch (FileNotFoundException e) {    
  93.     e.printStackTrace();    
  94.    } catch (DocumentException e) {    
  95.     e.printStackTrace();    
  96.    } catch (IOException e) {    
  97.     e.printStackTrace();    
  98.    }    
  99.   }    
  100.     
  101.  }   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值