如何将rtf格式的文本转换为图像?

时间:2011-10-14 20:02:08

标签: c# gdi rtf

我有一个用于编辑图像的Windows应用程序(C#),以及我可以从剪贴板图像或文本中粘贴的其他功能。当剪贴板包含文本时,它会将其转换为具有默认字体样式的图片(GDI +),而不是像粘贴图像一样。 我希望能够从剪贴板转换一些rtf格式的文本(就像从VS20xx的格式化源代码复制一样)到图像来做同样的事情,但保留字体,颜色(包含的表和图像也很好!) 我可以将剪贴板内容识别为rtf格式的文本,但我无法将其呈现为图像! 我需要在内存中完成所有操作而无需打印设备并将文件转储到磁盘上。

1 个答案:

答案 0 :(得分:1)

有点hacky,但很久以前我做了类似的事情。

01)首先创建一个继承自富文本框的自定义用户控件。

02)创建一个位图(缓冲区),其中包含富文本框的整体大小。 (我们将把它用作缓冲区)

03)覆盖OnPaint(PaintEventArgs e)

04)调用richtextbox.DrawToBitmap(buffer,Rect(0,0,buffer.Size.Width,buffer.Size.Height));     它会起作用,但它不会出现在intellisense中。

05)在剪贴板命令上将其发送到richtextbox,它应该重新映射到缓冲区。

06)抓住图像缓冲区,随意做。

要确保OnPaint命令被调用,请参阅此文章 Correctly Overriding OnPaint (Rich Textbox)