首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编辑和呈现RichText

编辑和呈现RichText
EN

Stack Overflow用户
提问于 2010-03-19 10:59:06
回答 1查看 1.5K关注 0票数 0

我们有一个应用程序(一种用于楼宇自动化的自定义网络管理工具),它支持打印标签,您可以将这些标签裁剪并插入到设备的前端显示器中。在该工具的早期版本中(不是在我的公司开发的),应用程序只是将字符串推入一个Excel文件中,然后由现场技术人员操作(比如格式化文本)。我们没有在新版本中这样做,因为很难(不可能)保持Excel文件保持同步,并且避免绑定到外部应用程序(更不用说不同版本的Excel)。

我们使用PDFSharp来呈现标签。它有一个类似System.Drawing的接口,但是可以输出到一个System.Drawing.Graphics (屏幕/打印机)和一个PDF文件,这是必需的。

后来,引入了基本格式,如字体系列、样式、大小、颜色,这将适用于一个标签(即,正好适用于一个字符串)。现在,客户希望能够将这些格式应用于字符串中的单个字符。我认为最简单的方法是支持RichText的一个子集。但这并不像我想的那么容易。

当前,编辑器只显示要编辑的标签的TextBox,字体设置为标签的字体。我想我应该用RichTextBox替换它,并更新格式化按钮以使用RichTextBox格式属性。相当容易。然而,我需要画出案文。我知道您可以让RichTextBox绘制到HDC或System.Drawing.Graphics,但正如已经说过的,我需要它来使用PDFSharp。渲染到位图不是一个选项,因为PDF不一定是巨大的,它是很多标签。不幸的是,我无法让RichTextBox告诉我文本的布局-我很好用手进行实际渲染,只要我知道在哪里画什么。这是第一个问题:,我如何才能从RichTextBox中得到正确布局的富文本度量标准?或者有什么方法可以将富文本转换为向量图形格式,以便manually可以轻松地绘制

我知道NRTFTree,它可以用来解析和操作RichText。文档很糟糕(实际上我不知道,它是西班牙语),但我想我可以让它开始工作。据我所知,它也不会提供布局。因此,我认为我必须编写一个定制的编辑控件(记住,它基本上只是一个或两个带有基本RTF格式的行标签,而不是一个完整的编辑控件--更像是在PowerPoint中编辑文本框),并编写使用PDFSharp而不是System.Drawing绘制的自定义文本布局逻辑。是否有任何现有的解决方案,即使部分可用,也可用于编辑或手动执行布局(或两者都可用)?

还是有一个完全不同的方法,我只是没有看到?如果将标签文本作为RTF导出到CSV文件中,然后在Excel中导入保留格式,则奖励点数。

对于编辑部分,我需要它在Windows窗体中工作。除此之外,我认为这与Windows窗体无关。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-23 09:13:31

还是有一个完全不同的方法,我只是没有看到?

要从剪贴板导入RTF,我们使用隐藏的RichEntryField,将整个文本粘贴到剪贴板上,选择第一个字符并查询我们支持的格式(字体、大小、粗体、斜体、下划线、.),选择第二个字符并查询格式。

这并不是您想要的解决方案,但是您不必自己解析RTF。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2476636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档