PdfDocument检测页面高度android

时间:2017-03-28 11:33:45

标签: android pdf-generation

使用循环我为pdf文档页面生成内容 并使用

向下递增
BaseLine = BaseLine + lineSpacing; 

表示(X,Y)职位

问题:我无法找到应该何时循环中断? 我用

if (BaseLine > pageHeight) {break;}

并开始新的页面 但它有时会超出页面高度(我怎么知道?因为我可以在页面末尾看到截止文字) (我没有使用IText)

是否有更好的结束页面的解决方案?

1 个答案:

答案 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是要添加到文档中的组件的高度(如图像等)。