Pdfwriter:文档无内容

时间:2018-09-01 18:41:30

标签: java pdf

我正在为公司创建一个自动提醒系统,并且在重写代码时遇到了一些问题(注意:该代码有效-但已进行了必要的重大更改)。数小时令人费解并查看我所做的更改的问题尚未解决。它成功创建了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();

1 个答案:

答案 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方法,除了上面提到的那些问题之外,还有很多其他问题。