在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变量的值是多少?文件名。