내 코드에 문제가 있습니다. 일단 내 PDF 페이지가 제대로 만들어지면, ItextPdf 7의 예를 사용하여 Page x of Y로 페이지 번호를 인쇄하고 싶습니다. 코드는 올바르게 실행되지만 마지막 2 페이지 만 제대로 인쇄됩니다. . 사전에Pdf로 인쇄 ... 마지막 2 페이지에만
감사 알렉스 내 코드 아래
이
.....snippet code for document creation !
PageXofY event = new PageXofY(pdf);
pdf.addEventHandler(PdfDocumentEvent.END_PAGE, event) ;
event.writeTotal(pdf);
document.close();
전자 내가 인쇄에 사용하는 클래스입니다 :
protected class PageXofY implements IEventHandler {
protected PdfFormXObject placeholder;
protected float side = 20;
protected float x = 300;
protected float y = 25;
protected float space = 4.5f;
protected float descent = 3;
public PageXofY(PdfDocument pdf) {
placeholder = new PdfFormXObject(new Rectangle(0, 0, side, side));
}
@Override
public void handleEvent(Event event) {
PdfDocumentEvent docEvent = (PdfDocumentEvent) event;
PdfDocument pdf = docEvent.getDocument();
PdfPage page = docEvent.getPage();
int pageNumber = pdf.getPageNumber(page);
Rectangle pageSize = page.getPageSize();
PdfCanvas pdfCanvas = new PdfCanvas(
page.getLastContentStream(), page.getResources(), pdf);
Canvas canvas = new Canvas(pdfCanvas, pdf, pageSize);
Paragraph p = new Paragraph()
.add("Pagina ").add(String.valueOf(pageNumber)).add(" di");
canvas.showTextAligned(p, x, y, TextAlignment.RIGHT);
pdfCanvas.addXObject(placeholder, x + space, y - descent);
pdfCanvas.release();
}
public void writeTotal(PdfDocument pdf) {
Canvas canvas = new Canvas(placeholder, pdf);
canvas.showTextAligned(String.valueOf(pdf.getNumberOfPages()),
0, descent, TextAlignment.LEFT);
}
작동합니다 .... 감사합니다. – Magobin