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

3

我有一个Windows应用程序(C#)用于编辑图像,其中包括从剪贴板中粘贴图像或文本的功能。当剪贴板包含文本时,它将其转换为带有默认字体样式的图片(GDI +),然后它就像粘贴图像一样工作。 我想能够将剪贴板中的某些rtf格式的文本(例如从VS20xx格式化的源代码复制)转换为图像以执行相同的操作,但同时保留字体、颜色(包含表格和图片也不错!) 我可以识别剪贴板内容为rtf格式文本,但我没有办法将其呈现为图像! 我需要在内存中完成所有操作,而不需要打印设备并将文件转储到磁盘上。


让我试着回答这个问题... 应该有一个内置的Windows函数,可能来自COM对象,允许您打印文档,结果可以用于转换图像。 - sss
1个回答

1

有点巧妙,但我很久以前做过类似的事情。

01) 首先创建一个从rich textbox继承的自定义用户控件。

02) 创建一个具有rich textbox整体大小的位图(缓冲区)。 (我们将使用它作为缓冲区)

03) 重写OnPaint(PaintEventArgs e)

04) 调用richtextbox.DrawToBitmap(buffer,Rect(0,0,buffer.Size.Width,buffer.Size.Height)); 它会起作用,但不会在智能感知中显示。

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

06) 获取图像缓冲区并随意处理。

为确保调用OnPaint命令,请参阅此帖子Correctly Overriding OnPaint (Rich Textbox)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接