Итак, у меня есть JTextPane
co_LoggerEdit = new JTextPane();
co_LoggerEdit.setContentType("text/html");
Затем я сохраняю документ и стиль таким образом:
co_LogDoc = co_LoggerEdit.getStyledDocument();
co_LogStyle = co_LoggerEdit.addStyle("style", null);
Затем я добавляю текст в журнал с помощью этой процедуры:
StyleConstants.setForeground(co_LogStyle, col); // col == Color parameter
try { co_LogDoc.insertString(co_LogDoc.getLength(), text, co_LogStyle); }
catch (BadLocationException e) { System.err.println("Caught IOException: " + e.getMessage()); }
Все это прекрасно работает, и на экране я вижу журнал в различных цветах и записях.
Проблема возникает, когда я хочу сохранить эти данные в файл. В настоящее время у меня есть это:
public void me_SaveLogToFile(String filename)
{
StyledDocument doc = (StyledDocument)co_LoggerEdit.getDocument();
HTMLEditorKit kit = new HTMLEditorKit();
BufferedOutputStream out;
try
{
out = new BufferedOutputStream(new FileOutputStream(filename));
kit.write(out, doc, doc.getStartPosition().getOffset(), doc.getLength());
}
catch (Exception e)
{
cLogger cl_Logger = cLogger.getInstance();
cl_Logger.me_AddLog("ERROR: Save To File Failed", cLogger.LOG_TYPE.LOG_TYPE_ERROR, cLogger.LOG_LEVEL.LOG_LEVEL_NONE);
}
}
И, хотя он создает файл, его содержимое показывает только стиль HTML, но не фактическое содержимое. Например.
<html>
<head>
<style type="text/css">
<!--
style { color: #000000 }
-->
</style>
</head>
<body>
<p style="margin-top: 0">
<font color="#808080"><style>
</font><font color="#00ff00"><style>
</font><font color="#000000"><style>
</font> </p>
<p style="margin-top: 0">
<font color="#808080"><style>
</font><font color="#ffffff"><style>
</font><font color="#000000"><style>
</font> </p>
</body>
</html>
Итак, что мне нужно сделать, чтобы иметь доступ к реальному содержимому JTestPane, а не только к стилю?
Я также пытался просто использовать:
co_LoggerEdit.write(out)
через писателя, но результат был тот же.
В идеале я бы хотел сделать две вещи:
- Сохранение только необработанного текста без стиля в текстовом файле.
- Сохраняйте все содержимое в виде HTML, чтобы сохранить цвет и т. Д., Но с содержимым там!
Итак, на что мне нужно обратить внимание, чтобы найти фактическое содержимое JTextPane? (со стилем или без)