Itext导出Word文档的例子

package com.myclover.utils.file;   

2. 
3.import java.awt.Color;  
4. 
5.import com.lowagie.text.Chunk;  
6.import com.lowagie.text.Font;  
7.import com.lowagie.text.Paragraph;  
8.import com.lowagie.text.Phrase;  
9. 
10. 
11.public class DocStyleUtils {  
12.      
13.     
22.    public static Font setFontStyle(String family , float size , int style){  
23.        return setFontStyle(family, Color.BLACK, size, style);  
24.    }  
25.      
26.     
36.    public static Font setFontStyle(String family , Color color , float size , int style){  
37.        Font font = new Font();  
38.        font.setFamily(family);  
39.        font.setColor(color);  
40.        font.setSize(size);  
41.        font.setStyle(style);  
42.        return font;  
43.    }  
44.      
45.     
53.    private static Phrase setPhraseStyle(String content , String appendStr){  
54.        Chunk chunk = new Chunk(content);  
55.        //填充的背景颜色为浅灰色  
56.        chunk.setBackground(Color.LIGHT_GRAY);  
57.        Phrase phrase = new Phrase(chunk);  
58.        phrase.add(appendStr);  
59.        return phrase;  
60.    }  
61.      
62.     
72.    public static Paragraph setParagraphStyle(String content , Font font , float firstLineIndent , String appendStr){  
73.        Paragraph par = setParagraphStyle(content, font, 0f, 12f);  
74.        Phrase phrase = new Phrase();  
75.        phrase.add(par);  
76.        phrase.add(appendStr);  
77.        Paragraph paragraph = new Paragraph(phrase);  
78.        paragraph.setFirstLineIndent(firstLineIndent);  
79.        //设置对齐方式为两端对齐  
80.        paragraph.setAlignment(Paragraph.ALIGN_JUSTIFIED_ALL);  
81.        return paragraph;  
82.    }  
83.      
84.     
95.    public static Paragraph setParagraphStyle(String content , Font font , float firstLineIndent , float leading , String appendStr){  
96.        Phrase phrase = setPhraseStyle(content , appendStr);  
97.        Paragraph par = new Paragraph(phrase);  
98.        par.setFont(font);  
99.        par.setFirstLineIndent(firstLineIndent);  
100.        par.setLeading(leading);  
101.        //设置对齐方式为两端对齐  
102.        par.setAlignment(Paragraph.ALIGN_JUSTIFIED_ALL);  
103.        return par;  
104.    }  
105.      
106.     
116.    public static Paragraph setParagraphStyle(String content , Font font , float leading , int alignment){  
117.        return setParagraphStyle(content, font, 0f, leading, 0f, alignment);  
118.    }  
119.      
120.     
130.    public static Paragraph setParagraphStyle(String content , Font font , float firstLineIndent , float leading){  
131.        return setParagraphStyle(content, font, firstLineIndent, leading, 0.6f, Paragraph.ALIGN_JUSTIFIED_ALL);  
132.    }  
133.      
134.     
146.    public static Paragraph setParagraphStyle(String content , Font font , float firstLineIndent , float leading , float indentationRight , int alignment){  
147.        Paragraph par = new Paragraph(content, font);  
148.        par.setFirstLineIndent(firstLineIndent);  
149.        par.setLeading(leading);  
150.        par.setIndentationRight(indentationRight);  
151.        par.setAlignment(alignment);  
152.        return par;  
153.    }  
154.      
155.} 
package com.myclover.utils.file;

import java.awt.Color;

import com.lowagie.text.Chunk;
import com.lowagie.text.Font;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Phrase;


public class DocStyleUtils {
 
 
 public static Font setFontStyle(String family , float size , int style){
  return setFontStyle(family, Color.BLACK, size, style);
 }
 
 
 public static Font setFontStyle(String family , Color color , float size , int style){
  Font font = new Font();
  font.setFamily(family);
  font.setColor(color);
  font.setSize(size);
  font.setStyle(style);
  return font;
 }
 
 
 private static Phrase setPhraseStyle(String content , String appendStr){
  Chunk chunk = new Chunk(content);
  //填充的背景颜色为浅灰色
  chunk.setBackground(Color.LIGHT_GRAY);
  Phrase phrase = new Phrase(chunk);
  phrase.add(appendStr);
  return phrase;
 }
 
 
 public static Paragraph setParagraphStyle(String content , Font font , float firstLineIndent , String appendStr){
  Paragraph par = setParagraphStyle(content, font, 0f, 12f);
  Phrase phrase = new Phrase();
  phrase.add(par);
  phrase.add(appendStr);
  Paragraph paragraph = new Paragraph(phrase);
  paragraph.setFirstLineIndent(firstLineIndent);
  //设置对齐方式为两端对齐
  paragraph.setAlignment(Paragraph.ALIGN_JUSTIFIED_ALL);
  return paragraph;
 }
 
 
 public static Paragraph setParagraphStyle(String content , Font font , float firstLineIndent , float leading , String appendStr){
  Phrase phrase = setPhraseStyle(content , appendStr);
  Paragraph par = new Paragraph(phrase);
  par.setFont(font);
  par.setFirstLineIndent(firstLineIndent);
  par.setLeading(leading);
  //设置对齐方式为两端对齐
  par.setAlignment(Paragraph.ALIGN_JUSTIFIED_ALL);
  return par;
 }
 
 
 public static Paragraph setParagraphStyle(String content , Font font , float leading , int alignment){
  return setParagraphStyle(content, font, 0f, leading, 0f, alignment);
 }
 
 
 public static Paragraph setParagraphStyle(String content , Font font , float firstLineIndent , float leading){
  return setParagraphStyle(content, font, firstLineIndent, leading, 0.6f, Paragraph.ALIGN_JUSTIFIED_ALL);
 }
 
 
 public static Paragraph setParagraphStyle(String content , Font font , float firstLineIndent , float leading , float indentationRight , int alignment){
  Paragraph par = new Paragraph(content, font);
  par.setFirstLineIndent(firstLineIndent);
  par.setLeading(leading);
  par.setIndentationRight(indentationRight);
  par.setAlignment(alignment);
  return par;
 }
 
}

 

测试类如下:


Java代码 
1.package com.myclover.utils.file;  
2. 
3.import java.io.File;  
4.import java.io.FileOutputStream;  
5. 
6.import jxl.Workbook;  
7.import jxl.format.Alignment;  
8.import jxl.write.Label;  
9.import jxl.write.WritableSheet;  
10.import jxl.write.WritableWorkbook;  
11. 
12.import com.lowagie.text.Document;  
13.import com.lowagie.text.Font;  
14.import com.lowagie.text.Paragraph;  
15.import com.lowagie.text.rtf.RtfWriter2;  
16. 
17.public class TestDoc {  
18. 
19.     
22.    public static void main(String[] args) {  
23.        exportDoc("D:\\test.doc");  
24.          
25.    }  
26.      
27.    public static void exportDoc(String fileName){  
28.        try {  
29.            Document doc = new Document();  
30.            RtfWriter2.getInstance(doc, new FileOutputStream(fileName));  
31.            // 打开文档  
32.            doc.open();  
33.            //设置页边距,上、下25.4毫米,即为72f,左、右31.8毫米,即为90f  
34.            doc.setMargins(90f, 90f, 72f, 72f);  
35.              
36.            //设置标题字体样式,粗体、二号、华文中宋  
37.            Font tfont = DocStyleUtils.setFontStyle("华文中宋", 22f, Font.BOLD);  
38.            //设置正文内容的字体样式,常规、三号、仿宋_GB2312  
39.            Font bfont = DocStyleUtils.setFontStyle("仿宋_GB2312", 16f, Font.NORMAL);  
40.              
41.            //构建标题,居中对齐,12f表示单倍行距  
42.            Paragraph title = DocStyleUtils.setParagraphStyle("测试Itext导出Word文档", tfont, 12f, Paragraph.ALIGN_CENTER);  
43.            //构建正文内容  
44.            StringBuffer contentSb = new StringBuffer();  
45.            contentSb.append("最近项目很忙,这个是项目中使用到的,所以现在总结一下,以便今后可以参考使用,");  
46.            contentSb.append("2011年4月27日 — 2011年5月20日,对以下技术进行使用,");  
47.            contentSb.append("Itext、");  
48.            contentSb.append("Excel、");  
49.            contentSb.append("Word、");  
50.            contentSb.append("PPT。");  
51.              
52.            //首行缩进2字符,行间距1.5倍行距  
53.            Paragraph bodyPar = DocStyleUtils.setParagraphStyle(contentSb.toString(), bfont, 32f, 18f);  
54.            Paragraph bodyEndPar = DocStyleUtils.setParagraphStyle("截至2011年4月28日,各种技术已经完全实现。", bfont, 32f, 18f);  
55.            //设置空行  
56.            Paragraph blankRow = new Paragraph(18f, " ", bfont);  
57.            Paragraph deptPar = DocStyleUtils.setParagraphStyle("(技术开发部盖章)", bfont, 12f, Paragraph.ALIGN_RIGHT);  
58.            Paragraph datePar = DocStyleUtils.setParagraphStyle("2011-04-30", bfont, 12f, Paragraph.ALIGN_RIGHT);  
59.              
60.            //向文档中添加内容  
61.            doc.add(title);  
62.            doc.add(blankRow);  
63.            doc.add(bodyPar);  
64.            doc.add(bodyEndPar);  
65.            doc.add(blankRow);  
66.            doc.add(blankRow);  
67.            doc.add(blankRow);  
68.            doc.add(deptPar);  
69.            doc.add(datePar);  
70.              
71.            //最后一定要记住关闭  
72.            doc.close();  
73.              
74.        } catch (Exception e) {  
75.            e.printStackTrace();  
76.        }  
77.    }     
78.      
79.} 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值