Android PdfDocument无法从recyclerView打印全部内容

问题描述

我正在尝试使用android API PdfDocument创建PDF文件。

如果内容较少(在屏幕可见范围内)-我的代码可以正常工作。

如果recyclerView包含更多项目(超过屏幕高度)-所有内容都不会以PDF打印。

这是我的代码:


 public void exportDataPDF(View view) {
        PrintAttributes printAttrs = new PrintAttributes.Builder().
                setColorMode(PrintAttributes.COLOR_MODE_COLOR).
                setMediaSize(PrintAttributes.MediaSize.ISO_A2).
                setResolution(new PrintAttributes.Resolution("MyPrinterId",PRINT_SERVICE,50,50)).
                setMinMargins(new PrintAttributes.Margins(5,5,5)). //PrintAttributes.Margins.NO_MARGINS
                build();

        PdfDocument pdfDocument = new PrintedPdfDocument(this,printAttrs);

        int pageNumber = 1;
        
        //Get Content View.
        View contentView = findViewById(R.id.recyclerView);

        // crate a page description
        PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(contentView.getWidth(),contentView.getHeight(),pageNumber).create();

        // create a new page from the PageInfo
        PdfDocument.Page page = pdfDocument.startPage(pageInfo);

        // draw view on the page
        Canvas pageCanvas = page.getCanvas();
        pageCanvas.scale(1f,1f);
        int pageWidth = pageCanvas.getWidth();
        int pageHeight = pageCanvas.getHeight();
        int measureWidth = View.MeasureSpec.makeMeasureSpec(pageWidth,View.MeasureSpec.EXACTLY);
        int measuredHeight = View.MeasureSpec.makeMeasureSpec(pageHeight,View.MeasureSpec.EXACTLY);
        contentView.measure(measureWidth,measuredHeight);
        contentView.layout(0,pageWidth,pageHeight);
        contentView.draw(pageCanvas);

        // do final processing of the page
        pdfDocument.finishPage(page);

        try {
            FileOutputStream fileOutputStream = openFileOutput(exportFileName,MODE_PRIVATE);
            pdfDocument.writeTo(fileOutputStream);
            fileOutputStream.close();

        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

有人可以帮助我以PDF格式打印recyclerView项目的所有内容。我不想使用iText等外部库。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...