How to convert RichText (RTF) document with images into HTML in Delphi?
我一直在努力寻找一个免费的(最好是开源的)组件或库,它允许将带有嵌入图像的 RTF 文件转换为 HTML 文件和图像文件或更好的 HTML 和图像流。
无论是 DLL 库还是 Delphi 组件,完美的解决方案都允许使用回调将数据流式传输到 IStream/TStream,因此我将能够将图像转换并保存为选择的格式,返回图像文件相对名称用于将 RTF 解析器包含在生成的 HTML 文件中,但按原样保存也很好,尤其是在代码开源时。
我遇到过商业解决方案,但我很难考虑它们,因为(相对)简单地将一种文档类型转换为另一种文档类型的价格非常高,而且这两种格式都有 20 年的历史,这表明必须有现有的库(本地、未管理)进行此类转换。
如果我找不到解决方案,我可能会将此代码转换为 Delphi dll 并使其可用,但也许有人已经这样做了?
编辑:
我们决定使用前面提到的 .Net RtfConverter 编译为 DLL,从中生成 Delphi TLB 单元并强制客户安装 .Net 框架(嵌入在安装程序中)。现在转换就像一种魅力,另一个迹象表明是时候从 Delphi 转到 .Net...
用于将 RTF 转换为 HTML 4.01 / HTML5 和将 RTF 转换为各种 XHTML 风格的商业转换器是用于 Delphi 的 ScroogeXHTML。 5.0 版包括改进的图片支持,以及 WMF 到 PNG 转换的示例代码。 (我是这个组件的开发者,也是 Java 平台对应的组件)。
如果您可以使用 microsoft office 打开 RTF 然后在后台将其另存为 HTML,那么我相信这是您最好的解决方案,只需使用 OLE 在后台启动 Microsoft Word 实例,加载 RTF 然后导出它作为 HTML...
P.S:我是这个产品的开发者。
这是一个将 RTF 转换为 HTML 3.2、4.01、XHTML 1.01 和 HTML 5 的商业 .Net 库。它
支持转换表格和嵌套表格、有序列表和项目符号列表、嵌入 HTML、Unicode、特殊 HTML 符号等的图像。
这是 C# 中的示例代码:
1 2 3 4 | SautinSoft.RtfToHtml r = new SautinSoft.RtfToHtml(); r.OutputFormat = SautinSoft.RtfToHtml.eOutputFormat.HTML_5; r.ImageStyle.IncludeImageInHtml = true; r.ConvertFile(@"d:\\document.rtf",@"d:\\html5.htm"); |