如何摆脱从SSRS导出的PDF中的空白页面

183 pdf reporting-services ssrs-2008 ssrs-2008-r2 ssrs-2012

我有一份SSRS报告.当我试图导出到PDF时,由于它的宽度,它需要4页.其中第2页和第4页显示我的表中的一个字段.所以我尝试将报告属性中的布局大小设置为width = 18in和height = 8.5in.

它在PDF的单页中给了我整个表格.但我得到第2和第4页空白.我正在做的方式是不正确的,还是如何摆脱那些空白页面?

Nat*_*ths 330

在BIDS或SSDT-BI中,执行以下操作:

  1. 单击报告>报告属性>布局选项卡(SSDT-BI中的页面设置选项卡)
  2. 记下页面宽度,左边距,右边距的值
  3. 关闭并返回设计界面
  4. 在"属性"窗口中,选择" 正文"
  5. 单击+符号以展开"大小"节点
  6. 记下宽度的值

正确渲染PDF正文宽度+左边距+右边距必须小于或等于页面宽度.当您看到正在渲染的空白页时,几乎总是因为主体宽度加上边距大于页面宽度.

请记住:( 主体宽度+左边距+右边距)<=(页面宽度)

  • 我发现在这里工作的规则不是(主体宽度+左边距+右边距)<=(页面宽度)但更像(主体宽度+左边距+右边距)<(页面宽度-1厘米) (15认同)
  • 不行.我的身体宽度小于"报告宽度 - 边距".我仍然有很多空白页面. (14认同)
  • 当您第一次创建报表时,构建器会在屏幕的宽度上运行一个白色区域(Nathan提到的"Body")来放置内容.通常,在较新的信箱屏幕上,此白色区域宽17英寸.不直观的是,这被认为是一个可打印的对象,需要缩小到你放在它上面的东西的宽度.如果你不这样做,你会得到空白的页面,无论每个人提到的其他东西. (4认同)
  • @adolfgarlic我发现页面宽度设置并不总是在报表属性下正常工作.您是否尝试在Visual Studio中手动拖动报表宽度?在我将头撞到墙上一段时间后,我今天解决了这个问题.值得检查你的页眉/页脚宽度,它们可能有点太大了. (2认同)
  • 另外需要注意的是标题的高度+正文+页脚+顶部+底部边距<页面高度,否则页面将在多个页面中流动. (2认同)

Chr*_*lis 110

试试另一件事情是设置报表属性称为ConsumeContainerWhitespaceTrue(默认为false).这就是我如何解决的问题.

  • 这当然是我的关键.我总是利用内森接受的答案,结果喜忧参半.在每个Nathan的解决方案都没有解决问题的情况下,这个解决了这个问题.请注意,你仍然应该利用内森的建议. (4认同)
  • 是的,也为我工作过.我有一个带有列组的tablix的容器.很明显,容器正在增长以包含列组,并且不占用容器的空白区域,它将溢出页面边界. (2认同)
  • 哎呀,拿回来。我正在使用VS 2017 SSRS / SSDT; 我花了一段时间才弄清楚您必须使用Properties _window_来找到此功能,而不要使用“ Report Properties ...”对话框。 (2认同)

sio*_*orn 28

经过几个小时的努力解决这个问题,我偶然发现了一个对我有用的解决方案:

在SSDT(2012)中,我最初的页面设置/页面单位设置为厘米.当我将其更改为英寸时,奇怪的是,我能够将报告导出为PDF,而不会将其他所有页面都空白.

在此输入图像描述


Ωme*_*Man 20

在编辑SSRS文档时,在计算任何数学之前,最好先在设计界面上执行此操作(显示Visual Studio 2012,但可以在其他版本中完成).

红色圆圈中的以下数字下方会映射到以下步骤:

  1. 在设计图面中,有时编辑器会创建一个page比实际控件更大的编辑器; 因此打印了鬼区.
  2. 调整大小到控件.从视觉上看宽度/高度,看看你是否不能 设计图面上引入页面,将其大小调整到控件实际需要的空间,而不是更多.
  3. 然后尝试创建一个PDF,看看是否修复它.
  4. 如果#3不能解决问题,那么有控制要求太多实际的页面大小和去在任一长度/宽度.因此,需要使控件的大小更小以适应更小的页面大小.

手动修复的步骤


此外,在某些情况下,人们可以通过设置只需更改报告页面的属性ConsumeContainerWhitespacetrue自动消耗的空间.

  • 谢谢!我知道它必须比通过数字和数学更简单.我不知道它只是因为报告体那么大而打印空白. (2认同)

Hec*_*Mac 17

如果来自SSRS的页面为空白,则需要调整报表布局.这比运行输出和后期处理以修复布局问题的副作用要有效得多.

在推动利润边界方面,SSRS非常挑剔.只需通过调整报表上的文本框或其他控件,很容易意外地扩大/延长报表.仔细检查报告表面的宽度和高度属性,并尽可能地挤压它们.注意大页眉和页脚.


Jer*_*son 17

对我来说,问题在于SSRS故意将您的白色空间视为您想要获得荣誉:

在此输入图像描述

除了空白区域,请确保没有合适的边距.

  • 嗨@jeremy-thompson,你的提示非常方便。干杯 (2认同)
  • 删除右边距对我有用,并且不会影响 Web 报告查看器或 PDF 中的渲染。 (2认同)
  • 5年后,这就是我的目标。 (2认同)

小智 6

您是否尝试过查看报告右侧是否有空白?如果是这样,您可以将其拖回报告末尾,然后将报告背景拖回同一位置。


Jos*_*ake 5

除了边缘,这是迄今为止最常见的问题,我还看到了另外两种可能性:

  1. 使用+以连接文本.你应该使用&.
  2. 文本溢出指定文本框的宽度.因此,如果您的文本框仅包含30个字符,并且您尝试在其中填充300,则最终可能会有额外的页面.


小智 5

在报表 (myReport.rdlc) 的属性选项卡上,将“Keep Together”属性更改为 False。我已经为这个问题苦苦挣扎了一段时间,这似乎解决了我的问题。 在此输入图像描述


小智 5

我已经在SSRS工作了10多年,上面的答案就是答案。但。如果什么都不起作用,并且您完全塞满了...,请从报告中删除项目,直到问题消失。一旦确定了引起问题的行或报表项目,就将其放入矩形容器中。而已。已经帮助了我们很多次!多余的页面主要是由于报表项目超出了右边距。当所有其他方法均失败时,将东西放在项目右侧的矩形或空白矩形中可以阻止这种情况的发生。祝你好运!


crh*_*225 5

我最近继承了一份需要进行一些更改的报告。遵循上述所有建议后,它没有帮助。该报告历史上有这个额外的页面,但没有人能找出原因。

我右键单击 tablix 并选择属性。选中了一个复选框,表示之后添加分页符。删除后,它现在打印在一页上。

在此输入图像描述


vin*_*456 -4

我已成功使用 pdftk 删除 pdf 中我不想要/不需要的页面。您可以在这里下载该程序

您可以尝试类似以下的操作。摘自此处的示例

从 in1.pdf 中删除“第 13 页”以创建 out1.pdf pdftk in.pdf cat 1-12 14-end 输出 out1.pdf

或者:

pdftk A=in1.pdf cat A1-12 A14-结束输出 out1.pdf