如何使用java itext将数据传输到PdfPageEventHelper?
我使用java itext导出pdf,并使用如何使用java itext将数据传输到PdfPageEventHelper?,java,spring,itext,Java,Spring,Itext,我使用java itext导出pdf,并使用PdfPageEventHelper为pdf文件创建页眉和页脚。 我想将参数设置为PdfPageEventHelper,但我不知道怎么做? 代码如下: public class HeaderFooterPageEvent extends PdfPageEventHelper { private PdfTemplate pdfTemplate; public void onOpenDocument(PdfWriter writer, Document
PdfPageEventHelper
为pdf文件创建页眉和页脚。
我想将参数设置为PdfPageEventHelper
,但我不知道怎么做?
代码如下:
public class HeaderFooterPageEvent extends PdfPageEventHelper {
private PdfTemplate pdfTemplate;
public void onOpenDocument(PdfWriter writer, Document document) {
pdfTemplate = writer.getDirectContent().createTemplate(30, 16);
}
@Override
public void onEndPage(PdfWriter writer, Document document) {
addHeader(writer);
}
private void addHeader(PdfWriter writer){
PdfPTable header = new PdfPTable(4);
try {
// set defaults
header.setWidthPercentage(100);
header.setSpacingBefore(10f);
header.setSpacingAfter(10f);
header.setTotalWidth(600);
float[] columnHeader = {2f, 5.5f, 1.5f, 1.5f};
header.setWidths(columnHeader);
PdfPCell cellHeader;
cellHeader = new PdfPCell(new Phrase("", FontUtil.fontSize16()));
cellHeader.setBorderColor(BaseColor.WHITE);
header.addCell(cellHeader);
cellHeader = new PdfPCell(new Phrase("酒受払公簿 (受入)", FontUtil.fontSize16()));
cellHeader.setHorizontalAlignment(Element.ALIGN_CENTER);
cellHeader.setBorderColor(BaseColor.WHITE);
header.addCell(cellHeader);
cellHeader = new PdfPCell(new Phrase(String.format("%d / ", writer.getPageNumber()), FontUtil.fontSize9()));
cellHeader.setBorderColor(BaseColor.WHITE);
cellHeader.setHorizontalAlignment(Element.ALIGN_RIGHT);
header.addCell(cellHeader);
cellHeader = new PdfPCell(new Phrase("", FontUtil.fontSize16()));
cellHeader.setBorderColor(BaseColor.WHITE);
header.addCell(cellHeader);
//row 2
cellHeader = new PdfPCell(new Phrase("店番: 00048 店名: aaa", FontUtil.fontSize9()));
cellHeader.setBorderColor(BaseColor.WHITE);
cellHeader.setPaddingTop(10);
header.addCell(cellHeader);
cellHeader = new PdfPCell(new Phrase("期間: 2019年04月", FontUtil.fontSize10()));
cellHeader.setHorizontalAlignment(Element.ALIGN_CENTER);
cellHeader.setPaddingTop(8);
cellHeader.setBorderColor(BaseColor.WHITE);
header.addCell(cellHeader);
cellHeader = new PdfPCell(new Phrase("", FontUtil.fontSize9()));
cellHeader.setBorderColor(BaseColor.WHITE);
header.addCell(cellHeader);
cellHeader = new PdfPCell(new Phrase("", FontUtil.fontSize9()));
cellHeader.setBorderColor(BaseColor.WHITE);
header.addCell(cellHeader);
// add placeholder for total page count
PdfPCell totalPageCount = new PdfPCell(Image.getInstance(pdfTemplate));
totalPageCount.setBorderColor(BaseColor.WHITE);
header.addCell(totalPageCount);
// write page
PdfContentByte canvas = writer.getDirectContent();
canvas.beginMarkedContentSequence(PdfName.ARTIFACT);
header.writeSelectedRows(0, -1 , 34, 803, writer.getDirectContent());
canvas.endMarkedContentSequence();
} catch(DocumentException | FileNotFoundException de) {
throw new ExceptionConverter(de);
}
}
public void onCloseDocument(PdfWriter writer, Document document) {
try {
ColumnText.showTextAligned(pdfTemplate, Element.ALIGN_RIGHT, new Phrase(String.valueOf(writer.getPageNumber() - 1), FontUtil.fontSize9()),
10, 5, 0);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}您可以扩展它的类,使其具有可用于任务的附加属性。请参阅。您可以扩展其类,使其具有可用于任务的附加属性。看见