【发布时间】:2018-03-21 05:03:50
【问题描述】:
我正在尝试使用 iText 在 Java 中的现有 pdf 文档中添加标题。我可以在文档的固定位置添加页眉,但是所有文档的页面大小都不同,所以它并不总是在页面的顶部。我尝试获取页面大小以便计算页眉的位置,但似乎页面大小实际上并不是我想要的。在某些文档中,调用reader.getPageSize(i).getTop(20) 会将文本放置在页面顶部的正确位置,但是,在某些不同的文档中,它会将其放置在页面的中间位置。大多数页面都是用施乐复印机扫描的,如果有区别的话。这是我正在使用的代码:
PdfReader reader = new PdfReader(readFilePath);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(writeFilePath));
BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
for (int i = 1; i <= reader.getNumberOfPages(); i++) {
PdfContentByte cb = stamper.getOverContent(i);
cb.beginText();
cb.setFontAndSize(bf, 14);
float x = reader.getPageSize(i).getWidth() / 2;
float y = reader.getPageSize(i).getTop(20);
cb.showTextAligned(PdfContentByte.ALIGN_CENTER, "Copy", x, y, 0);
cb.endText();
}
stamper.close();
【问题讨论】:
-
向我们展示出现问题的 PDF。
-
我上传了两份 PDF,一份按我的意愿工作,另一份将文本放在页面的中间位置。
-
您是否知道 Wrong.pdf 的页面旋转了 270 度?
-
不,我不知道,这绝对是问题所在。