【问题标题】:How to convert rtf-formatted text to image?如何将 rtf 格式的文本转换为图像?
【发布时间】:2011-10-14 20:02:07
【问题描述】:

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

【问题讨论】:

  • 让我试着回答这个问题……应该有一个内置的 windows 函数,可能来自一个 COM 对象,可以让你打印文档,结果可以用来转换图像。跨度>

标签: c# gdi rtf


【解决方案1】:

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

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

02) 使用富文本框的整体大小创建位图(缓冲区)。 (我们将使用它作为缓冲区)

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 2014-03-11
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    • 2012-08-31
    • 1970-01-01
    相关资源
    最近更新 更多