Jasper 报告详细带数据未显示在 Edge 浏览器中

问题描述 投票:0回答:2

我面临的有关 jasper 报告的问题是我的报告的详细带数据未显示在边缘浏览器中。在其他浏览器上,报告完美显示。 我已将 jar 和软件从 6.1 更新到 6.3,因为 6.1 不支持 Edge 浏览器,但问题仍然存在。我还将框架放在详细带字段后面(出于测试目的),但什么也没发生。 我想补充的一件事是,我选择了空白页面,以防没有数据类型和报告显示空白报告。从中可能推断出什么。 我想补充的一件事是,这个问题发生在 pdf 报告中

java jasper-reports microsoft-edge export-to-pdf
2个回答
0
投票

好的。问题背后的原因是向报告控制器发送了两个请求。因此,报告中未填充数据。我在控制器中添加了一个代码以避免双重请求。

   String userAgent = request.getHeader("user-agent");
            System.out.println(userAgent);
            if(userAgent.contains("Edge")){
                String dlnaHeader = request.getHeader("getcontentfeatures.dlna.org");
                System.out.println(dlnaHeader);
                if(dlnaHeader == null ){
                    System.out.println("Looks like a fake extra Edge request on PDF viewer. Ignore it.");
                    //return null;
                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
                    byte[] result = baos.toByteArray();
                    response.setContentType("application/pdf");
                    response.setHeader("Content-disposition","inline; ");
                    response.setContentLength(result.length);               
                    ServletOutputStream sos = response.getOutputStream();
                    sos.write(result);
                    return null;
                }
            }

添加此代码后,我的报告在边缘浏览器中显示详细带中的数据。希望它也能帮助其他人。


0
投票

这对我有帮助:
该问题是由内部 SWT 浏览器行为仍然依赖(默认情况下)IE11 引起的。正确设置 WebView2 组件以强制使用 Edge 引擎应该可以解决问题。

解决此问题的步骤:

  1. 从官方网站下载 Microsoft Edge WebView2 Runtime。最好的解决方案是选择“固定版本”x64。

  2. 使用 7-zip 等工具将下载的包解压到方便的目录

  3. 编辑 Jaspersoft Studio Professional.ini 文件,附加以下两个 Java 属性(替换为正确的 WebView 文件位置): -Dorg.eclipse.swt.browser.DefaultType=edge -Dorg.eclipse.swt.browser.EdgeDir=C:\dev\webview

资源

© www.soinside.com 2019 - 2024. All rights reserved.