C# .Net RTF编写器:如何添加预格式化的RTF文本?

C# .Net RTF编写器:如何添加预格式化的RTF文本?,c#,rtf,.net-rtf-writer,C#,Rtf,.net Rtf Writer,我用它来生成一个RTF文档。它允许我添加图像、表格和文本,以满足我的大多数需求 但是,我还想添加一些已经是RTF格式的文本。需要在保留格式的同时添加此测试,这意味着我不想在添加之前先将其转换为纯文本 目前,格式化的RTF包含所有文档信息,但我可以使用RichTextBox删除该部分,以确保只保留文档的相关部分。这是我要添加到生成的文档中的部分 以下是预格式化RTF文本的示例: {\rtf1\ansi\ansicpg1252\deff0\deflang2057{\fonttbl{\f0\fnil\

我用它来生成一个RTF文档。它允许我添加图像、表格和文本,以满足我的大多数需求

但是,我还想添加一些已经是RTF格式的文本。需要在保留格式的同时添加此测试,这意味着我不想在添加之前先将其转换为纯文本

目前,格式化的RTF包含所有文档信息,但我可以使用RichTextBox删除该部分,以确保只保留文档的相关部分。这是我要添加到生成的文档中的部分

以下是预格式化RTF文本的示例:

{\rtf1\ansi\ansicpg1252\deff0\deflang2057{\fonttbl{\f0\fnil\fcharset0 Microsoft Sans Serif;}}
\uc1\pard\f0\fs17 here is some RTF}
通常,当我们使用.Net RTF Writer添加文本时,可以执行以下操作:

var par = doc.addParagraph();
par.setText("Here is some text");
我可以做些什么来改变它,允许添加预格式化的RTF文本吗



旁注:如果这是不可能的,我愿意接受其他图书馆的建议(免费供商业使用),这将允许我做我需要的事情。显然,对这些问题的任何建议都更适合作为评论而不是答案。

使用RTF Writer库似乎不可能做到这一点。它似乎不支持加载、解析或合并其他RTF数据


值得一提的是,我的需求已经改变,所以我不再需要这样做了。然而,我即将制作自己的RTF解析器和合并工具。由于RTF格式处理样式的方式,合并RTF不像复制/粘贴那样简单。字体和颜色等样式在标题表中定义,这使得合并更加复杂


任何想自己尝试的人都可能会发现一些有用的信息:,和。

您可以创建一个新的richtextbox,复制并粘贴到已经存在的文档中,然后是预格式化的文本。

还有另一种方法:生成HTML(和CSS,如果需要)并使用将其转换为RTF。HTML代码应该比RTF标记更容易混淆


一个好主意是创建一个HTML模板(带有徽标、页脚等),并用动态数据从代码中填充它。在这种情况下,您无需对整个文档布局进行编程,而且布局调整也更加简单。

这不是很微妙的RTF,它设置了默认代码页、默认语言并设置了字体表。这对RTF其余部分的显示方式有很大影响。任何“RTF编写器”都已经这样做了,所以添加它是没有必要的。@HansPassant:我实际上是从RichTextBox中获得的,我确信我可以将其精简到只包含内容,但如果能够将其添加到我的文档中,那就不太好了。我想我可以使用一些占位符,在创建文件后手动将它们写下来——但这比我希望的要麻烦得多——听起来你并不关心实际的格式。只需执行
par.setText(richTextBox1.Text)