【问题标题】:java split Styleddocument into twojava将Styleddocument拆分为两个
【发布时间】:2013-09-04 11:14:21
【问题描述】:

我有一个 DefaultStyledDocument,里面有一个格式化的文本。我还有一个函数,它用 Pattern-Matcher 分割内容(作为纯文本)。

我需要一个函数,它从拆分的输出中生成新的完整 DefaultStyledDocuments

DefaultStyledDocument doc = new DefaultStyledDocument();
Functions.loadRtfToDocument(rtfText, doc); //rtfText is a RTF-String

Pattern pattern = Pattern.compile("^((\\s*)•)", Pattern.MULTILINE);
Matcher matcher = pattern.matcher(plainText);
while(matcher.find()){
    int start = matcher.start();
    int end = matcher.end();
    DefaultStyledDocument target = new DefaultStyledDocument();
    //Fill the target with the styled text (from start to end)
}

【问题讨论】:

  • 你看过jrtf吗?
  • 嗨,不,我使用 RTFEditorKit... jrtf 可以将文档分成两部分吗? (例如,在列表元素处拆分)

标签: java swing split document rtf


【解决方案1】:

这不是一件小事。想象一下,您的起始位置位于嵌套表的中间,而结束位置位于基表之后的有序列表的中间。

对于最简单的 cas,当您在文档中只有段落和文本时,您可以遍历所有段落元素,询问它们的开始和结束偏移量,并与匹配器的偏移量进行比较。如果段落适合范围,则通过段落元素的子元素(文本元素)。对于适合给定范围的每个文本元素,只需在目标文档中调用 insertString(),从文本元素传递文本和属性。

【讨论】:

  • 嗨,是的,只有段落(带有列表和文本)包括在内。所以没有复杂的元素,如表格、图像等。
猜你喜欢
  • 1970-01-01
  • 2010-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-05
  • 1970-01-01
  • 1970-01-01
  • 2021-04-14
相关资源
最近更新 更多