问题描述
关于, 我有一个将页码和徽标放在右上角的功能。 该代码几乎可以在每页中正常工作。 但是,在某些页面中,没有显示页码及其徽标。 在另一页中,页码及其徽标在左下方显示为上下。
关于原因的任何想法吗?
下面的代码,谢谢。
private byte[] setPageNumbers(byte[] pdftmp,Integer initialPage,Integer finalPage) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PDDocument document = PDDocument.load(pdftmp);
PDPage page;
String numberingFormat = " {0}";
int offset_X = 45;
int offset_Y = 803;
int page_counter = 1;
Color color = new Color(0);
float[] components = new float[] {color.getRed() / 255f,color.getGreen() / 255f,color.getBlue() / 255f };
float x;
float y;
PDPageContentStream contentStream;
PDRectangle pageSize;
String text;
PDImageXObject pdImage;
for(int i = initialPage; i <= finalPage; i++) {
page = document.getPage(i);
pageSize = page.getMediaBox();
x = pageSize.getLowerLeftX();
y = pageSize.getLowerLeftY();
text = MessageFormat.format(numberingFormat,page_counter);
contentStream = new PDPageContentStream(document,page,PDPageContentStream.AppendMode.APPEND,true,true);
contentStream.setFont(PDType1Font.HELVETICA_BOLD,11);
contentStream.setNonStrokingColor(new PDColor(components,PDDeviceRGB.INSTANCE));
contentStream.beginText();
contentStream.newLineAtOffset(x + pageSize.getWidth() - offset_X,y+offset_Y);
contentStream.showText(text);
contentStream.endText();
++page_counter;
pdImage = PDImageXObject.createFromFile(PDChoice.class.getResource("/images/logo.png").getPath(),document);
contentStream.drawImage(pdImage,x + pageSize.getWidth() - offset_X - 7,y + offset_Y - 2);
contentStream.close();
}
document.save(baos);
document.close();
return baos.toByteArray();
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)