【问题标题】:RTF Format in Web Text EditorWeb 文本编辑器中的 RTF 格式
【发布时间】:2016-12-24 11:00:04
【问题描述】:

网络上是否有支持从 RTF 格式文档输入的文本编辑器?

我知道这对 webdev 来说有点奇怪,但我需要从数据库中读取 RTF 文档并在基于 Web 的文本编辑器中对其进行编辑并将其存储回 RTF。在我在转换工具上投入过多之前,我想我会问是否有许多 Web 文本编辑器支持 RTF。我的研究表明他们没有。

另外,由于这是一个 MVC 4.6 应用程序,用 C# 编写一个双向 RTF-HTML 转换工具会不会很费劲?

编辑器将收到的示例输入: "{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard This is some {\b bold} text.\par }"

【问题讨论】:

    标签: javascript c# asp.net-mvc rich-text-editor data-conversion


    【解决方案1】:

    Quill 是一个富文本网络编辑器。

    使用快速入门中的代码,您可以像这样启用它

    创建工具栏容器

    <div id="toolbar">
      <button class="ql-bold">Bold</button>
      <button class="ql-italic">Italic</button>
    </div>
    

    创建编辑器容器

    <div id="editor">
      <div>Hello World!</div>
      <div>Some initial <b>bold</b> text</div>
      <div><br></div>
    </div>
    

    包括 Quill 库

    <script src="//cdn.quilljs.com/0.20.1/quill.js"></script>
    

    初始化 Quill 编辑器

    <script>
      var quill = new Quill('#editor');
      quill.addModule('toolbar', { container: '#toolbar' });
    </script>
    

    设置编辑器文本

    editor.setText("RTF document ");
    

    获取编辑器文本

    默认 0 会在编辑器中获取所有内容

    var text = editor.getText(0);
    

    另见Mozilla post ,它定义了如何实现您自己的富文本编辑器。

    【讨论】:

    • 很抱歉,如果我的帖子最初不清楚,但我的意思不是富文本编辑器,我需要一个支持富文本文件输入的编辑器。这意味着输入的格式类似于“{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard This is some {\b bold} text.\par }”而不是 HTML。跨度>
    • 您可能必须将转换为 HTML 并放入 html 编辑器。 code.msdn.microsoft.com/Converting-between-RTF-and-aaa02a6e。看起来需要一些努力,但我不知道是否有任何东西可以满足您的要求。
    • 该链接看起来很有希望,即使它需要对 Windows.Controls 的引用。它看起来越来越像我必须编写一个自定义工具来解决这个问题。感谢您的帮助。
    【解决方案2】:

    您可以使用 Word 加载 RTF 文件,然后另存为 HTML。有效,但会生成一堆虚假的 MS- 标签。

    或者我已经编写了一个程序(Visual Studio),你可以根据需要使用它——它有点基本,不处理字体,但可以转换大多数文本格式。如果您有兴趣,请告诉我(我需要整理一下 - 它很旧 - 有点像我)。

    虽然在我写这篇文章的时候,我发现 Wamadhama 可能有更好的解决方案。

    【讨论】:

    • 但这一切都提醒我,我还编写了一个程序来整理 Word HTML 文档并将它们恢复到接近正常的状态。 (又是 Visual Studio)。
    • 当然,如果您想发布源代码,我会非常乐意查看它。看起来我将编写一个自定义转换工具,所以每一点都有帮助!
    • 好的 - 让我刷新一下他们所做的事情的记忆并稍微整理一下。它们是 VS 2008 并且在它们的输出中都相当基本 - 我在几年前为一个特定的项目编写了它们。我不敢相信现在还没有 RTF-HTM 转换器程序。我会通过下载位置与您联系。
    • 是的 - 测试了这些,我不得不说它们现在已经过时了,它们不值得一堆豆子 - 自从我编写它们以来,HTML 发生了很大变化(也许还有 RTF)。正如我所说,Word 会转换两种方式(如果你能忍受臃肿的文件),而且似乎还有很多可能性——谷歌“将 rtf 转换为 htm”。回顾我过去的努力,编写自定义转换器是一个很大的要求(我只是在处理已知的本地输出) - 但是当其他人已经这样做了?...
    • 是的,这是一个大项目,但不幸的是,用于 RTF-HTML 转换的开源产品并不是最好的(我该发光了!)。感谢您的观看!
    【解决方案3】:

    我也注意到了这一点,并通过使用 npm 包将 html 转换为 rtf 来解决它。 就像我在这里发布的How to convert HTML to RTF using JavaScript 一样,您可以使用从npm html-to-rtf-browser 创建的包并像我在这里描述的那样捆绑到单个文件中

    javascript-html-to-rtf-browser

    form.onsubmit = function () {
      // convert html to rtf
       var htmlContent = editorElement.html();
       var htmlToRtfLocal = new window.htmlToRtf();
       var rtfContent = htmlToRtfLocal.convertHtmlToRtf(htmlContent);
       editorElement.html(rtfContent);
       return true;
    }
    

    其中editorElement 是 quill 内容元素/编辑器作为 jQuery 元素 form 是父表单(使用 jQuery $(editorElement).closest('form'))。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-22
      • 2022-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-25
      相关资源
      最近更新 更多