首页 文章

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

提问于
浏览
172

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

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

13 回答

  • 1

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

    • 单击报告>报告属性>布局选项卡(SSDT-BI中的页面设置选项卡)

    • 记下 Page widthLeft marginRight margin 的值

    • 关闭并返回设计图面

    • 在“属性”窗口中,选择 Body

    • 单击符号以展开“大小”节点

    • 记下 Width 的值

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

    记住: (Body Width + Left margin + Right margin) <= (Page width)

  • 27

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

  • 17

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

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

    enter image description here

  • 3

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

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

    • 在设计图面中,编辑器有时会创建一个大于实际控件的 page ;因此打印了鬼区 .

    • 调整大小到控件 . 目视观察宽度/高度,看看你是否不能将 in the page 放在设计表面上,以将其大小调整到控件实际需要的空间,而不是更多 .

    • 然后尝试创建PDF并查看是否修复了它 .

    • 如果#3无法解决问题,那么有些控件需要太多的实际页面大小并以长度/宽度结束 . 因此,需要使控件的大小更小以适应更小的页面大小 .

    Steps to manually remediate


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

  • 0

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

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

  • 4

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

    enter image description here

    As well as white space, make sure there is no right margin.

  • 4

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

    • 使用 + 连接文本 . 你应该使用 & 代替 .

    • 文本溢出指定文本框的宽度 . 因此,如果您的文本框仅包含30个字符,并且您尝试在其中填充300,则最终可能会有额外的页面 .

  • 97

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

  • 19

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

  • 4

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

  • -2

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

  • 306

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

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

    enter image description here

  • 16

    我想要/需要pdf中的've successfully used pdftk to remove pages I didn' . 你可以下载程序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

相关问题