【问题标题】:PdfDocument detect page height androidPdfDocument检测页面高度android
【发布时间】:2017-03-28 11:33:44
【问题描述】:

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

向下递增
BaseLine = BaseLine + lineSpacing; 

对于 (X,Y) 位置

问题:我找不到循环何时中断? 我用

if (BaseLine > pageHeight) {break;}

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

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

【问题讨论】:

    标签: android pdf-generation


    【解决方案1】:

    维护一个变量say private 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 是您要添加到文档中的组件(如图像等)的高度。

    【讨论】:

    • 我也在做同样的事情,但它仍然写通过高度:(
    • 没有显示错误(因为它的逻辑错误某处)抱歉不能发布原始代码
    猜你喜欢
    • 2016-05-23
    • 1970-01-01
    • 2014-03-17
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 2020-03-02
    • 2012-04-15
    • 1970-01-01
    相关资源
    最近更新 更多