我想用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();
}
答案 0 :(得分:0)
在以下几行中有90%的可能性抛出异常:
makeBackground(document);
makeText();
makeTable(document);
afterTable(document);
这会导致您的应用程序使用PDF标题创建PDF,但没有预告片(当您close()
文档时会编写预告片。)
如果您没有告诉我们您从Exception
收到的错误消息,则没有人
能够帮到你。
可能的原因:
在任何情况下:这不是与iText相关的问题,因为你说它在你制作可运行的jar之前一直有效。由于它在可运行的jar外部工作,因此代码可能没有问题。
您可能遇到配置问题:您在创建时遇到了问题(例如:您自己创建了iText.jar而忘记插入.afm
文件)。
远程解决这样的配置问题非常困难,特别是因为如果PDF以%%EOF
结尾,您没有告诉我们抛出了哪个异常,PDF的大小(可能为0)。