![](/img/trans.png)
[英]How to add header or footer using itextpdf only after first page in java?
[英]Add footer to Java iTextPdf 7 with page number
我正在嘗試在左側添加包含用戶名的頁腳,在右側添加包含總頁數的頁腳我在 Java 上使用 iTextPdf 7 但我找不到任何有用的方法來做到這一點,請在我的代碼下面找到導入:
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
代碼的小樣本:
PdfWriter pdfWriter = new PdfWriter(path);
PdfDocument pdfDocument = new PdfDocument(pdfWriter);
pdfDocument.addNewPage();
Document document = new Document(pdfDocument);
Paragraph dateParagraph = new Paragraph(todayDate.toString());
dateParagraph.setTextAlignment(TextAlignment.RIGHT);
document.add(dateParagraph);
document.close();
頁腳樣本:
這個參考對你有幫助嗎? iTextPdf
一個非常基本的例子,可以完成這項工作。 在 iText 中添加帶有頁碼的頁腳有多種方法,根據您的上下文,一種方法可能比其他方法更合適。 我提供的樣本是一個好的開始:
Document document = new Document(pdfDocument, PageSize.A4, false);
for (int i = 0; i < 10; i++) {
if (i != 0) {
document.add(new AreaBreak());
}
document.add(new Paragraph("Hello"));
}
int totalPages = document.getRenderer().getCurrentArea().getPageNumber();
for (int i = 1; i <= totalPages; i++) {
Paragraph footer = createFooter(totalPages);
footer.setFixedPosition(i, 40, 40, 300);
document.add(footer);
}
document.close();
請注意,我使用Paragraph
作為頁腳元素,但您可以使用Table
或其他任何東西:
private Paragraph createFooter(int totalPages) {
Paragraph p = new Paragraph();
Text currentPage = new Text("");
currentPage.setNextRenderer(new CurrentPageNumberRenderer(currentPage));
p.add("Page ").add(currentPage).add(" of ").add(new Text(String.valueOf(totalPages)));
return p;
}
這是我們的自定義渲染器,它將動態分配頁碼:
private static class CurrentPageNumberRenderer extends TextRenderer {
public CurrentPageNumberRenderer(Text textElement) {
super(textElement);
}
@Override
public LayoutResult layout(LayoutContext layoutContext) {
int currentPageNumber = layoutContext.getArea().getPageNumber();
setText(String.valueOf(currentPageNumber));
return super.layout(layoutContext);
}
@Override
public IRenderer getNextRenderer() {
return new CurrentPageNumberRenderer((Text) modelElement);
}
}
視覺結果:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.