Java Itext生成的pdf在打开时抛出错误
我使用的是itext pdf版本5.3.4。直到最近,代码工作正常,但客户端需要一些修改,现在打开生成的pdf时,显示以下错误“”此页面上存在错误。Acrobat可能无法正确显示页面。请与创建pdf文档的人员联系以更正问题” 我将把下面的代码放在我认为是错误的地方,并对其进行一点解释。基本上,我有一个我正在迭代的行集合,我希望将内容显示在一起(这就是我使用generalTable变量的原因)。下面是代码,如果我能提供更多详细信息,请让我知道: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
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包含来自我们客户的数据,所以提供这样的样本是一件微妙的事情。也许代码可以帮助你,如果不能,我将不得不找到另一种方法。