如何在报告服务的PDF导出中保留前导空白区域

时间:2009-09-21 02:17:29

标签: reporting-services

我有一些leagacy报告数据,可以通过xml Web服务数据源从SSRS访问。该服务返回一个包含格式化纯文本的大字段。

我已经能够通过用不间断的空格替换空间字符来保留输出中的空白区域,但是,当导出到PDF时,前导空格不会保留在不以可见字符开头的行上。所以报告应该像这样呈现:

          Report Title
Name      Sales
Bob       100.00
Wendy     199.50

渲染如下:

Report Title               (leading white space stripped on this line)
Name      Sales            (intra-line white space is preserved)
Bob       100.00
Wendy     199.50

除了为每一行添加一个我真的不想做的字符之外,我找不到任何解决方案。

使用SQL 2005 SP3

4 个答案:

答案 0 :(得分:4)

我用谷歌搜索并搜索了这个问题的答案。许多答案包括将空格更改为Chr(20)或Chr(160)。我找到了一个似乎有效的简单解决方案。

  1. 如果您的前导空格来自制表位,则用实际空格替换“/ t”,大约5个左右 string newString = oldString.Replace(“/ t”,“”)

  2. 在文本框的表达式字段中,我发现只需在字符串的开头添加一个空“Chr(0)”即可保留前导空格。

  3. 示例:

    =Chr(0) & "My Text"
    

答案 1 :(得分:2)

您是否尝试过ASCII品种的不间断空格?

=Replace(Fields!Report.Value, " ", chr(160))

我使用chr(160)将电话号码保存在一起(12 345 6789)。在您的情况下,您可能只想替换前导空格。

答案 2 :(得分:1)

您可以使用包含文本的文本框的填充属性。可以增加左侧的填充以增加在输出时不会被剥离的空间。

答案 3 :(得分:1)

我使用过这项工作:

  • 在“文本框”属性中,选择“对齐”选项卡。
  • 在填充选项部分编辑右侧或左侧填充(无论您需要添加空间的位置)。

如果您需要有条件地缩进文本,您也可以使用该表达式。