使用循环我为pdf文档页面生成内容 并使用
向下递增BaseLine = BaseLine + lineSpacing;
表示(X,Y)职位
问题:我无法找到应该何时循环中断? 我用
if (BaseLine > pageHeight) {break;}
并开始新的页面 但它有时会超出页面高度(我怎么知道?因为我可以在页面末尾看到截止文字) (我没有使用IText)
是否有更好的结束页面的解决方案?
答案 0 :(得分:0)
维护变量说私有float currentTopY;
以保存页面的当前位置
private static final float LEFT_MARGIN = 10f;
private static final float PAGE_HEIGHT = 792f;
private static final float PAGE_WIDTH = 595f;
private static final float TOP_BOTTOM_MARGIN = 5f;
private void createPdfPage() throws IOException {
page = new PDPage();
document.addPage(page);
currentTopY = PAGE_HEIGHT - TOP_BOTTOM_MARGIN;
currentPageNumber = currentPageNumber + 1;
}
private void addNewLine(int numberOfLines) {
currentTopY = currentTopY - (numberOfLines * NEW_LINE);
}
每次向pdfdocument添加任何内容之前,请进行以下检查:
if (currentTopY - TOP_BOTTOM_MARGIN < height) {
createPdfPage();
}
currentTopY = currentTopY - height;
其中height是要添加到文档中的组件的高度(如图像等)。