You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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.Forms NuGet包。

方案二:使用第三方库RtfPipe(跨平台友好)

如果是跨平台项目,推荐轻量型RTF解析库RtfPipe:

  1. 先安装NuGet包:Install-Package RtfPipe
  2. 编写解析代码:
// 从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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 22:35:20