Я могу использовать JEditorPane для анализа текста в формате rtf и преобразования его в html. Но в выводе html отсутствует некоторый формат, а именно в данном случае зачеркнутая разметка. Как вы можете видеть в выводе, подчеркнутый текст был правильно заключен в , но оболочка зачеркивания отсутствует. Есть идеи?
public void testRtfToHtml()
{
JEditorPane pane = new JEditorPane();
pane.setContentType("text/rtf");
StyledEditorKit kitRtf = (StyledEditorKit) pane.getEditorKitForContentType("text/rtf");
try
{
kitRtf.read(
new StringReader(
"{\\rtf1\\ansi \\deflang1033\\deff0{\\fonttbl {\\f0\\froman \\fcharset0 \\fprq2 Times New Roman;}}{\\colortbl;\\red0\\green0\\blue0;} {\\stylesheet{\\fs20 \\snext0 Normal;}} {\\plain \\fs26 \\strike\\fs26 This is supposed to be strike-through.}{\\plain \\fs26 \\fs26 } {\\plain \\fs26 \\ul\\fs26 Underline text here} {\\plain \\fs26 \\fs26 .{\\u698\\'20}}"),
pane.getDocument(), 0);
kitRtf = null;
StyledEditorKit kitHtml =
(StyledEditorKit) pane.getEditorKitForContentType("text/html");
Writer writer = new StringWriter();
kitHtml.write(writer, pane.getDocument(), 0, pane.getDocument().getLength());
System.out.println(writer.toString());
}
catch (Exception e)
{
e.printStackTrace();
}
}
Вывод:
This is supposed to be strike-through.
Underline text here
.?
Подробнее здесь: https://stackoverflow.com/questions/223 ... at-in-java