RTFテキストの保存
Javaでリッチテキスト対応のエディタを作っているのですが、うまく保存ができません。
ご存知の方がいらっしゃればご教授頂けませんでしょうか?
【つまづいているところ】
RTFEditorKitを使って、Documentを保存すると、
文字配置(中央寄せなど)が保存されたファイルに反映されない。
(太字や、フォントサイズなどはちゃんと保存される)
【ソース(部分抜粋)】
//=====定義部分=====
StyleContext sc = new StyleContext();
DefaultStyledDocument doc = new DefaultStyledDocument(sc);
JTextPane textPane = new JTextPane(doc);
//=====フォント修飾(太字)=====
SimpleAttributeSet attr = new SimpleAttributeSet();
StyleConstants.setBold(attr, true);
textPane.setCharacterAttributes(attr, false);
//=====中央寄せ=====
SimpleAttributeSet attr = new SimpleAttributeSet();
StyleConstants.setAlignment(attr, StyleConstants.ALIGN_CENTER);
textPane.setParagraphAttributes(attr, false);
//=====保存=====
FileOutputStream out = new FileOutputStream("出力パス");
new RTFEditorKit().write(out, doc, 0, doc.getLength());
out.close();
【環境】
OS:win2000
JDK:jdk1.5.0_04
【参考にしたサイト】
JavaDrive
http://www.javadrive.jp/tutorial/appli/word/index.html
【備考】
ワードパッドと、RTFEditorKitで作成されたRTFファイルを見ると、
ワードパッド:\pard\qc a\par("a"を中央寄せで表示)
RTFEditorKit:a\par
となっていたので、前半の「\pard\qc」がうまく書き出されていないのが原因。
ただ、ワードパッドで文字配置を編集したテキストは問題なく読み込める。
APIドキュメントを見ると、RTFEditorKitは未だ不完全という感じなので、
documentを解析し、RTFに書き出す部分を自作するしかないでしょうか?
補足
指摘ありがとうございます。 確認してみましたが、フォント指定は通常通り黒です。 空白文字も存在せず、全選択等しようにも選択がそもそも出来ません。(何も文字が無い、という扱いにされているようです) タイトル以外は完全に「新規にワードパッドを開いた直後」と同様です。