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

我有一个SSRS报告。 当我试图导出为PDF时,由于它的宽度,它占用了4页。第2页和第4页显示我的字段中的一个表。 所以我试图设置报告属性的布局大小为宽= 18in和高= 8.5in。

它把整个表格放在一个PDF页面中。 但是我得到第二和第四页空白。 我正在做的方式是不正确的,或者如何摆脱空白页?

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

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

以PDF格式正确呈现体宽+左边距+右边距必须小于或等于页面宽度。 当您看到空白页面被渲染时,几乎总是因为身体宽度加边距大于页面宽度。

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

另一个要尝试的是将名为ConsumeContainerWhitespace报表属性设置为True (默认为false )。 这就是为我解决的。

经过几个小时的努力解决这个问题,我偶然发现了一个适用于我的解决scheme:

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

在这里输入图像描述

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

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

  1. 在devise界面,有时编辑器会创build一个比实际控件大的page ; 因此正在印刷的鬼区域。
  2. 调整到控件。 通过目视查看宽度/高度,看看是否不能将devise图面上 的页面 调整到控件所需空间的大小,
  3. 然后尝试创build一个PDF,看看是否修复它。
  4. 如果#3没有解决问题,那么控件需要太多的实际页面大小,并以任何长度/宽度进行。 因此,需要将控件的大小设置得更小,以适应更小的页面大小。

手动修复的步骤


同样在某些情况下,只需通过将ConsumeContainerWhitespace设置为true来自动消耗空间,就可以更改报告页面的属性。

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

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

对我来说,问题在于SSRS故意把你的空间看作是你想要的荣誉:

在这里输入图像描述

以及空白,确保没有任何权利的余地。

除了利润率这个迄今为止最常见的问题之外,我还看到了另外两种可能性:

  1. 使用+连接文本。 你应该用&代替。
  2. 文本溢出指定文本框的宽度。 所以,如果你的文本框只能容纳30个字符,而你试图在里面填入300,那么你可能会得到额外的页面。

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

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

我已经与SSRS合作了10多年,上面的答案是答案。 但。 如果什么都行不通,而且你完全塞满了…从报告中删除项目,直到问题消失。 一旦确定了哪个行或报表项导致了问题,请将其放在矩形容器内。 而已。 帮了我们很多次了! 额外的页面大部分是由右边距上stream动的报表项造成的。 当一切都失败时,把东西放在一个矩形或者一个空矩形的右边,可以防止这种情况发生。 祝你好运!

如果您的报告包含子报告,则如果子报告和层次结构允许增长,则子报告的宽度可以推送正文的边界。 我有一个类似的问题,可以放在一个单元格中的子报表(跨越2列)。 它看起来像跨度可以在devise器中包含它,它在一个WinForform或浏览器中呈现罚款,原来,它可以生成打印机输出(或PDF文件),而不会溢出到多余的网页。
然后,改变了一些其他列的宽度(并没有超过身体宽度加边距),winform和浏览器效果图看起来仍然很好,但是当输出(打印机或PDF)产生时,它增长了边缘,并写下右侧作为第二(第四等)页面。 我可以通过增加子报表放置在哪里来消除我的问题。
不pipe你是否使用子报表,如果你有页面溢出,你的身体devise适合在页面的边缘,寻找允许生长的东西,推动身体的宽度。

我已经成功地使用pdftk来删除我不想/需要在pdf中的网页。 你可以在这里下载程序

你可以尝试像下面这样的东西。 从这里下来的例子

从in1.pdf删除'page 13'创buildout1.pdf pdftk in.pdf cat 1-12 14-end output out1.pdf

要么:

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