저는 GWT Richtextbox을 사용하고 있습니다. 그러나이 위젯은 간단한 텍스트 또는 HTML 형식의 값을 보여줍니다. GWT-Richtext 또는 GWT-htmlEditor 위젯에 RTF 데이터를 표시 할 수있는 방법이 있습니까? 아니면 다른 GWT 라이브러리에 위젯이 있나요?GWT에 RTF 형식의 데이터를 표시하는 richtextbox가 있습니까?
답변
저는 그렇게 생각하지 않습니다. 약 1 년 전 우리는 클라이언트 측에서 rtf 브라우저를 개발하려고했지만 실패했습니다. GWT-Rtf 라이브러리가 없습니다. 당신은 자바 스크립트로 작성된 것을 찾아서 JSNI로 랩핑하려고 시도 할 수는 있지만 그러한 라이브러리도 보지 못했습니다. 누군가는 Activex에서 가능할 수도 있다고 말했지만,이 방법을 사용해 보지 않았습니다.
달성하려는 목표는 무엇입니까? Microsoft Word와 같은 RTF 편집기와 문서를 공유하려면 해당 편집기가 HTML에서도 작동하는지 확인해야합니다. 나는 MS 워드가 HTML을 편집 할 수 있다는 것을 알고있다.
또는 RTF를 HTML로 바꾸고 서버 측에서 다시 고려할 수 있습니다. 거기에 몇 가지 Java 라이브러리가 있습니다. 그 중 하나는 Flying Saucer입니다.
HTMLEditorKit와 함께 RTFEditorKit을 사용하여 두 서버 측 또는 애플릿에서 변환 할 수 있습니다. 이렇게하면 GWT의 서식있는 텍스트 편집기와 출력 또는 입력 RTF를 사용할 수 있습니다.
public static String getHtmlFromRtf(InputStream fi){
Writer sOut = new StringWriter();
DefaultStyledDocument doc = new DefaultStyledDocument();
HTMLEditorKit htmlKit = new HTMLEditorKit();
RTFEditorKit rtf = new RTFEditorKit();
try
{
rtf.read(fi, doc, 0);
htmlKit.write(sOut, doc, 0, doc.getLength());
}
catch (IOException e)
{
e.printStackTrace();
}
catch (BadLocationException e)
{
e.printStackTrace();
}
return sOut.toString();
}
답장을 보내 주셔서 감사합니다. 그러나이 방법의 문제점은 여러 공백입니다. GWT의 richtext 편집기는 여러 공백을 무시합니다. –
html로 로 변경하십시오. – LINEMAN78
이 방법은 쉽지 않습니다.
메서드 변경을
로 바꾸십시오. 허용되지 않습니다. 엔 지능형 대체 방법이 필요합니다. –
데이터베이스에 RTF 데이터가 있습니다. 인터넷 브라우저에 표시하고 사용자가 편집합니다. 그래서 RTF를 HTML로 변환하여 사용합니다. 그러나 HTML을 사용하면 EDITOR에서 여러 공백이 무시됩니다. 따라서 텍스트 형식이 손실되고 사용자는 저장하기 전에 입력 한 내용을 볼 수 없습니다. –
아마 편집자에서 정상적인 공백을 비 - 공백 공백 (http://en.wikipedia.org/wiki/Non-breaking_space)으로 바꾸는 문제 일 것입니다. KeyDownHandler (http://google-web-toolkit.googlecode.com/svn/javadoc/2.1/com/google/gwt/event/dom/client/HasKeyDownHandlers.html)로 키 누르기를 가로 챌 때 바로 수행 할 수 있습니다.) – David
고맙지 만 문제는 이것이 아닙니다. 사용자가 타이핑 할 때 아무런 문제가 없습니다. 저장된 데이터가 DB에서 가져와 에디터에 저장 될 때 문제가 발생합니다. –