2015-10-27 2 views
0

Я искал способ конвертировать RTF-строку в обычный текст в java, но, к сожалению, я не могу найти решение.Как преобразовать строку rft в обычный текст в java?

Мне нужно преобразовать эту строку в формате RTF в обычный текст

{\ rtf1 \ ANSI \ ansicpg932 \ deff0 \ deflang1033 \ deflangfe1041 {\ fonttbl {\ f0 \ fnil \ fcharset128 \ '82 \ '6с \ '82 \ '72 \ '96 \ 'be \ '92 \' a9;} {\ f1 \ fnil \ fcharset128 MS UI Готический;}} {\ colortbl; \ red0 \ green128 \ blue128;} \ viewkind4 \ uc1 \ пард \ cf1 \ lang1041 \ Ь \ 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 \ par \ cf1 \ Ь \ 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 \ par \ 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 \ par \ cf1 \ b \ f0 \ fs24 \ '83 \ '65 \ '83 \ '58 \ ' 83 \ '67 \ '82 \ 'c5 \ '82 \' b7 \ '81 \ '42 \ cf0 \ b0 \ f1 \ FS20 \ п \ п}

Не могли бы вы мне помочь?

+0

@Florian Schaetz: Спасибо за ваш ответ, я также нашел эту ссылку, но, похоже, она предоставляет C# solutio п :( –

ответ

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 " Кажется, что некорректная кодировка :( –

Смежные вопросы