在ReportViewer和导出的PDF中查看时显示的页数不同。 例如:报告查看器的一个页面中显示50条记录。但是当导出到PDF 45 reords进入第1页时,其余的进入第2页。
尝试搜寻: 1)删除顶部和底部边距。 2)减少了#34;交互式页面大小"匹配页数。 但它并不一致,因为它在不同数量的记录中表现不同。
有人能告诉我如何在ReportViewer和导出的PDF之间实现同步?
由于
答案 0 :(得分:0)
简短回答 - 你不能做你想要做的事情:不同的渲染器处理分页的方式不同,但适当的输出。
HTML渲染器针对基于屏幕的阅读进行了优化,并且通常允许每页的内容比打印渲染器更多,因为打印渲染器受其格式化的纸张大小的限制。因此,HTML渲染器允许更少页面上的更多内容以获得更好的浏览器体验,而打印和PDF渲染器必须严格符合页面长度。
最好的例子是Excel渲染器 - 在大多数情况下,Excel渲染器将整个报表渲染到单个工作表上(对于在组页脚上设置分组和分页符的报表,它将在每个组上呈现自己的工作表) 。您不希望Excel渲染器人工创建工作表以尝试分页"您的报告或将其全部放在一个工作表中,但在每个" page"中将标题插入电子表格行。它做了恰当的事情,即将所有数据都包含在一个大工作表中,即使这可能在逻辑上被认为是一个大的"页面"。
HTML呈现器页面长度由报告的InteractiveHeight属性确定(更准确,受影响)(在报告的“属性”窗格的InteractiveSize属性中)。但是,交互式高度是近似值而不是固定的分页符设置,即使将InteractiveHeight设置为与目标页面长度相同的长度,您的分页符仍可能不符合打印版本。这是因为HTML呈现器会改变页面长度以更好地将数据组合在一起,因此交互式页面中断发生在设置交互式高度的周围,但并非总是如此。
这是您的方案中发生的情况,其中报表查看器在一个页面上显示50条记录,但PDF在第一页上有45条,在第二页上有5条。报告查看器正在做出决定,因为只有少数记录可供显示,它只会将它们全部包含在一个页面上,而不是强制用户滚动,即使超出了交互高度。因此,您可以获得更好的用户体验,但渲染器之间的页面差异。关于报告的重要之处在于数据和在该渲染器中处理该数据的经验,而不是无论您如何看待页面都是相同的长度。
请参阅渲染行为的this discussion,了解有关您尝试实现的目标无法实现的更多信息。只需教育您的用户浏览器分页已针对其观看乐趣进行了优化。