我正在为公司创建一个自动提醒系统,并且在重写代码时遇到了一些问题(注意:该代码有效-但已进行了必要的重大更改)。数小时令人费解并查看我所做的更改的问题尚未解决。它成功创建了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();
答案 0 :(得分:0)
您的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或小于0时,才能规避该异常。由于您没有观察到异常,因此您的数据一定是这种情况。
但是,这反过来意味着,在createTable
中创建的表永远不会添加到文档中,因为它仅在该循环结束时添加到文档中。
因此,添加到PDF的唯一内容是绘制的线条
addline(Writer, counts);
您应该清理createTable
方法,除了上面提到的那些问题之外,还有很多其他问题。