这似乎是一个很简单的问题,但我却遇到了很大的困难。
问题:
我有一些文本要插入到一个 HTMLDocument
中。这些文本有时候也会指定一些 HTML。例如:
Some <br />Random <b>HTML</b>
我正在使用HTMLEditorKit.insertHTML
在指定的偏移量处插入文本。这个方法很好用,除非该偏移量位于文档开头(偏移量=1)。在这种情况下,文本会被插入到文档的而不是中。
示例:
editorKitInstance.insertHTML(doc, offset, "<font>"+stringToInsert+"</font>", 0, 0, HTML.Tag.FONT);
我使用字体标签,这样我插入的内容就会在没有属性的字体标签中,因此不会影响格式。我需要知道这一点,因为最后一个参数 insertTag
是必需的,而且在运行时我无法知道 stringToInsert
的内容。如果文档中已经有文本(例如“1234567890”),那么输出结果如下:
<html>
<head>
</head>
<body>
<p style="margin-top: 0">
1234567890 <font>something <br />Some <br />Random <b>HTML</b></font>
</p>
</body>
</html>
然而,如果偏移量为1且文档为空,则结果如下:
<html>
<head>
<font>Some <br />Random <b>HTML</b></font>
</head>
<body>
</body>
</html>
其他注意事项:
- 所有操作都在
JEditorPane
的内部文档上进行。如果有更好的方法可以替换潜在包含 HTML 的JEditorPane
中的文本,我也会乐意接受这些想法。
感谢您的帮助!谢谢!