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.}