如何将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);