我的图像 return 在 PDF 文档中为空白

My images return as blank in PDF document

在我的应用程序中,我将图片上传到我公司的服务器 这些图像被转换为​​pdf文档并上传

我正在为此使用内置的 PDF 文档,现在我的问题是页面是动态的,具体取决于用户选择或用相机拍摄的图像数量,图像被放入 ARRAYLIST(String) 然后我调用照片的位置并使用 canvas 将其绘制为 pdf

现在我的问题是生成的 pdf 文档带有适当的页码 IE。如果用户选择 4 张图片,它 returns 4 页但没有图片

我发现了问题我的第二个 for 循环无法正常工作,因为它没有给出我想要的数字广告

PDF 代码

    PdfDocument document=new PdfDocument();
            // crate a page description
            PdfDocument.PageInfo pageInfo;
            PdfDocument.Page page;
            Canvas canvas;
            int i;

            Bitmap image;

**here I loop for page Creation**

            for (i=0; i < list.size(); i++)  {

                pageInfo=new PdfDocument.PageInfo.Builder(3000, 6000, 1).create();
                page=document.startPage(pageInfo);

这里我循环改变图片在数组列表中的位置 这并没有像它应该的那样循环遍历数组列表位置

for(int t = 0; t< list.indexOf(0); t+=1){

                    canvas=page.getCanvas();
                    image=BitmapFactory.decodeFile(String.valueOf(list.get (t)));
                    image.setDensity(DENSITY_XHIGH);
                    canvas.drawBitmap(image, 1, 1, null);
                    canvas.setDensity(DENSITY_XHIGH);
                }



            document.finishPage(page);
        }


        String directory_path=Environment.getExternalStorageDirectory().getPath() + "/mypdf/";
            File file=new File(directory_path);
            if (!file.exists()) {
                file.mkdirs();
            }
            String timeStamp=(new SimpleDateFormat("yyyyMMdd_HHmmss")).format(new Date());
            String targetPdf=directory_path + timeStamp + ".pdf";
            File filePath=new File(targetPdf);
            try {
                document.writeTo(new FileOutputStream(filePath));
                Toasty.info(this, "PDF Created", Toast.LENGTH_LONG).show();
            } catch (IOException e) {
                Log.e("main", "error " + e.toString());
                Toasty.error(this, "Error making PDF" + e.toString(), Toast.LENGTH_LONG).show();
            }
            // close the document
            document.close();

1.Use PrintAttributes.build() 正确设置 pdf 的属性

  1. 并将 printattrs 传递给 printerpdfDocument(context,/*print attributes obj goes here */)

  2. 创建一个 Rect() 对象

  3. 使用 rect() 对象在 forloop 中创建综合浏览量并将这些综合浏览量添加到文档中

  4. User FileOutputStream(//你的pdf文件),将其传递给文档,然后

fileOutPutstream = new FileOutputStream(pdffilename);
doucument.writeTo(fileOutPutstream);
doucument.close();
fileOutPutstream.close(); // close your stream 

以上是粗略的实施,这应该会给你一个继续下去的想法。