java - Pdfwriter:文档没有内容
问题描述
我正在为一家公司创建一个自动提醒系统,并且在重写我的代码时遇到了一些问题(注意:代码已经工作了 - 但重要的是,已经做出了很大的改变)。数小时的困惑和查看我所做的更改并没有解决这个问题。它成功创建了 pdf,元数据被正确添加,方法 addLine 也被正确添加。
我已经上传了我的代码(注意:一些私人信息已被删除)。代码显然包含大量变量,但我几乎可以保证数据变量(如街道、公司、邮政编码、支付金额等)没有问题。没有捕获到异常,也没有抛出错误。
https://pastebin.com/zNJFHuyt获取整个代码(必须添加代码,所以我只需删除一些行:D)
Document document = new Document();
String Filepath;
if(companynumber==0)
Filepath = "C:/Users/Gebruiker/Desktop/pyxus/opslagaanmaningen/pyxis/" + debiteur + " " + datenow + ".pdf";
else
Filepath = "C:/Users/Gebruiker/Desktop/pyxus/opslagaanmaningen/zwaluw/" + debiteur + " " + datenow + ".pdf";
PdfWriter Writer = PdfWriter.getInstance(document, new FileOutputStream(Filepath));
document.open();
addMetaData(document);
addTitlePage(document, debiteur, bedrijf, termijn, counts, companynumber);
addline(Writer, counts);
document.close();
解决方案
您的createTable
方法包含以下几行:
ArrayList<String> list = new ArrayList<String>();
String invoice = list.get(i);
这会自动抛出一个IndexOutOfBoundsException
.
此代码包含在循环中
for(int i = 0; i < Reader.getInvoicesList(debiteur).size(); i++)
Reader.getInvoicesList(debiteur).size()
所以这个异常只有在0 或更少时才能被规避。由于您没有观察到异常,因此您的数据必须是这种情况。
但是,这反过来意味着在其中创建的表createTable
永远不会添加到文档中,因为它只是在循环结束时才添加到文档中。
因此,添加到 PDF 中的唯一内容是由
addline(Writer, counts);
您应该清理该createTable
方法,除了上面提到的那些之外,它还有许多问题。
推荐阅读
- cordova - 升级到 Android Pie 后不会发生 onregistered 事件
- c - 如何设计测试用例来验证数据包解码器的节流能力?
- javascript - 如何在 React 应用程序中执行 Python 代码?
- awk - 如何使用 awk 连接特定行?
- google-cloud-platform - 如何删除大查询分区表?
- python - 如何使用 Python 登录网站
- ios - How to find the iOS SDK version that an app is using?
- asp.net-core-2.0 - Azure cosmosdb mongo api error ion asp.net core
- c# - Shorten Code by accessing Dictionary with if
- bash - grep with PCRE on macOS