如何在XtraReport中解析Base64字符串为纯文本填充XRRichText?
在XtraReport中解析Base64格式的RTF为纯文本并展示
你的代码仅完成了Base64到字节数组的转换,但没有解析RTF内容,所以报表显示的是原始RTF文本。以下是两种可行的解决方案:
方案一:使用System.Windows.Forms.RichTextBox(适用于.NET Framework)
通过WinForms的RichTextBox控件解析RTF并提取纯文本,代码示例:
// 从Base64字符串转换为字节数组 byte[] fileContents = System.Convert.FromBase64String(obj.column); // 将字节数组解码为RTF字符串 string rtfText = System.Text.Encoding.UTF8.GetString(fileContents); // 提取纯文本 string plainText; using (var richTextBox = new System.Windows.Forms.RichTextBox()) { richTextBox.Rtf = rtfText; plainText = richTextBox.Text; } // 将纯文本赋值给用于报表绑定的字段 obj.rtf_handler = plainText;
注意:需要引用
System.Windows.Forms程序集;若使用.NET Core/.NET 5+,需先安装System.Windows.FormsNuGet包。
方案二:使用第三方库RtfPipe(跨平台友好)
如果是跨平台项目,推荐轻量型RTF解析库RtfPipe:
- 先安装NuGet包:
Install-Package RtfPipe - 编写解析代码:
// 从Base64字符串转换为字节数组 byte[] fileContents = System.Convert.FromBase64String(obj.column); // 将字节数组解码为RTF字符串 string rtfText = System.Text.Encoding.UTF8.GetString(fileContents); // 提取纯文本 string plainText = RtfPipe.Rtf.ToText(rtfText); // 将纯文本赋值给用于报表绑定的字段 obj.rtf_handler = plainText;
报表端使用
将XtraReport中的文本控件(如Label)的Text属性绑定到obj.rtf_handler字段,即可展示解析后的纯文本。
内容的提问来源于stack exchange,提问作者Nova
相关产品推荐
相关产品推荐

