创建的Itext,pdf无法由adobe reader打开

时间:2014-06-18 11:14:02

标签: pdf-generation itext adobe-reader

我想用Itext创建pdf,一切正常,直到我制作了runnable jar。 Adobe阅读器显示该消息:“Adobe Reader无法打开xxx.pdf,因为它不是受支持的文件类型,或者因为文件已损坏(例如,它已作为电子邮件附件发送并且未正确解码)。 “ 这是我的代码:

try{
         Document document = new Document();
         writer = PdfWriter.getInstance(document, new FileOutputStream(FILE) );
         document.open();
         makeBackground(document);
         makeText();
         makeTable(document);
         afterTable(document);
         document.close();
    } catch (Exception e) {
        e.printStackTrace();
    }

1 个答案:

答案 0 :(得分:0)

在以下几行中有90%的可能性抛出异常:

makeBackground(document);
makeText();
makeTable(document);
afterTable(document);

这会导致您的应用程序使用PDF标题创建PDF,但没有预告片(当您close()文档时会编写预告片。)

如果您没有告诉我们您从Exception收到的错误消息,则没有人 能够帮到你。

可能的原因:

  • 在可运行的jar外面,你的CLASSPATH中有外部罐子,无法从你的罐子里拿到。
  • 在runnable jar之外,您可以访问运行jar时无法访问的外部资源(字体文件,图像......)。
  • ...

在任何情况下:这不是与iText相关的问题,因为你说它在你制作可运行的jar之前一直有效。由于它在可运行的jar外部工作,因此代码可能没有问题。

您可能遇到配置问题:您在创建时遇到了问题(例如:您自己创建了iText.jar而忘记插入.afm文件)。 远程解决这样的配置问题非常困难,特别是因为如果PDF以%%EOF结尾,您没有告诉我们抛出了哪个异常,PDF的大小(可能为0)。