java导出pdf报表

crazywolf 2011-11-17 03:28:23
急求!java导出pdf的源码,希望各位兄弟姐妹过来帮助一下,我弄的那个pdf导出只有在ie9的情况下是以文件形式导出,其它的浏览器都是在线看的,求解!
...全文
623 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
crazywolf 2011-11-18
  • 打赏
  • 举报
回复
搞定了!明白了原因,谢谢各位捧场,真的不好意思!原来是个小问题,还真给大家添麻烦了!由于我用的struts2,可是我没对pdf文件进行重命名,加上一句

ServletActionContext.getResponse().setHeader(
"Content-disposition",
"attachment; filename="
+ URLEncoder.encode("报价单展示表.pdf", "UTF-8"));
就解决了。
crazywolf 2011-11-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liguangwen86 的回复:]

你的代码怎么写的,按理说生成一个文件的话,浏览器支持你下载的格式,会给你一个弹出窗口,一个"打开",一个"保存",点击保存按钮就可以了
[/Quote]
用了,但是想说的是我系统是64位的,不知道这个是否影响?
crazywolf 2011-11-18
  • 打赏
  • 举报
回复
先向大家说句不好意思,由于昨天有点事没及时回复大家,谢谢大家支持先。代码如下

Document document = new Document(PageSize.A4, 10, 10, 10, 10); HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("application/pdf");
table = new Table(12);//设置列数为3列
table.setBorderWidth(1); //将边框宽度设为1
table.setBorderColor(new Color(0, 0, 255));
table.setPadding(1);
table.setSpacing(1);
//上面两个代码是设置单元格的间距
Cell cell = new Cell(new PDFParagraph("案例信息")); //设置表头的名称
cell.setHeader(true);//是将该单元格作为表头信息显示
cell.setColspan(12);//指定了该单元格占4列,为表格添加表头信息时
table.addCell(cell);
table.endHeaders();
table.addCell(new PDFParagraph("案例代号"));
table.addCell(new PDFParagraph("案例名称"));
table.addCell(new PDFParagraph("案例状态"));
table.addCell(new PDFParagraph("开启日期"));
table.addCell(new PDFParagraph("产品线名称"));
table.addCell(new PDFParagraph("通路名称"));
table.addCell(new PDFParagraph("销售区域名称"));
table.addCell(new PDFParagraph("联系人"));
table.addCell(new PDFParagraph("公司"));
table.addCell(new PDFParagraph("案例型态"));
table.addCell(new PDFParagraph("附件数量"));
table.addCell(new PDFParagraph("备注"));
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
PdfWriter.getInstance(document, buffer);
document.open();
document.add(table);
document.close();
response.setContentLength(buffer.size());//测试
ServletOutputStream out = response.getOutputStream();
buffer.writeTo(out);
out.flush();
shierqu 2011-11-17
  • 打赏
  • 举报
回复
能使用现有工具最好哇,像iText
nanjiwubingqq 2011-11-17
  • 打赏
  • 举报
回复
用Itext 插件吧, 很容易的
天潺 2011-11-17
  • 打赏
  • 举报
回复
你用什么来生成PDF的,iTEXT吗?

在java代码里面,response里面设置一下就可以了【application/pdf】类似这样的
想喝咖啡的貓 2011-11-17
  • 打赏
  • 举报
回复
设置response.setContentType()了吗?


response.setContentType()的String参数及对应类型

<option value="image/bmp">BMP</option>
<option value="image/gif">GIF</option>
<option value="image/jpeg">JPEG</option>
<option value="image/tiff">TIFF</option>
<option value="image/x-dcx">DCX</option>
<option value="image/x-pcx">PCX</option>
<option value="text/html">HTML</option>
<option value="text/plain">TXT</option>
<option value="text/xml">XML</option>
<option value="application/afp">AFP</option>
<option value="application/pdf">PDF</option>
<option value="application/rtf">RTF</option>
<option value="application/msword">MSWORD</option>
<option value="application/vnd.ms-excel">MSEXCEL</option>
<option value="application/vnd.ms-powerpoint">MSPOWERPOINT</option>
<option value="application/wordperfect5.1">WORDPERFECT</option>
<option value="application/vnd.lotus-wordpro">WORDPRO</option>
<option value="application/vnd.visio">VISIO</option>
<option value="application/vnd.framemaker">FRAMEMAKER</option>
<option value="application/vnd.lotus-1-2-3">LOTUS123</option>
liguangwen86 2011-11-17
  • 打赏
  • 举报
回复
你的代码怎么写的,按理说生成一个文件的话,浏览器支持你下载的格式,会给你一个弹出窗口,一个"打开",一个"保存",点击保存按钮就可以了
dragonsky_w 2011-11-17
  • 打赏
  • 举报
回复
这个不懂……SF……呵呵……支持……

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧