目前我正在开发一个简单的邮件合并模块。
我需要加载普通的 *.RTF 模板,然后替换 [[field]] 标记中包含的所有单词,最后将它们打印出来。
我找到了免费的 iText 库,它能够加载/保存 pdf 和 rtf。我设法加载 rtf,将几个副本合并到一个巨大的文档中,但我不知道如何用客户姓名/地址等自定义数据替换 [[field]]。
该功能是否存在,如果存在 - 怎么做?解决方案平台为c#/.NET
最后我决定使用 *.docx 和“Open XML SDK 2.0 for Microsoft Office”.NET 强类型包装器。
您可以使用 RichTextBox 控件来查找/替换占位符。
RichTextBox rtb = new RichTextBox();
rtb.LoadFile("template.rtf");
string placeHolder = "[[placeholder_name]]";
int pos = rtb.Find(placeHolder);
rtb.Select(pos, placeHolder.Length);
rtb.SelectedText = "new value";
在此之后,您可以获得 rtf 格式的文本:
rtb.Rtf;