0

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

我正在尝试创建像文本编辑器一样的写字板。我用过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);
4

1 回答 1

0

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

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

于 2013-06-27T16:34:12.063 回答