我一直在网上搜索如何使用java中的itextpdf制作或设置页脚。直到现在我还没有找到任何关于如何做到这一点。我看过一些关于如何使用和设置标题的文章。但不是页脚。这是一个示例代码
Document document = new Document(PageSize.LETTER);
Paragraph here = new Paragraph();
Paragraph there = new Paragraph();
Font Font1 = new Font(Font.FontFamily.HELVETICA, 9, Font.BOLD);
here.add(new Paragraph("sample here", Font1));
there.add(new Paragraph("sample there", Font1));
//footer here
document.add(here);
document.add(there);
document.add(footer);
答案 0 :(得分:5)
要实现页眉和页脚,您需要实现一个扩展的HeaderFooter类
PdfPageEventHelper类的iText API。然后覆盖onEndPage()
以设置页眉和页脚。在此示例中,我在页眉中设置name
,在页脚中设置'page mumber`。
在pdf创建侧码中,您需要使用HeaderAndFooter
类,如下所示:
Document document = new Document(PageSize.LETTER);
PdfWriter writer = PdfWriter.getInstance(document, "C:\sample.pdf");
//set page event to PdfWriter instance that you use to prepare pdf
writer.setPageEvent(new HeaderAndFooter(name));
.... //Add your content to documne here and close the document at last
/*
* HeaderAndFooter class
*/
public class HeaderAndFooter extends PdfPageEventHelper {
private String name = "";
protected Phrase footer;
protected Phrase header;
/*
* Font for header and footer part.
*/
private static Font headerFont = new Font(Font.COURIER, 9,
Font.NORMAL,Color.blue);
private static Font footerFont = new Font(Font.TIMES_ROMAN, 9,
Font.BOLD,Color.blue);
/*
* constructor
*/
public HeaderAndFooter(String name) {
super();
this.name = name;
header = new Phrase("***** Header *****");
footer = new Phrase("**** Footer ****");
}
@Override
public void onEndPage(PdfWriter writer, Document document) {
PdfContentByte cb = writer.getDirectContent();
//header content
String headerContent = "Name: " +name;
//header content
String footerContent = headerContent;
/*
* Header
*/
ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, new Phrase(headerContent,headerFont),
document.leftMargin() - 1, document.top() + 30, 0);
/*
* Foooter
*/
ColumnText.showTextAligned(cb, Element.ALIGN_RIGHT, new Phrase(String.format(" %d ",
writer.getPageNumber()),footerFont),
document.right() - 2 , document.bottom() - 20, 0);
}
}
希望它有所帮助。我在其中一个中使用了这个。