在JavaFX中显示富文本(.rtf)

时间:2014-08-13 19:11:00

标签: javafx-8 rtf

我有一个.rtf文件,我需要在JavaFX GUI中显示。

我的研究表明JavaFX TextFlow支持rich text through a tree of Node objects。但是,我对如何将.rtf文件表示为此节点树感到茫然。

我觉得应该有一种直观的方法将.rtf文件解析到Node树中,但我似乎无法找到方法来实现它!

1 个答案:

答案 0 :(得分:1)

在TextFlow中解析RTF和渲染

您可以解析rtf并生成它的TextFlow表示(类似于此markdown editor用于降价标记)。我相信这对你来说是一项艰巨的任务(RTF 1.9.1 specification长达277页)。描述如何做到这一点对于StackOverflow答案来说太长而且复杂(即使我可以描述它,我可能不会这样做。)

将RTF转换为JavaFX格式可以更轻松地呈现

我建议使用转换器(离线或使用在线服务)将RTF转换为其他格式,然后再尝试在JavaFX中呈现它。如果您事先知道这些文件,您可以在运送申请之前进行预转换,如果您没有,那么您必须在申请时提供实时转换设施。我不会推荐特定服务,但您可以谷歌并对RTF转换进行一些研究,看看是否有适合的服务。作为目标格式,您可以选择PDF或HTML,或图像(例如PNG)。

JavaFX将原生显示:

  1. 使用ImageView的图像。
  2. 使用WebView的HTML。
  3. 第三方库可用于使用JavaFX显示PDF文档或其他格式。