Java Itext生成的pdf在打开时抛出错误

Java Itext生成的pdf在打开时抛出错误,java,pdf,pdf-generation,adobe,itext,Java,Pdf,Pdf Generation,Adobe,Itext,我使用的是itext pdf版本5.3.4。直到最近,代码工作正常,但客户端需要一些修改,现在打开生成的pdf时,显示以下错误“”此页面上存在错误。Acrobat可能无法正确显示页面。请与创建pdf文档的人员联系以更正问题” 我将把下面的代码放在我认为是错误的地方,并对其进行一点解释。基本上,我有一个我正在迭代的行集合,我希望将内容显示在一起(这就是我使用generalTable变量的原因)。下面是代码,如果我能提供更多详细信息,请让我知道: PdfPTable gene

我使用的是itext pdf版本5.3.4。直到最近,代码工作正常,但客户端需要一些修改,现在打开生成的pdf时,显示以下错误“”此页面上存在错误。Acrobat可能无法正确显示页面。请与创建pdf文档的人员联系以更正问题”

我将把下面的代码放在我认为是错误的地方,并对其进行一点解释。基本上,我有一个我正在迭代的行集合,我希望将内容显示在一起(这就是我使用generalTable变量的原因)。下面是代码,如果我能提供更多详细信息,请让我知道:

            PdfPTable generalTable = new PdfPTable(2);
            generalTable.setKeepTogether(true);
            generalTable.setWidthPercentage(100);
            Iterator rows = objects.iterator();
            String ratingCellText = "";
            while (rows.hasNext()) {
                SupplierSearchRecord rec = (SupplierSearchRecord)rows.next();
                if (rec.getMgID() == mgVO.getId() &&
                        rec.getGaID() == gzVO.getId()) {
                    String cellText = "";
                    if (company != rec.getCompanyId()) {
                        if (ratingCellText.length() > 0) {
                            PdfPCell myCell1 = PdfUtil.makeCell(simpleFont, PdfUtil.getText(ratingCellText));
                            myCell1.setBorder(Rectangle.TOP);
                            myCell1.setColspan(2);
                            generalTable.addCell(myCell1);
                            ratingCellText = "";
                        }
                        generalTable.addCell(PdfUtil.makeCell(simpleFont, PdfUtil.getText("\n\n" + rec.getCompanyTitle())));
                        String duns = "\n\n" + ((isNotEmpty(rec.getCompanyDuns()))?txtUtil.msg("optioncompanyDuns")+": ":"") +
                                   PdfUtil.getText(rec.getCompanyDuns()) ;
                        generalTable.addCell(PdfUtil.makeCell(simpleFont, duns));

                        String tel = ((isNotEmpty(rec.getCompanyPhone1()))?"    Tel: ":"") +
                                   PdfUtil.getText(rec.getCompanyPhone1()) +
                                  ((isNotEmpty(rec.getCompanyPhone1()))?", ":"") ;
                        String fax = ((isNotEmpty(rec.getCompanyFax()))?"Fax: ":"") +
                                   PdfUtil.getText(rec.getCompanyFax()) +
                                  ((isNotEmpty(rec.getCompanyFax()))?", ":"") ;
                        String homePage = ((isNotEmpty(rec.getCompanyInternetAddress()))?txtUtil.msg("optioncompanyInternetAddress")+": ":"") +
                                           PdfUtil.getText(rec.getCompanyInternetAddress()) +
                                          ((isNotEmpty(rec.getCompanyInternetAddress()))?", ":"") ;
                        String email = ((isNotEmpty(rec.getCompanyEmail()))?"Email: ":"") +
                                   PdfUtil.getText(rec.getCompanyEmail()) +
                                  ((isNotEmpty(rec.getCompanyEmail()))?", ":"") ;

                        cellText = "\n" + PdfUtil.getText(rec.getCompanyAddress()) + ", " + PdfUtil.getText(rec.getCompanyPostalCode()+ ", " + rec.getCompanyCity() + ", " + rec.getCompanyCountryTitle()) + "\n" +
                                            tel +
                                            fax +
                                            homePage +
                                            email;
                        PdfPCell myCell = PdfUtil.makeCell(simpleFont, PdfUtil.getText(cellText));
                        myCell.setBorder(Rectangle.BOTTOM);
                        myCell.setColspan(2);
                        generalTable.addCell(myCell);
                    }
                    company = rec.getCompanyId();
                    document.add(generalTable);
                    generalTable.deleteBodyRows();

谢谢并致以最诚挚的问候。

“请与创建pdf文档的人员联系以更正此问题“每个开发人员都想阅读这篇文章……请同时分享一份说明该问题的示例PDF。也就是说,您是否使用更新的iText版本测试了代码?@mkl这是一个标准的Adobe Reader错误。我没有用更新的版本测试代码,我会尝试一下。谢谢你的建议。如果你分享了一个由你的代码生成的示例PDF,人们可以分析它,寻找Adobe Reader不高兴的原因。@mkl我不能这样做,因为样本pdf包含来自我们客户的数据,所以提供这样的样本是一件微妙的事情。也许代码可以帮助你,如果不能,我将不得不找到另一种方法。