我有一份SSRS报告 . 当我试图导出到PDF时,由于它的宽度,它需要4页 . 其中第2页和第4页显示我的表中的一个字段 . 所以我尝试将报告属性中的布局大小设置为width = 18in和height = 8.5in .
它在PDF的单页中给了我整个表格 . 但我得到第2和第4页空白 . 我正在做的方式是不正确的,还是如何摆脱那些空白页面?
在BIDS或SSDT-BI中,执行以下操作:
单击报告>报告属性>布局选项卡(SSDT-BI中的页面设置选项卡)
记下 Page width , Left margin , Right margin 的值
关闭并返回设计图面
在“属性”窗口中,选择 Body
单击符号以展开“大小”节点
记下 Width 的值
正确渲染PDF正文宽度左边距右边距必须小于或等于页面宽度 . 当您看到正在渲染的空白页时,几乎总是因为主体宽度加上边距大于页面宽度 .
记住: (Body Width + Left margin + Right margin) <= (Page width)
另一件事是将名为 ConsumeContainerWhitespace 的报告属性设置为 True (默认为 false ) . 这就是我如何解决的问题 .
ConsumeContainerWhitespace
True
false
经过几个小时的努力解决这个问题,我偶然发现了一个对我有用的解决方案:
在SSDT(2012)中,我最初的页面设置/页面单位设置为厘米 . 当我将其更改为英寸时,奇怪的是,我能够将报告导出为PDF,而不会将其他所有页面都空白 .
在编辑SSRS文档时,在计算任何数学之前,最好先在设计界面上执行此操作(显示Visual Studio 2012,但可以在其他版本中完成) .
红色圆圈中的以下数字下方会映射到以下步骤:
在设计图面中,编辑器有时会创建一个大于实际控件的 page ;因此打印了鬼区 .
page
调整大小到控件 . 目视观察宽度/高度,看看你是否不能将 in the page 放在设计表面上,以将其大小调整到控件实际需要的空间,而不是更多 .
然后尝试创建PDF并查看是否修复了它 .
如果#3无法解决问题,那么有些控件需要太多的实际页面大小并以长度/宽度结束 . 因此,需要使控件的大小更小以适应更小的页面大小 .
此外,在某些情况下,可以通过将 ConsumeContainerWhitespace 设置为 true 来自动使用空格来更改报告页面的属性 .
true
如果来自SSRS的页面为空白,则需要调整报表布局 . 这比运行输出和后期处理以修复布局问题的副作用要有效得多 .
在推动利润边界方面,SSRS非常挑剔 . 只需通过调整报表上的文本框或其他控件,很容易意外地扩大/延长报表 . 仔细检查报告表面的宽度和高度属性,并尽可能地挤压它们 . 注意大页眉和页脚 .
对我来说,问题在于SSRS故意将您的白色空间视为您想要获得荣誉:
As well as white space, make sure there is no right margin.
除了边缘,这是迄今为止最常见的问题,我还看到了另外两种可能性:
使用 + 连接文本 . 你应该使用 & 代替 .
+
&
文本溢出指定文本框的宽度 . 因此,如果您的文本框仅包含30个字符,并且您尝试在其中填充300,则最终可能会有额外的页面 .
您是否试图查看报告右侧是否有空格?如果是这样,您可以将其拖回报告的末尾,然后将报告背景拖回到同一位置 .
在报告的属性选项卡(myReport.rdlc)上,将"Keep Together"属性更改为False . 我一直在努力解决这个问题,这似乎解决了我的问题 .
我已经与SSRS合作了10多年,上面的答案就是答案 . 但 . 如果没有任何作用,并且你被完全塞满....从报告中删除项目,直到问题消失 . 确定哪个行或报表项后导致问题,把它放在一个矩形容器内 . 而已 . 帮了我们很多次了!额外页面主要是由流经右边距的报表项引起的 . 当所有其他方法都失败时,将内容放在项目右侧的矩形或空矩形内可以阻止这种情况发生 . 祝你好运!
如果报表包含子报表,则如果允许子报表和层次结构增长,子报表的宽度可能会推动正文的边界 . 我有一个类似的问题出现在子报表可以放在一个单元格(跨越2列) . 看起来 Span 可以在设计器中包含它并且它在winform或浏览器中呈现得很好,并且最初它可以生成打印机输出(或pdf文件)而不会溢出到多余的页面上 .然后,在更改了一些其他列宽(并且不超过主体宽度加上边距)之后,winform和浏览器渲染看起来仍然看起来很好,但是当生成输出(打印机或pdf)时,它增长超过边距并写入右侧每页作为第2(第4等)页面 . 我可以通过增加放置子报表的colspan来消除我的问题 .无论您是否使用子报告,如果您有页面溢出并且您的身体设计适合页面的边缘,请寻找允许增长的东西,将身体的宽度推出 .
我最近继承了一份报告,我需要做一些改动 . 遵循上述所有建议后,它没有帮助 . 该报告历史上有这个额外的页面,没有人能弄明白为什么 .
我右键单击了tablix并选择了属性 . 检查了一个复选框,表示之后添加分页符 . 删除后,它现在打印在一个页面上 .
我想要/需要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
13 回答
在BIDS或SSDT-BI中,执行以下操作:
单击报告>报告属性>布局选项卡(SSDT-BI中的页面设置选项卡)
记下 Page width , Left margin , Right margin 的值
关闭并返回设计图面
在“属性”窗口中,选择 Body
单击符号以展开“大小”节点
记下 Width 的值
正确渲染PDF正文宽度左边距右边距必须小于或等于页面宽度 . 当您看到正在渲染的空白页时,几乎总是因为主体宽度加上边距大于页面宽度 .
记住: (Body Width + Left margin + Right margin) <= (Page width)
另一件事是将名为
ConsumeContainerWhitespace
的报告属性设置为True
(默认为false
) . 这就是我如何解决的问题 .经过几个小时的努力解决这个问题,我偶然发现了一个对我有用的解决方案:
在SSDT(2012)中,我最初的页面设置/页面单位设置为厘米 . 当我将其更改为英寸时,奇怪的是,我能够将报告导出为PDF,而不会将其他所有页面都空白 .
在编辑SSRS文档时,在计算任何数学之前,最好先在设计界面上执行此操作(显示Visual Studio 2012,但可以在其他版本中完成) .
红色圆圈中的以下数字下方会映射到以下步骤:
在设计图面中,编辑器有时会创建一个大于实际控件的
page
;因此打印了鬼区 .调整大小到控件 . 目视观察宽度/高度,看看你是否不能将 in the page 放在设计表面上,以将其大小调整到控件实际需要的空间,而不是更多 .
然后尝试创建PDF并查看是否修复了它 .
如果#3无法解决问题,那么有些控件需要太多的实际页面大小并以长度/宽度结束 . 因此,需要使控件的大小更小以适应更小的页面大小 .
此外,在某些情况下,可以通过将
ConsumeContainerWhitespace
设置为true
来自动使用空格来更改报告页面的属性 .如果来自SSRS的页面为空白,则需要调整报表布局 . 这比运行输出和后期处理以修复布局问题的副作用要有效得多 .
在推动利润边界方面,SSRS非常挑剔 . 只需通过调整报表上的文本框或其他控件,很容易意外地扩大/延长报表 . 仔细检查报告表面的宽度和高度属性,并尽可能地挤压它们 . 注意大页眉和页脚 .
对我来说,问题在于SSRS故意将您的白色空间视为您想要获得荣誉:
As well as white space, make sure there is no right margin.
除了边缘,这是迄今为止最常见的问题,我还看到了另外两种可能性:
使用
+
连接文本 . 你应该使用&
代替 .文本溢出指定文本框的宽度 . 因此,如果您的文本框仅包含30个字符,并且您尝试在其中填充300,则最终可能会有额外的页面 .
您是否试图查看报告右侧是否有空格?如果是这样,您可以将其拖回报告的末尾,然后将报告背景拖回到同一位置 .
在报告的属性选项卡(myReport.rdlc)上,将"Keep Together"属性更改为False . 我一直在努力解决这个问题,这似乎解决了我的问题 .
我已经与SSRS合作了10多年,上面的答案就是答案 . 但 . 如果没有任何作用,并且你被完全塞满....从报告中删除项目,直到问题消失 . 确定哪个行或报表项后导致问题,把它放在一个矩形容器内 . 而已 . 帮了我们很多次了!额外页面主要是由流经右边距的报表项引起的 . 当所有其他方法都失败时,将内容放在项目右侧的矩形或空矩形内可以阻止这种情况发生 . 祝你好运!
如果报表包含子报表,则如果允许子报表和层次结构增长,子报表的宽度可能会推动正文的边界 . 我有一个类似的问题出现在子报表可以放在一个单元格(跨越2列) . 看起来 Span 可以在设计器中包含它并且它在winform或浏览器中呈现得很好,并且最初它可以生成打印机输出(或pdf文件)而不会溢出到多余的页面上 .
然后,在更改了一些其他列宽(并且不超过主体宽度加上边距)之后,winform和浏览器渲染看起来仍然看起来很好,但是当生成输出(打印机或pdf)时,它增长超过边距并写入右侧每页作为第2(第4等)页面 . 我可以通过增加放置子报表的colspan来消除我的问题 .
无论您是否使用子报告,如果您有页面溢出并且您的身体设计适合页面的边缘,请寻找允许增长的东西,将身体的宽度推出 .
我最近继承了一份报告,我需要做一些改动 . 遵循上述所有建议后,它没有帮助 . 该报告历史上有这个额外的页面,没有人能弄明白为什么 .
我右键单击了tablix并选择了属性 . 检查了一个复选框,表示之后添加分页符 . 删除后,它现在打印在一个页面上 .
我想要/需要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