Events Itext 7事件处理程序中QRCode中的getNumberOfPages从第2页开始,并带有END_页
我有一个2页的文档,我在每一页上生成一个QR码,并使用getNumberOfPages()将页数插入QR文本,但使用END_page时,页数始终以2开头。它只适用于开始页面Events Itext 7事件处理程序中QRCode中的getNumberOfPages从第2页开始,并带有END_页,events,itext7,Events,Itext7,我有一个2页的文档,我在每一页上生成一个QR码,并使用getNumberOfPages()将页数插入QR文本,但使用END_page时,页数始终以2开头。它只适用于开始页面 public static void main(String args[]) throws IOException { new boxText().createPdf(DEST); } public void createPdf(String dest) throws IOException { PdfDocument p
public static void main(String args[]) throws IOException {
new boxText().createPdf(DEST);
}
public void createPdf(String dest) throws IOException {
PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
Document document = new Document(pdf);
BarQrcodeEventHandler barCodeHandler = new BarQrcodeEventHandler(pdf);
pdf.addEventHandler(PdfDocumentEvent.END_PAGE, barCodeHandler);
BufferedReader br = new BufferedReader(new FileReader(SRC));
String line;
while ((line = br.readLine()) != null) {
document.add(new Paragraph(line));
}
br.close();
document.close();
}
protected class BarQrcodeEventHandler implements IEventHandler {
protected PdfDocument doc;
public BarQrcodeEventHandler(PdfDocument doc) {
this.doc = doc;
}
public void handleEvent(Event event) {
String pageNum = Integer.toString(doc.getNumberOfPages());
PdfPage page = ((PdfDocumentEvent) event).getPage();
BarcodeQRCode qr = new BarcodeQRCode(pageNum);
PdfFormXObject xObject = qr.createFormXObject(ColorConstants.BLACK, doc);
Image bCodeImage = new Image(xObject);
bCodeImage.setFixedPosition(200, 300);
bCodeImage.scaleAbsolute(150, 150);
new Canvas(page, page.getPageSize()).add(bCodeImage).close();
}
}
}查看和查看。