2011-04-28 12 views
9

RTF 문자열을 Java의 일반 텍스트로 어떻게 변환합니까? 분명한 대답은 Swing의 RTFEditorKit을 사용하는 것인데, 이는 인터넷을 둘러싼 일반적인 대답 인 것 같습니다. 그러나 일반 텍스트를 반환한다고 주장하는 write 메소드는 실제로 구현되지 않습니다 ... Java6에서 IOException을 던지기 위해 하드 코딩되었습니다.Java의 RTF에서 일반 텍스트로

답변

15

나는 다음과 같은 자바 6 스윙의 RTFEditorKit를 사용

RTFEditorKit rtfParser = new RTFEditorKit(); 
Document document = rtfParser.createDefaultDocument(); 
rtfParser.read(new ByteArrayInputStream(rtfBytes), document, 0); 
String text = document.getText(0, document.getLength()); 

그리고 그게 전부가 작동.

+0

처음에는 작동하지 않았지만이 솔루션을 사용하여 작동했습니다. 입력 데이터가 유효하지 않으며 변환이 자동으로 실패하고 빈 문자열을 반환하는 것으로 나타났습니다. – edm3

+1

그것은 나를 위해 작동하지만, 어떤 이유로 텍스트가 떨어 뜨린 문자로 나옵니다. –

+0

Windows 플랫폼에서는 정상적으로 작동하지만 * nix 플랫폼에서는 X11 윈도우 서버에 종속적입니다. – Valijon

0

RTF Parser Kit을 Swing RTFEditorKit에 대한 간단한 대안으로 생각할 수 있습니다. 아래 줄은 RTF 파일에서 일반 텍스트 추출을 보여줍니다. 입력 스트림에서 RTF 파일을 읽으면 추출 된 텍스트가 출력 스트림에 기록됩니다.

new StreamTextConverter().convert(new RtfStreamSource(inputStream), outputStream, "UTF-8"); 

(전체 공개 : 나는 RTF 파서 키트의 저자 해요),

관련 문제