【发布时间】:2020-01-23 14:16:21
【问题描述】:
我一直在寻找这个问题的答案。如何使用 BIRT + eclipse 进行双面打印或创建双面 PDF?我生成包含多个报告的文档,并且这些报告通常是多页的。如何强制标题页始终为“第 1 页”并避免下一个报告流到上一个报告的背面?
【问题讨论】:
我一直在寻找这个问题的答案。如何使用 BIRT + eclipse 进行双面打印或创建双面 PDF?我生成包含多个报告的文档,并且这些报告通常是多页的。如何强制标题页始终为“第 1 页”并避免下一个报告流到上一个报告的背面?
【问题讨论】:
这不是 BIRT 主题。
当您说您从 BIRT 打印时,技术上并非如此。您使用 BIRT 创建一个 PDF 文件并以某种方式打印该文件。
遗憾的是,PDF 文件格式不支持在给定的逻辑分页符处执行物理分页符的指令。
因此,除非您在生成时知道生成的文件是否会双面打印,否则无法控制。
如果您知道文件将在大多数情况下进行双面打印,您可能会在某些位置插入空白页(可能带有“此页故意留白”的文本),但如果文件是单面印刷。
无论如何,这仍然给您留下两个任务:
1) 当报表的新部分开始时使用不同的母版页。
2) 找出插入空白页的位置。
第一个任务其实很简单。 在 BIRT 中,您可以有不同的母版页(例如,“首页”和“后续页”)。 您可以选择要在 BIRT 中布局元素的属性中使用的母版页。 试试看!
第二个任务超出了 BIRT 的范围,您需要在此处进行某种 PDF 后处理。思路如下:
使用 BIRT 创建 PDF 文件。 使用 BIRT 的 TOC 条目属性创建 PDF TOC(也称为大纲)。如果您在 Adobe Reader 中打开文件,这是左侧显示的文档结构。
使用 PDF 后处理器(例如基于 iText 或其他)来阅读目录条目。 每个条目都有关于它指向的页面的信息。 现在,如果要进行双面打印并且条目从偶数页(从 1 开始)开始,请在此页之前插入空白页。
这是可能的,但至少需要几个小时的 Java 编程(或几天,取决于您使用所选 PDF 处理工具的经验)。
【讨论】: