将RTF转换为纯文本和从纯文本转换

时间:2015-04-28 14:57:14

标签: javascript rtf

我需要使用javascript将纯文本转换为RTF(RichText格式)。

我正在为每次转换寻找一个函数,我不打算使用库。

从简单转换为RTF

格式化样式和颜色并不重要,重要的是我将纯文本转换为有效 RTF格式

从RTF转换为普通

同样,风格并不重要。它们可以完成删除。所需要的只是所有文本数据保留(不丢失输入的数据)

2 个答案:

答案 0 :(得分:10)

found a c# answer here这是一个很好的起点,但我需要一个Javascript解决方案。

无法保证这些是100%可靠的,但它们似乎与我测试过的数据配合得很好。

function convertToRtf(plain) {
    plain = plain.replace(/\n/g, "\\par\n");
    return "{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang2057{\\fonttbl{\\f0\\fnil\\fcharset0 Microsoft Sans Serif;}}\n\\viewkind4\\uc1\\pard\\f0\\fs17 " + plain + "\\par\n}";
}

function convertToPlain(rtf) {
    rtf = rtf.replace(/\\par[d]?/g, "");
    return rtf.replace(/\{\*?\\[^{}]+}|[{}]|\\\n?[A-Za-z]+\n?(?:-?\d+)?[ ]?/g, "").trim();
}

Here is a working example他们都在行动

答案 1 :(得分:0)

添加到Musefan的一些十六进制字符的答案

---
title: 'Awesome Example'
menu:
    -
        text: 'The best example'
        link: 'http://example.com'
    -
        text: 'Wikipedia'
        link: 'http://en.wikipedia.org'
---
<div>
    <p>Lorem ipsum, etc.</p>
</div>