【问题标题】:Display/Render RTF doc in browser display using html textarea or something similar使用 html textarea 或类似的东西在浏览器显示中显示/渲染 RTF 文档
【发布时间】:2012-03-09 14:46:00
【问题描述】:

我的 Web 应用程序有一个功能,其中预格式化的 RTF 文档用作模板,用户可以选择数据源,然后与 RTF 文档模板合并以创建合并的 RTF 文件。 RTF 模板具有被用户选择的内容替换的占位符。如果本地用户机器上有 word/wordpad,则可以保存或直接打开最终文档。

现在,我需要向用户显示合并后的文档以供确认。用户可以直接打印或将文档保存到系统。显示不应该是 word/wordpad 应用程序,而应该在应用程序本身内,使用 textarea 或类似的东西来呈现文档。您能否让我知道是否可以在 textarea 中呈现 RTF 文档。除了显示的内容,应该还有打印和保存文档的选项。如果我必须将 RTF 转换为 Html,然后在 textarea 中显示 html 内容,请告诉我如何进行转换然后显示 html在页面中。

【问题讨论】:

    标签: html templates render rtf mailmerge


    【解决方案1】:

    这是一个非常困难的要求。首先,让我们打消关于<textarea> 的想法,因为它根本不支持任何格式。您所见的所有 WYSIWYG 编辑器均基于 <iframe>s。

    其次,没有浏览器可以直接显示 RTF。您可以将其嵌入为<object>,并且有些人可能会显示它(IE 可能会),但我不能说哪些不会。便携式设备几乎肯定不会。但是你应该测试一下,也许它毕竟工作得很好。

    否则,HTML 转换也是不可能的,因为 RTF 有非常非常多的特性是 HTML 无法模拟的。那里有一些转换器(谷歌),但它们都会有严重的限制。如果您想要完全支持,您将不得不通过 Canvas 或 Flash 或其他方式进行自己的渲染。

    为此,我建议您查看 Google 文档。他们已经经历了所有这些麻烦,并且拥有一个功能相当齐全的引擎来显示大多数可能的文档。我认为也可以将它们嵌入到您自己的网页中,尽管我自己从未检查过。

    【讨论】:

    • 您好,感谢您的回复。我尝试了 google docs viewer 和 zoho viewer,它们似乎都以某种方式满足了我的要求。但是,我不能使用它们,因为文档是私有的,而且客户端不允许从他们的应用程序访问互联网。那么,您或其他人能否告诉我如何将自己的自定义文档查看器应用程序编写为组件并将其与我的应用程序集成。
    • 正如我所说,它非常复杂。您必须自己解析整个 RTF 并以某种方式绘制它。仅RTF spec 就有 278 页长,并且拥有大量的功能。你可能会花费数年时间试图独自做到这一点。我仍然建议寻找可以集成到产品中的现有组件。那里一定有什么东西。
    【解决方案2】:

    使用<PRE> 标签在浏览器中显示/渲染 RTF 文档。

    【讨论】:

    • 这根本行不通....用
      FILE).DIRECTORY_SEPARATOR."test.rtf"); ?>
      并且还使用 htmlentities 将 RTF 编码为适当的 HTML 进行了测试,它所做的只是显示 RTF 的原始源代码。
    猜你喜欢
    • 2015-04-14
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-28
    • 2010-11-28
    • 2012-12-15
    相关资源
    最近更新 更多