将JTextPane上标文本另存为RTF

时间:2013-06-27 04:16:43

标签: java swing save rtf jtextpane

如何将JTextPane上标文本保存为RTF?

我正在尝试像文本编辑器一样创建WordPad。我用了RTFEditorKit。我可以使用下面的代码添加上标。 (例如:X到权力2)

public void setSuperscript() {
   EditorKit editorKit = this.getEditorKit();
   MutableAttributeSet att = ((StyledEditorKit) editorKit).getInputAttributes();
   StyleConstants.setSuperscript(att, !StyleConstants.isSuperscript(att));
   super.setCharacterAttributes(att, false);
}

我将文件保存如下。

public void save(String fileName) {
     BufferedOutputStream out = new BufferedOutputStream(new  FileOutputStream(fileName));
   try {
     StyledDocument doc = this.getStyledDocument();
     OutputStream outputStream = new FileOutputStream(fileName);
     this.getEditorKit().write(out, doc, 0, doc.getLength());
   } catch (Exception e) {
     e.printStackTrace();
   } finally {
     out.close();
   }
}

成功保存。但是当我使用写字板打开它时,或者缺少Microsoft Word上标格式。

使用AdvancedEditorKit我得到了这个。

JTextPane pane = new JTextPane();
AdvancedRTFDocument document = new AdvancedRTFDocument();
AdvancedRTFEditorKit editor = new AdvancedRTFEditorKit();
editor.write("test.rtf", document);

1 个答案:

答案 0 :(得分:0)

您可以使用替代RTFEditorKit http://java-sl.com/advanced_rtf_editor_kit.html

默认功能有限,因此不支持许多RTF格式化功能。