如何在报告中插入两页

2024-02-25

我面临一个问题,还有两个问题jrmxl文件。我想加入其中pdf文件,但每个都在一页中。

我看到了下面的一些提示,但我不知道它们是否是最好的,因为我的第一个文件有 3 个频段:title, detail and summary。第二个有detail and summary.

所以如果可能的话我想保留这种格式,因为摘要中有页计数器。

我已经尝试过了,但我的第二页是空白的并且高度为 5 厘米。

列表页面 = new ArrayList();

for (String caminhoRelatorio : caminhoRelatorios) {
    reportPath = JasperCompileManager.compileReport(caminhoRelatorio);
    reportPage = JasperFillManager.fillReport(reportPath, parameters, ds);
    pages.add(reportPage);
}

ByteArrayOutputStream baos = new ByteArrayOutputStream();
JRPdfExporter jrPdfExporter = new JRPdfExporter();
jrPdfExporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, pages);
jrPdfExporter.setParameter(JRExporterParameter.OUTPUT_STREAM, baos);
jrPdfExporter.setParameter(JRPdfExporterParameter.IS_CREATING_BATCH_MODE_BOOKMARKS, Boolean.TRUE);
jrPdfExporter.exportReport(); 

那么我需要做什么?


要在一份报告/PDF 中添加多个 JRXML,您可以按照以下方式操作:

考虑以下方法来生成包含 2 个 JRXML 的 PDF 报告,这些 JRXML 已添加到“jrxmlFileNames”列表中

public static void reportGenerator(String reportType, List<String> jrxmlFileNames, 
Datasource dataSource , String SwapFile)
{

    JRConcurrentSwapFile swapFile = new JRConcurrentSwapFile(SwapFile, 102400 , 10);
    JRAbstractLRUVirtualizer virtualizer = new JRSwapFileVirtualizer(1000, swapFile, true);
    Map<String, JRAbstractLRUVirtualizer> parameters = new HashMap<String, JRAbstractLRUVirtualizer>();
    parameters.put(JRParameter.REPORT_VIRTUALIZER, virtualizer);
    try
    {
        if (reportType.equalsIgnoreCase("PDF"))
        {

            try
            {
                JasperReport jreport1 = JasperCompileManager.compileReport(ReportGenerator.class.getResourceAsStream(jrxmlFileNames.get(0)));
                JasperPrint jprint1 = JasperFillManager.fillReport(jreport1, parameters, new JRBeanCollectionDataSource(dataSource.getDataSourceFor1()));

                JasperReport jreport2 = JasperCompileManager.compileReport(ReportGenerator.class.getResourceAsStream(jrxmlFileNames.get(1)));
                JasperPrint jprint2 = JasperFillManager.fillReport(jreport2, parameters, new JRBeanCollectionDataSource(dataSource.getDataSourceFor2()));


                List<JasperPrint> jprintlist = new ArrayList<JasperPrint>();

                jprintlist.add(jprint1);
                jprintlist.add(jprint2);


                String fileName="TESTReport.pdf";
                JRExporter exporter = new JRPdfExporter();
                exporter.setParameter(JRPdfExporterParameter.JASPER_PRINT_LIST, jprintlist);

                exporter.setParameter(JRPdfExporterParameter.OUTPUT_FILE_NAME, fileName);

                exporter.exportReport();

                }
                catch(Exception e)
                {
                    e.printStackTrace();
                }
            }

            swapFile.dispose();

        }
    catch(Exception e)
    {
     e.printStackTrace();
    }

}

在上面的代码中,以下部分将帮助您添加多个 JRXML

    List<JasperPrint> jprintlist = new ArrayList<JasperPrint>();    
    jprintlist.add(jprint1);
    jprintlist.add(jprint2);
    JRExporter exporter = new JRPdfExporter();   
exporter.setParameter(JRPdfExporterParameter.JASPER_PRINT_LIST, jprintlist);

希望能帮助到你!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在报告中插入两页 的相关文章

  • Java 使用服务器证书对 jar 进行签名

    是否可以使用服务器证书来签署 java web start 应用程序 我想知道的是它是否有效 我的服务器有一个受信任的证书 并且我想重复使用同一证书来签署应用程序 现在 我有这样的警告 此 jar 包含其签名者证书的 ExtendedKey
  • 初始向量(IV)的CTR模式使用

    据我所知 CTR 模式不使用初始向量 它只需要一个计数器 用给定的密钥对其进行加密 然后将结果与明文进行异或以获得密文 其他分组密码模式 例如 CBC 在进行加密之前 会使用初始向量对明文进行异或 所以这是我的问题 我在 Java 中有以下
  • Java中如何动态添加charsequence[]中的数据?

    初始化的一种方法charsequence is charsequence item abc def 但我不想以这种方式初始化它 有人可以建议其他方式吗 比如我们初始化的方式string arrays 首先 修复变量声明 charsequen
  • Java泛型 - 实现像map这样的高阶函数

    我决定用 Java 编写一些常见的高阶函数 map filter reduce 等 这些函数通过泛型实现类型安全 但我在一个特定函数中遇到通配符匹配问题 为了完整起见 函子接口是这样的 The interface containing th
  • 使用 Intellij 2017.2 /out 目录构建会重复 /build 目录中的文件

    更新到 Intellij 2017 2 后 构建我的项目会创建一个 out包含生成的源文件和资源文件的目录 这些文件与已包含的文件重复 build并导致duplicate class生成的类的编译器错误 关于 Gradle 或 Intell
  • 在 Java 8 中将对象追加到列表并返回结果?

    有没有一种方法可以将对象附加到列表并以功能性非命令方式在一行中返回结果 如果原始列表也不应该被改变 你会怎么做 Java 8 是允许的 我已经知道如何将两个列表连接到一行中 Source https stackoverflow com a
  • 为什么 hibernate 在一张表中保存两个 @OneToMany 列表?

    想象一下使用 Hibernate 和 JPA 的简化代码如下 Entity class C Id GeneratedValue public long id MappedSuperclass abstract class A Id Gene
  • 使用 google-api-java-client 的 2 足 OAuth

    有谁知道如何将 2 legged OAuth 与 google api java client 一起使用 我正在尝试访问 Google Apps 配置 API 以获取特定域的用户列表 以下不起作用 HttpTransport transpo
  • 如何避免 Java 中的忙旋转

    我有一个多线程应用程序 其中一个线程向另一个线程发送消息 等待线程轮询消息并做出反应 处理锁 像这样 等待线程代码 while true if helloArrived System out println Got hello if bye
  • JFreeChart - 创建移动图表时出现问题

    我在我的 java 应用程序中使用 JFreeChart Problem 我想绘制一个XY面积图 whose 域轴 x 轴 当我们开始绘制数据时应该自动水平滚动 我在中看到了同样的事情时间序列图表但我不想要任何时间系列图表 我只想要滚动的
  • 整数与 int 比较

    我是新来的java 我现在正在学习非原始整数类型java 我知道以下比较无效并引发编译错误 String str c Char chr c if str chr return true 上面的代码片段给了我 Test java lineNu
  • 读取不失真的灰度 PNG 图像文件

    我需要读取和处理大量的灰度 PNG 文件 我的意思是 如果它们在 Photoshop 或 GIMP 中打开 则图像模式为灰度 而不是具有灰度值的 RGB 图像 ImageIO 似乎没有实现这一点 它似乎将所有图像文件视为 sRGB 这会破坏
  • 如何在不同的班级中启动和停止计时器?

    我想测量从传入 HTTP 请求开始到应用程序到达某个点的时间 这两个时间点都位于不同的类中 我将如何启动和停止这些不同类别的计时器 我没有看到使用 MeterRegistry 中的 命名 计时器的方法 我该怎么办呢 您可以使用 AOP 如下
  • Wildfly 10.1 消耗所有核心

    我们最近将银行应用程序从 java 1 6 升级到 1 8 将 jboss 4 x 升级到 wildfly 10 1 我们观察到 java 消耗了机器上可用的所有核心 10 有人可以告诉是什么原因吗 通常情况下 jboss 4 x 的最大
  • 使用 InputStream 通过 TCP 套接字接收多个图像

    每次我从相机捕获图像时 我试图将多个图像自动从我的 Android 手机一张一张地发送到服务器 PC 问题是read 函数仅在第一次时阻塞 因此 从技术上讲 只有一张图像被接收并完美显示 但在那之后当is read 回报 1 该功能不阻塞
  • Eclipse 在单独的窗口中打开代码

    我正在 eclipse 中编程 在两个显示器设置上运行 在其中一台显示器上 我只获得了项目资源管理器和编辑器作为自定义透视图 而在另一台显示器上 我获得了其他工具 例如控制台 调试 任务 变量 断点等 例如 当我单击任务视图中的任务时 这将
  • Java 中 .NET 的 Lambda 表达式

    我最近 再次 从 C 迁移到 Java 但我非常怀念 lambda 表达式和 C 的 IEnumerable Foreach 之类的东西 所以我正在寻找Java中的lambda表达式库 有比这更好的图书馆吗LambdaJ http code
  • 删除Java中重载的方法

    有2个重载方法 这些方法中的每一个都将一种类型的列表转换为不同类型的列表 但第一种方法使用比较器 class SomeClass public static
  • 混合语言源目录布局

    我们正在运行一个使用多种不同语言的大型项目 Java Python PHP SQL 和 Perl 到目前为止 人们一直在自己的私有存储库中工作 但现在我们希望将整个项目合并到一个存储库中 现在的问题是 目录结构应该是什么样的 我们应该为每种
  • 在没有 ODBC 的情况下从 Java 操作 Access 数据库

    我想从我的 Java 项目操作 Microsoft Access 数据库 accdb 或 mdb 文件 我不想使用 Microsoft 的 JDBC ODBC Bridge 和 Access ODBC 驱动程序 因为 JDBC ODBC 桥

随机推荐

  • 当我使用 bcp 导出 boost 线程时如何克服构建错误?

    我正在使用增强bcp导出工具thread来自 boost 的库 导出库的布局是 Jamroot libs thread build Jamfile v2 boost doc 现在当我跑步时bjam在构建库中让我 boostcpp jam N
  • 所有浏览器都支持 marquee HTML 元素吗?

    可以用吗
  • 为什么 Symfony 在产品环境中缺少开发包?

    我的 Symfony 应用程序有一些仅在开发 测试等方面需要的依赖项 这些是在我的中定义的composer json in the require dev部分 这是我添加它们的方法AppKernel php class AppKernel
  • 将支持库添加到 NuGet 包而不添加为引用

    我有一组 DLL 一些是由项目直接引用的 另一些只是支持这些 DLL 并不用于直接交互 我知道如何添加文件作为 NuGet 的项目引用 将它们放在 lib 文件夹中 但是如何让 DLL 在构建过程中被拾取而不是项目引用呢 NuGet Cod
  • ASP.NET MVC 3 在文章视图中添加评论

    我有文章模型public ICollection
  • 从模型中获取在数据透视表 Laravel 5 中没有条目的所有记录

    我正在尝试弄清楚如何实现以下目标 我找了又找 没有结果 我在 Laravel 5 应用程序中有一个数据透视表 它按预期工作 并在相应模型中具有以下功能 Module php public function sites return this
  • 使用 Python setuptools 的安装后脚本

    是否可以将安装后 Python 脚本文件指定为 setuptools setup py 文件的一部分 以便用户可以运行以下命令 python setup py install 在本地项目文件存档上 或者 pip install
  • Spring框架-在哪里解析JWT以进行自定义声明?

    我创建了一个 Spring JWT 授权应用程序 JWT 包含一些自定义声明 在资源服务器端 我想知道我应该在哪里解析 JWT 令牌来收集和检查这些声明 我应该在控制器或某些过滤器中执行此操作吗 最好的做法是什么 也许你有一些例子 您可以结
  • 无法使用flask-assets从sass文件生成all.css文件

    我厌倦了在我的 Flask 应用程序中使用 css 所以我决定使用 Flask 资产转向 scsshttps github com miracle2k flask assets https github com miracle2k flas
  • Spring ApplicationContext Bean 范围

    当您在 Spring applicationContext xml 文件中创建 Service bean 或 Dao bean 时 这些 bean 的范围是什么 每个访问 Web 应用程序的人都会使用同一个 Bean 实例 还是为每个用户的
  • 如何使用 swing 组件向 JLabel 添加刷新计时器

    我正在创建一个迷宫游戏 并希望在游戏舞台上显示一个计时器 我尝试过使用 java util 但它要求我摆脱我的摆动计时器 我怎样才能在游戏中添加一个令人耳目一新的计时器 此代码用于制作包含按钮窗格和游戏舞台的游戏框架 import java
  • 我可以安全地查询被 WRITE_TRUNCATE 替换的 BigQuery 表吗

    If configuration load writeDisposition https developers google com bigquery docs reference v2 jobs configuration load wr
  • 为 iPad / iPhone 加载不同的启动屏幕

    我想为 iPad 和 iPhone 加载不同的启动屏幕故事板 为此我在 info plist 中添加新条目 如下所示 但它只加载 iPhone 启动屏幕 任何帮助将不胜感激 提前致谢 Way 1 为此 您必须使用两个 xib 一款适用于 i
  • 如何用Java创建停靠面板?

    如何用 Java 创建停靠面板 如果你想使用Swing http en wikipedia org wiki Swing 28Java 29在你的应用程序中的对接框架中 有一些已经存在 InfoNode http www infonode
  • 读取带有unicode字符的文件

    我有一个 asp net c 页面 并尝试读取具有以下字符 的文件并将其转换为 从倾斜撇号到撇号 FileInfo fileinfo new FileInfo FileLocation string content File ReadAll
  • 如何使用 python 列出可用的测试?

    如何列出所有发现的测试 我发现这个命令 python3 4 m unittest discover s 但这并不完全是我想要的 因为上面的命令执行测试 我的意思是让我们有一个包含大量测试的项目 执行时间为几分钟 这迫使我必须等到测试完成 我
  • asp.net mvc从视图修改主文件

    我需要从视图文件 aspx 将类属性添加到正文标记 但该标记位于主文件中 如何从视图访问 body 标签 在你的视图输出中你可以添加一个jQuery http api jquery com addClass 执行此操作的客户端脚本将在页面拼
  • 将货币价值存储为美分/小单位有哪些缺点?

    我注意到一些金融 api 例如用于信用卡处理的 stripe api 要求将金额以美分形式传递 这似乎是一个很好的简化 这让我想知道为什么我不在我当前的应用程序中的所有地方都这样做在我的 Java 代码中使用数据库 NUMERIC 无限长度
  • 停止 shell 通配符扩展?

    有没有办法让编译后的命令行程序告诉 bash 或 csh 它不希望在其参数中扩展任何通配符 例如 人们可能需要一个 shell 命令 例如 foo 简单地返回该字符的 ASCII 数字值 不会 扩展发生在命令实际运行之前 您只能在运行命令之
  • 如何在报告中插入两页

    我面临一个问题 还有两个问题jrmxl文件 我想加入其中pdf文件 但每个都在一页中 我看到了下面的一些提示 但我不知道它们是否是最好的 因为我的第一个文件有 3 个频段 title detail and summary 第二个有detai