我有一个android线性布局,我想转换为pdf格式。很多时候,这个pdf会跨越多个页面。虽然我可以将内容转换为单页pdf,但要将pdf分解为多页pdf有一些困难。我已经给出了下面的相关代码块,为了简单起见硬编码了一些数字。在这里,pdfdocument.pageinfo.builder接受3个参数-宽度、高度和页码(之前,它用于接受新的rect(0,0800100),后者在api 23中不再工作)。现在,当我遍历for循环时,我不确定如何为多页pdf获取不同的内容。下面给出的当前代码为每个页面生成相同的内容,因为它基于宽度和高度,而不是基于坐标。

    PdfDocument.PageInfo pageInfo;
    int noOfPages = (int)Math.floor(content.getHeight()/1000)+1;
    for (int i=1;i<=noOfPages;i++) {
        pageInfo = new PdfDocument.PageInfo.Builder
                (800,1000,i).create();
        PdfDocument.Page page = document.startPage(pageInfo);
        content.draw(page.getCanvas());
        document.finishPage(page);
    }

最佳答案

自从我上一次做pdf文档工作以来,已经有两年多了,很抱歉我没有确切的答案回答你的问题,但是我会分享我的一些知识,希望它能帮助你。
在android pdfdocument中,我们将给出单个pdfpage的视图。
创建pdfpage时,我们将为pdfpage提供宽度和高度(对于A4大小,为598px*842px)。
因此,您为编写pdfpage而提供的视图也应该与pdfpage大小相同。
所以,我认为我们有责任为每个页面创建视图,大小(宽度和高度)与pdfpage大小(宽度和高度)匹配。
pdfdocument是dump,您为它所写的pdfpage提供的视图是什么,因此我们负责为单个页面创建视图并将其提供给pdfdocument。
样品
看看我20年前写的代码,它可能会帮助你-https://gist.github.com/apvasanth03/ed903535aed12c93e30b102d9596c399
注释
如果您的视图包含一个包含多行的文本视图,那么如何将其拆分为不同的页面将是很困难的。我没有答案。
如果您有任何解决方案,请与我们分享。

08-04 04:33