我使用lowagie/iTextPDF在Java中生成PDF,并且在Firefox和Chrome中显示输出时出现问题,但IE8显示它们正常。为什么生成的PDF在Internet Explorer中正确显示,但没有在FireFox或Chrome中显示?
Firefox和铬显示乱码,这样的:
%PDF-1.4%2 0 OBJ <>流x1B1C#@ 0#TM>}深航 nO?8 1 a غ y ӓB $ :9XC a./f { $ o - $?Ө^c/012'E j }WT/Y<? 5* endstream endobj 4 0 obj < >>>/MediaBox [0 0 612 1008]/Rotate 90 >> endobj 1 0 obj <> endobj 3 0目标<> endobj 5 0目标<> endobj 6 0目标<> endobj xref 0 7 0000000000 65535 f 0000000379 00000 n 0000000015 00000 n 0000000467 00000 n 0000000211 00000 n 0000000530 00000 n 0000000575 00000 n预告片<] /信息6 0 R /尺寸7 >> startxref 697 %% EOF
以下是servlet代码的一部分:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Document reportPDFDocument = (Document)generateReport(request,conn,baos);
PdfWriter.getInstance(reportPDFDocument, baos);
response.setHeader("Expires", "0");
response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma", "public");
response.setContentType("application/pdf");
response.setHeader("Content-disposition","inline; filename=PrintedSchedule.pdf");
ServletOutputStream out = response.getOutputStream();
baos.writeTo(out);
out.flush();
我已经尝试过更新的Firefox,更新PDF插件,并使确定它被设置为使用Adobe的PDF查看器而不是Firefox的查看器。
作为一个测试,我改变了这一行:
来源:
response.setHeader("Content-disposition","inline; filename=PrintedSchedule.pdf");
要:
response.setHeader("Content-disposition","attachment; filename=PrintedSchedule.pdf");
Internet Explorer中似乎认识到,这是一个的被下载的PDF。我得到了IE中的弹出窗口,上面写着:
你想打开或保存此文件:
名称:PrintedSchedule.pdf 类型:使用Adobe Acrobat文档
但Firefox认为这是一个 'HTM' 的文件,并给出了这一点:
您已选择打开:
PrintedSchedule.pdf 这是一个:HTML文档
在Firefox我再选择安装Adobe Reader打开它,和它的作品确定。但在标题栏中,我注意到它在文件名的末尾添加了“.htm”。
难道这是线索问题?如果是这样,我该如何强制Firefox将其识别为PDF?用户希望PDF在浏览器中显示,而不是在弹出窗口中显示,并且他们不希望单独下载PDF文件。
请随时检查此:http://stackoverflow.com/questions/6089904/itext-generated-pdf-not-shown-correctly-in-chrome – NMALKO 2013-05-06 21:02:25
你有任何这个问题的现场例子,你可以链接到?如果firefox和chrome都不认为它是PDF,那么我猜测头文件有问题。 – 2013-05-14 21:31:53
不幸的是,我没有任何公开的示例。另外,我尝试更改我的servlet代码以完全匹配以下链接的关节,并且它不起作用。 http://itextpdf.com/examples/iia.php?id=173 – robz1330 2013-05-15 16:04:40