0

我正在使用这个RTF Writer 库来生成一个 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 文本?


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

4

3 回答 3

2

使用 RTF 编写器库似乎无法做到这一点。它似乎不支持加载、解析或合并其他 RTF 数据。


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

任何想自己尝试的人都可以找到一些有用的信息:这里这里这里

于 2013-10-08T10:37:53.463 回答
0

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

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

于 2013-12-05T07:31:39.927 回答
0

您可以创建一个新的富文本框,将现有文档复制并粘贴到其中,然后是预格式化的文本。

于 2013-10-09T01:00:47.987 回答