我正在使用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)
这是我期望达到的目标