如何将图像添加到iText单元格?

时间:2019-07-19 15:36:15

标签: java android pdf nullpointerexception itext7

我正在使用Firebase存储存储一些图像,这些图像要添加到使用iText7 API生成的pdf表中的某些单元格中,我正在Android中使用Java。

到目前为止,我已经设法将图像下载到手机上并进行了检索,然后按照iText7文档的说明,创建了一个Image对象,其中包含图像的路径,并将其添加到单元格中,将代码转发到上述表格。但是在使用了我在他们的文档中看到的所有可能方式后,它仍然无法正常工作。

在这里我将图像下载并添加到手机中

 String url = uri.toString();
DownloadManager downloadManager = (DownloadManager) MenuAdmin.this.getSystemService(Context.DOWNLOAD_SERVICE);
Uri uri1 = Uri.parse(url);
DownloadManager.Request request = new DownloadManager.Request(uri1);

request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationInExternalFilesDir(MenuAdmin.this, DIRECTORY_DOWNLOADS, idreg + ".jpeg");

downloadManager.enqueue(request);
IMG1 = DIRECTORY_DOWNLOADS + idreg + ".jpeg";
try {
    img = Image.getInstance(IMG1);
    cellFirma = new PdfPCell(img, true);

} catch (BadElementException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

当我将细胞(cellfirma)添加到桌子上(tabla10和tabla11)

private void tablas(String ao1, String nfi1, String nfa1, boolean start1, boolean end1, boolean nul2) {

        for (int s = 0; s < 1; s++) {
            tabla9.addCell(redias.get(s));
            Log.d("tabla9", redias.get(s));
            for (int r = 0; r < reini.size(); r++) {
                String rt = reini.get(r);
                if (rt.equals("FIRMA")) {
                    tabla10.addCell(cellFirma);
                } else {
                    tabla10.addCell(reini.get(r));
                    Log.d("tabla10", reini.get(r));
                }
                rt = refini.get(r);
                if (rt.equals("FIRMA")) {
                    tabla11.addCell(cellFirma);
                } else {
                    tabla11.addCell(refini.get(r));
                    Log.d("tabla11", refini.get(r));
                }
            }
            PdfPCell celdai = new PdfPCell(tabla10);
            PdfPCell celdaf = new PdfPCell(tabla11);
            tabla9.addCell(celdai);
            Log.d("tabla9", "TABLA 10");
            tabla9.addCell(celdaf);
            Log.d("tabla9", "TABLA 11");
            for (int t = 0; t < re3.size(); t++) {
                tabla9.addCell(re3.get(t));
                Log.d("tabla9", re3.get(t));
            }
            redias.clear();
            reini.clear();
            refini.clear();
            re3.clear();
            documento(ao1, nfi1, nfa1, start1, end1, nul2);
        }
    }

这是我正在得到的错误(在'tabla10.addCell(cellFirma);'之前提到的代码的以下行中)

--------- beginning of crash
     

E / Android运行时:致命异常:主要       程序:com.japac.pac,PID:7534       java.lang.NullPointerException:尝试从空对象引用中的字段“ float com.itextpdf.text.Rectangle.llx”中读取           在com.itextpdf.text.pdf.PdfPCell。(PdfPCell.java:274)           在com.itextpdf.text.pdf.PdfPTable.addCell(PdfPTable.java:528)           在com.japac.pac.Menu.MenuAdmin.tablas(MenuAdmin.java:715)           在com.japac.pac.Menu.MenuAdmin.access $ 2900(MenuAdmin.java:126)           at com.japac.pac.Menu.MenuAdmin $ 15 $ 1 $ 1 $ 1.onSuccess(MenuAdmin.java:667)           at com.japac.pac.Menu.MenuAdmin $ 15 $ 1 $ 1 $ 1.onSuccess(MenuAdmin.java:580)           在com.google.android.gms.tasks.zzn.run(未知来源:4)           在android.os.Handler.handleCallback(Handler.java:789)           在android.os.Handler.dispatchMessage(Handler.java:98)           在android.os.Looper.loop(Looper.java:164)           在android.app.ActivityThread.main(ActivityThread.java:6944)           在java.lang.reflect.Method.invoke(本机方法)           在com.android.internal.os.Zygote $ MethodAndArgsCaller.run(Zygote.java:327)           在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

这是我期望达到的目标

where it says IMAGE i want to insert the sing

0 个答案:

没有答案