做doc文档报表的时候可能遇到这样的需求:
每一个页面需要页码,用IText可以完成这样的需求。
IText生成doc文档需要三个包:iTextAsian.jar,iText-rtf-2.1.4.jar,iText-2.1.4.jar
代码亲测无错,如下所示:
import com.lowagie.text.*;
import com.lowagie.text.Font;
import com.lowagie.text.rtf.RtfWriter2;
import java.awt.*;
import java.io.FileOutputStream;
/**
* 生成页脚页码
* User: HYY
* Date: 13-8-1
* Time: 下午9:54
* To change this template use File | Settings | File Templates.
*/
public class FooterTest {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
// 创建word文档,并设置纸张的大小
Document document = new Document(PageSize.A4);
//设置存放位置
RtfWriter2.getInstance(document, new FileOutputStream("C:\\Documents and Settings\\Administrator\\桌面//1.doc"));
document.open();
//正文(为了生成两页纸)
Table table = new Table(7,60);
document.add(table);
//————————页脚设置————————
//页脚段落(这里为空,可以自己添加文字)
Paragraph paraFooter = new Paragraph();
Font font = new Font();
//页脚的字体大小
font.setSize(12f);
font.setColor(new Color(0,0,0));
paraFooter.setFont(font);
paraFooter.setAlignment("center");
//(参数一)页脚的段落 和 (参数二)是否有页码
HeaderFooter footer = new HeaderFooter(paraFooter, false);
//页脚的对齐方式(应该在footer设置而不是段落中设置)
footer.setAlignment(1);
document.setFooter(footer);
document.close();
}
}
附:
HeaderFooter类的构造器官方文档:
HeaderFooter(Phrase before, boolean numbered)
Constructs a Header
-object with a pagenumber at the end.
由上可知,第二个参数是专门设置页脚页码的参数。
true表示生成页码,false表示不生成页码。