首页 > 解决方案 > Android将listview数据转换为pdf文件并保存

问题描述

我有一个自定义列表视图,我想从整个列表视图中制作 pdf。我参考了很多帖子但没有找到谁将整个列表项转换为 pdf。我正在尝试这个及其显示错误:

pdf.setOnClickListener(new View.OnClickListener() {
                    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
                    @Override
                    public void onClick(View view) {

                        String state = Environment.getExternalStorageState();
                        if (!Environment.MEDIA_MOUNTED.equals(state)) {

                        }
                        File pdfDir = new File(Environment.getExternalStoragePublicDirectory(
                                Environment.DIRECTORY_DOCUMENTS), "MyProject");
                        if (!pdfDir.exists()){
                            pdfDir.mkdir();
                        }

                        File pdfFile = new File(pdfDir, "myPdfFile_new.pdf");

                        try {
                            createPdf();
                        }
                        catch (Exception e){
                            e.printStackTrace();
                        }
                    }
                });
            }

这是我的 createpdf()

@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    private void createPdf() throws IOException {

        PdfDocument document = new PdfDocument();
        PdfDocument.Page page = null;
        // crate a page description

        for (int i = 0; i < bitmaps.size(); i++) {
            Bitmap bitmap = bitmaps.get(i);
            PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(1400, 1979, i).create();

            // start a page
            page = document.startPage(pageInfo);
            if (page == null) {
                return;
            }
            Canvas canvas = page.getCanvas();
            canvas.drawBitmap(bitmap, 0, 0, null);
            document.finishPage(page);
        }

        // finish the page


        // write the document content
        fileHandler = new FileHandler();
        File pdf = fileHandler.getNewFileToWrite(AppConstants.FileExtensions.PDF); //crete and get file

        try {
            document.writeTo(new FileOutputStream(pdf));
        } catch (IOException e) {

        }

        // close the document
        document.close();

    }

在此处输入图像描述

我的列表视图中包含大量项目,那么如何将整个列表视图转换为 pdf。感谢您的所有建议

标签: androidlistviewpdf

解决方案


我会说遍历要写入文件的数据,然后在创建 PDF 文件时将相同的数据复制到 PDF 文件。


推荐阅读