asc002 2013-08-01 02:48 采纳率: 0%
浏览 1730

ireport,在java工程中预览PDF,被识别为文件下载

Class.forName(driver).newInstance();
Connection conn = DriverManager.getConnection(host,
user, pass);
Map parameters = new HashMap();
parameters.put("SUBREPORT_DIR", reportFilePath);
if (para != null && !para.equals("0")) {
parameters.put("Id", para);
}
if (organizationType != null && !organizationType.equals("")) {
parameters.put("organizationType", organizationType);
}
if (organizationName != null && !organizationName.equals("")) {
parameters.put("organizationName", organizationName);
}
if (!workerType.equals(""))
{
workerType= new String(workerType.getBytes("ISO8859_1"), "utf-8");
parameters.put("workerType", workerType);
}

    byte[] bytes = JasperRunManager.runReportToPdf(
            reportFile.getPath(), parameters, conn);

    response.setContentType("application/pdf");
    response.setContentLength(bytes.length);
    ServletOutputStream outputStream = response.getOutputStream();
    out.clear();
    out = pageContext.pushBody();
    outputStream.write(bytes, 0, bytes.length);
    outputStream.flush();
    outputStream .close();
    JasperPrint print = JasperFillManager.fillReport(
            reportFile.getPath(), parameters, conn);
    JasperPrintManager.printReport(print, true); 
    conn.close();

这是生成PDF预览的代码, 在我自己机子上是正常预览PDF,而别人的机子是变成一个文件下载。。。是不是因为浏览器插件问题呢,还是代码有问题,,请大神指教

  • 写回答

1条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-01-09 19:22
    关注

    这是因为浏览器的设置导致的。


    代码中已经设置了响应内容的MIME类型为"application/pdf",表明返回的是一个PDF文档。但是,有的浏览器可能会将所有的"application/pdf"响应视为一个下载请求,而不是预览请求。


    您可以尝试在代码中添加以下内容来解决这个问题:

    response.setHeader("Content-Disposition", "inline; filename=report.pdf");
    

    这会告诉浏览器将响应视为内联(即嵌入到网页中)的PDF文档,而不是下载文件。


    需要注意的是,不同浏览器对于这种设置可能有不同的支持,所以您需要测试一下这个解决方案是否可行。


    此外,如果代码中的JasperPrintManager.printReport()方法调用没有被注释掉的话,这会导致在本地打印PDF文档,而不是在浏览器中预览。因此,您应该将其注释掉。

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据