FastReport 加载Load(Stream) 模板内包含换行符不能展示
如下代码 当以FastReport 载入streams时 当模板内包含换行符时会导致不能正常生成pdf
System.Xml.XmlDocument newFrxXml= new System.Xml.XmlDocument();
newFrxXml.Load(fileName);
FastReport.Report report = new FastReport.Report();
using (var memStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(newFrxXml.InnerXml)))
{
report.Load(memStream);
}
原因:
通过XmlDocument加载后 换行符由十进制的值变成了16进制展示
=》

导致Fastreport不呢正常加载导致
--正常模板--
<Styles>
<Style Name="EvenRows" Fill.Color="191, 223, 255" Font="宋体, 9pt"/>
</Styles>
<Dictionary/>
<ReportPage Name="PageReport" LeftMargin="0" TopMargin="0" RightMargin="0" BottomMargin="0" FirstPageSource="15" OtherPagesSource="15" Guides="0,718.2,14.17,51.97,61.42,146.47,155.92,193.72,203.17,231.52,240.97,278.77,288.22,326.02,524.47,581.17,590.62,704.02,222.07,335.47,401.62,515.02,411.07,14.18,99.23,269.33,23.63,108.68,184.28,354.37,363.83,439.43,448.88,524.48,533.93,609.53,618.98,694.58,307.12,382.72,373.27,458.32,477.23,515.03,571.73,637.88,647.33,704.03,529.2,604.8,595.35,708.75" Watermark.Font="宋体, 60pt">
<ColumnHeaderBand Name="ColumnHeader" Width="793.8" Height="75.22" CanGrow="true" PrintOn="FirstPage">
<ChildBand Name="Child1" Top="78.42" Width="793.8" Height="434.7">
<TextObject Name="Text54" Left="137.03" Top="9.45" Width="396.9" Height="311.47" Text="xxx: xxx" Format="Date" Format.Format="" VertAlign="Center" Font="宋体, 10pt"/>
</ChildBand>
</ColumnHeaderBand>
<PageFooterBand Name="PageFooter" Top="516.32" Width="793.8" Height="47.63" Fill.Color="White" Guides="37.8,56.7,75.6,47.25,94.5,9.45,28.35,9.45"/>
</ReportPage>
--通过XmlDocument加载后模板--
<Styles>
<Style Name="EvenRows" Fill.Color="191, 223, 255" Font="宋体, 9pt"/>
</Styles>
<Dictionary/>
<ReportPage Name="PageReport" LeftMargin="0" TopMargin="0" RightMargin="0" BottomMargin="0" FirstPageSource="15" OtherPagesSource="15" Guides="0,718.2,14.17,51.97,61.42,146.47,155.92,193.72,203.17,231.52,240.97,278.77,288.22,326.02,524.47,581.17,590.62,704.02,222.07,335.47,401.62,515.02,411.07,14.18,99.23,269.33,23.63,108.68,184.28,354.37,363.83,439.43,448.88,524.48,533.93,609.53,618.98,694.58,307.12,382.72,373.27,458.32,477.23,515.03,571.73,637.88,647.33,704.03,529.2,604.8,595.35,708.75" Watermark.Font="宋体, 60pt">
<ColumnHeaderBand Name="ColumnHeader" Width="793.8" Height="75.22" CanGrow="true" PrintOn="FirstPage">
<ChildBand Name="Child1" Top="78.42" Width="793.8" Height="434.7">
<TextObject Name="Text54" Left="137.03" Top="9.45" Width="396.9" Height="311.47" Text="xxx:
xxx" Format="Date" Format.Format="" VertAlign="Center" Font="宋体, 10pt"/>
</ChildBand>
</ColumnHeaderBand>
<PageFooterBand Name="PageFooter" Top="516.32" Width="793.8" Height="47.63" Fill.Color="White" Guides="37.8,56.7,75.6,47.25,94.5,9.45,28.35,9.45"/>
</ReportPage>
解决办法:
using (var memStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(newFrxXml.InnerXml.Replace("
", " ").Replace("
", " "))))
{
report.Load(memStream);
}