2015-10-27 81 views
0

我正在寻找将RTF字符串转换为纯文本的方式,但不幸的是我找不到解决方案。如何将rft字符串转换为java中的纯文本?

我需要这个RTF字符串转换为纯文本

{\ RTF1 \ ANSI \ ansicpg932 \ deff0 \ deflang1033 \ deflangfe1041 {\ fonttbl {\ F0 \ fnil \ fcharset128 \ '82 \'6C \ '82 \ '72 \ '96 \ '是\ '92 \' A9;} {\ F1 \ fnil \ fcharset128 MS UI 哥特;}} {\ colortbl; \ red0 \ green128 \ blue128;} \ viewkind4 \ UC1 \ PARD \ CF1 \ lang1041 \ b \ F0 \ FS24 \ '83 \ '65 \ '83 \ '58 \ '83 \ '67 \ '82 \ 'C5 \ '82 \' B7 \ '81 \ '42 \” 83 \ '65 \ '83 \ '58 \ '83 \ '67 \ '82 \'c5 \ '82 \'b7 \ '81 \ '42 \ cf0 \ b0 \ f1 \ fs20 \ par \ cf1 \ b \ F0 \ FS24 \ '83 \ '65 \ '83 \ '58 \ '83 \ '67 \ '82 \ 'C5 \ '82 \' B7 \ '81 \ '42 \ CF0 \ B0 \ F1 \ FS20 \帕 \ CF1 \ b \ F0 \ FS24 \ '83 \ '65 \ '83 \ '58 \ '83 \ '67 \ '82 \ 'C5 \ '82 \' B7 \ '81 \ '42 \ CF0 \ B0 \ F1 \ FS20 \帕 \ CF1 \ B \ F0 \ FS24 \ '83 \ '65 \ '83 \ '58 \ '83 \ '67 \ '82 \ 'C5 \ '82 \' B7 \ '81 \ '42 \ CF0 \ B0 \ F1 \ FS20 \帕 \ CF1 \ b \ F0 \ FS24 \ '83 \ '65 \ '83 \ '58 \ '83 \ '67 \ '82 \'C5 \ 82 \'b7 \ '81 \ '42 \ cf0 \ b0 \ f1 \ fs20 \ par \ cf1 \ b \ f0 \ fs24 \ '83 \ '65 \ '83 \ '58 \ '83 \ '67 \ '82 \ 'C5 \ '82 \' B7 \ '81 \ '42 \ CF0 \ B0 \ F1 \ FS20 \帕 \ CF1 \ b \ F0 \ FS24 \ '83 \ '65 \ '83 \ '58 \” 83 \ '67 \ '82 \ 'C5 \ '82 \' B7 \ '81 \ '42 \ CF0 \ B0 \ F1 \ FS20 \相提并论 \相提并论}

你可以帮我吗?

+0

@Florian Schaetz:谢谢你的回答,我也发现了这个链接,但它似乎提供了一个C#解决方案ñ:( –

回答

0

这是一个位的代码,我写了一个项目,必须做类似的事情。你必须测试它是否有效,因为RTF相对比较深奥,并且webkit翻译器很难完成。但它经常完成工作。

我希望它适合你。

private static String useWebKitToConvertRtfToPlaintext(String rtf) throws IOException { 
    StringReader rtfReader = new StringReader(rtf); 
    JEditorPane p = new JEditorPane(); 
    p.setContentType("text/rtf"); 
    RTFEditorKit kitRtf = new RTFEditorKit(); 
    try { 
     kitRtf.read(rtfReader, p.getDocument(), 0); 
     EditorKit plainKit = p.getEditorKitForContentType("text/plain"); 

     Writer writer = new StringWriter(); 
     plainKit.write(writer, p.getDocument(), 0, p.getDocument().getLength()); 
     String out = writer.toString(); 
     return out; 
    } catch (BadLocationException e) { 
     e.printStackTrace(); 
    } 

    return null; 
} 
+0

感谢您对帮扶,倒霉的我:(它输出值“ƒeƒXƒg,Å,·ЃBƒeƒXƒg,Å,·ЃB ƒeƒXƒg,Å,·ЃB ƒeƒXƒg,Å,·ЃB ƒeƒXƒg,Å,·ЃB ƒeƒXƒg,Å,·ЃB ƒeƒXƒg,Å,·ЃB ƒeƒXƒg,Å,·ЃB” 似乎不正确编码:( –

相关问题