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

时间:2008-12-12 14:27:10

标签: pdf reporting-services ssrs-2008 ssrs-2008-r2 ssrs-2012

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

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

13 个答案:

答案 0 :(得分:317)

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

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

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

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

答案 1 :(得分:105)

要尝试的另一件事是将名为ConsumeContainerWhitespace报告属性设置为True(默认值为false)。这就是我如何解决的问题。

答案 2 :(得分:28)

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

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

enter image description here

答案 3 :(得分:20)

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

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

  1. 在设计图面中,编辑器有时会创建一个比实际控件大的page;因此打印了鬼区。
  2. 调整大小到控件。目视查看宽度/高度,看看是否无法在设计图面上 ,将其调整到控件实际需要的空间,不再需要。
  3. 然后尝试创建PDF并查看是否可以修复它。
  4. 如果#3无法解决问题,那么有些控件需要太多的实际页面大小,并且以长度/宽度覆盖。因此,需要将控件的大小设置得更小以适应更小的页面大小。
  5. Steps to manually remediate


    此外,在某些情况下,您可以通过将ConsumeContainerWhitespace设置为true来自动使用空格来更改报告页面的属性。

答案 4 :(得分:18)

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

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

答案 5 :(得分:17)

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

enter image description here

除空格外,请确保没有合适的边距。

答案 6 :(得分:5)

我已经与SSRS合作了10多年,上面的答案就是答案。但。如果没有任何作用,并且你被完全塞满....从报告中删除项目,直到问题消失。确定导致问题的行或报表项后,将其放在矩形容器中。就是这样。帮了我们很多次了!额外页面主要是由流经右边距的报表项引起的。当所有其他方法都失败时,将内容放在项目右侧的矩形或空矩形内可以阻止这种情况发生。祝你好运!

答案 7 :(得分:5)

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

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

答案 8 :(得分:4)

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

答案 9 :(得分:4)

在报告的属性选项卡(myReport.rdlc)上,更改" Keep Together"属性为False。我一直在努力解决这个问题,这似乎解决了我的问题。 enter image description here

答案 10 :(得分:1)

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

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

enter image description here

答案 11 :(得分:1)

如果报表包含子报表,则如果允许子报表和层次结构增长,子报表的宽度可能会推动正文的边界。 我有一个类似的问题出现在子报表可以放在一个单元格(跨越2列)。看起来跨度可以在设计器中包含它并且它在winform或浏览器中呈现得很好,并且最初它可以生成打印机输出(或pdf文件)而不会溢出到多余的页面上。
然后,在更改了一些其他列宽(并且不超过主体宽度加上边距)之后,winform和浏览器渲染看起来仍然看起来很好但是当生成输出(打印机或pdf)时,它增长超过边距并写入右侧每页作为第2(第4等)页面。我可以通过增加放置子报告的colspan来消除我的问题 无论您是否使用子报告,如果您有页面溢出并且您的身体设计适合页面的边缘,请寻找允许增长的东西,将身体的宽度推出。

答案 12 :(得分:-2)

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

您可以尝试以下内容。取自here下的示例

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

或:

pdftk A = in1.pdf cat A1-12 A14-end output out1.pdf

豫ICP备18024241号-1