Как постоянно хранить стилизованный текст из документа в базе данных?
В настоящее время я работаю над программой, которая позволяет пользователям создавать "сообщения" со стилизованным текстом. Прямо сейчас я использую Java DefaultStyledDocument, но я открыт для других опций (хотя они, предпочтительно, реализуют StyledDocument). Первоначально я опубликовал кое-что о прямой сериализации DefaultStyledDocuments здесь. Однако, возможно, существует лучший способ хранения этих документов. Как я могу это сделать?
Кроме того, я хочу иметь возможность хранить эти стили в базе данных (возможно, MySQL), было бы что-нибудь еще, что мне нужно знать, когда я думаю об этом? Могу ли я напрямую экспортировать в XML?
Наконец, быстрое обсуждение HTMLDocuments. Я мог бы использовать HTMLDocuments для этого, однако я слышал о плохих вещах о Java-рендере HTML, и я также хочу, чтобы пользователи могли легко редактировать стилизованный текст. DefaultStyledDocument позволяет очень легко редактировать с помощью StyledEditorKit. Так что у HTMLDocuments есть свои недостатки, и если альтернативы не найти, я бы предпочел придерживаться DefaultStyledDocuments.
1 ответ
Самый простой способ сделать это - записать документ в текст RTF с помощью RTFEditorKit или AdvancedRTFEditorKit. Что предпочтительнее, зависит от того, для чего вам нужен документ. У продвинутого есть поддержка таблиц, изображений, отступов и многого другого, но требуется отдельный файл 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 использует аналогичный процесс. Результатом этого, String, легко хранить в большинстве типов баз данных.