如何将文档中的样式文本持久存储在数据库中?

How to persistently store styled text from a Document in a database?

所以我目前正在开发一个允许用户创建 "posts" 带样式文本的程序。现在我正在使用 Java 的 DefaultStyledDocument,但我对其他选项持开放态度(不过最好是它们实现了 StyledDocument)。我最初发布了一些关于直接序列化 DefaultStyledDocuments 的内容。但是,可能有更好的方法来存储这些文档。我该怎么做?

此外,我希望能够将这些样式存储在数据库中(可能 MySQL),考虑到这一点时,我还需要知道什么吗?我可以直接导出到 XML 吗?

最后,快速讨论一下 HTML文档。我可以为此使用 HTMLDocuments,但是我听说过关于 Java 的 HTML 渲染器的不好的事情,我还希望用户能够轻松地编辑样式文本。 DefaultStyledDocument 允许使用 StyledEditorKit 非常容易地进行编辑。所以 HTMLDocuments 有其缺点,除非可以找到替代方案,否则我宁愿坚持使用 DefaultStyledDocuments。

最简单的方法是使用 RTFEditorKit 或 AdvancedRTFEditorKit 将文档写入 RTF 文本。哪个更好取决于您需要文档的用途。高级的支持表格、图像、缩进等,但需要单独的 jar 文件。 RTFEditorKit 是内置的,但不需要单独的 Jar 文件。

使用 AdvancedRTFEditorKit 编写:

AdvancedRTFEditorKit editor = new AdvancedRTFEditorKit();
Writer writer = new StringWriter();
editor.write(writer, content, 0, content.getLength());
writer.close();
String RTFText = writer.toString();

RTFEditorKit 使用类似的过程。其结果是一个字符串,很容易存储在大多数类型的数据库中。