在java的HTTP请求中生成PDF作为输出流

在java的HTTP请求中生成PDF作为输出流,java,http,pdf,Java,Http,Pdf,我使用以下代码片段在java的HTTP请求中生成PDF作为输出流 代码是:- webAppAccess.getHttpServletResponse().setContentType("application/pdf"); try { // step 1 Document document = new Document(); // step 2 PdfWriter.g


我使用以下代码片段在java的HTTP请求中生成PDF作为输出流
代码是:-

        webAppAccess.getHttpServletResponse().setContentType("application/pdf");

        try {
            // step 1
            Document document = new Document();
            // step 2
            PdfWriter.getInstance(document, webAppAccess
                    .getHttpServletResponse().getOutputStream());
            // step 3
            document.open();
            // step 4
            document.add(new Paragraph("Hello World"));
            document.add(new Paragraph(new Date().toString()));
            // step 5
            document.close();
        } catch (DocumentException de) {
            throw new IOException(de.getMessage());
        }
我在屏幕上看到pdf

%PDF-1.4%���� 2 0 obj流x�+�R �26秒�00SI�2P�5.�1.���BҸ4>>>/MediaBox[0 0 595 842]/Parent 3 0 R/Contents 2 0 R/类型/页面>>endobj 1 0 obj endobj 3 0 obj endobj 5 0 obj endobj 6 0对象endobj外部参照0 7 0000000000 65535 f 0000000 331 00000 n 00000000 15 00000 n 0000000 419 00000 n 0000000 174 00000 n 0000000 470 00000 n 0000000 5150 00000 n拖车> %iText-5.4.0开始外部参照668%%EOF



请帮我解决同样的问题

您可能需要添加一个标题,其中您提到的响应是一个附件->

ByteArrayOutputStream baos = // make a bytearray output from the document
// setting some response headers
response.setHeader("Expires", "0");
response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma", "public");
response.setHeader("Content-Disposition", "attachment; filename=filename.pdf");
// setting the content type
response.setContentType("application/pdf");
response.setContentLength(baos.size());
BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream());

baos.writeTo(bos);
bos.flush(); 
bos.close();
response.addHeader("Content-Disposition", "attachment; filename=" + pdfFileName);

谢天谢地,终于成功了!!!,我成功地在“新建”选项卡中打开了.PDF文件,从developerNT的角度单击任一按钮或链接目标应为balnk,例如(target=\u blank)

您需要设置内容类型标题。您返回的数据是PDF,但浏览器不知道它是PDF。我应该为此添加什么代码?能不能请你给我…非常感谢,但它仍然不能工作相同的错误你确定该文件正常工作时,你不试图通过http服务?i、 e.您是否尝试将文件写入磁盘并验证它是否从hd打开?是的,它保存在磁盘(D:)中,但我的问题与Hi Amit相同,PdfileName变量的值是多少?文件名。