如何将现有的XWPFParagraph插入到org.apache.poi.xwpf.usermodel.XWPFDocument的其他XWPFParagraph之间的特定位置?

时间:2016-08-29 19:38:44

标签: java apache-poi

最初我有一个DOCX模板文档。所以我明白了 org.apache.poi.xwpf.usermodel.XWPFDocument out of it并且让我们说它有5个XWPFParagraph像:

<w:document>
  <w:body>
    <w:p> ... </w:p>
    <w:p> ... </w:p>
    <w:p> ... </w:p>
    <w:p> ... </w:p>
    <w:p> ... </w:p>
  </w:body>
</w:document>

然后我从另一个DOCX文件中获取一个XWPFParagraph,我需要将它插入到初始文档的第2和第3个XWPFParagraph之间。像这样:

<w:document>
  <w:body>
    <w:p> ... </w:p>
    <w:p> ... </w:p>
    <w:p> inserted Paragraph  </w:p>
    <w:p> ... </w:p>
    <w:p> ... </w:p>
    <w:p> ... </w:p>
  </w:body>
</w:document>

我该怎么办?

我可以说我尝试了什么: - 我尝试使用insertNewParagraph()方法,但它接缝就像创建新段落一样,但我需要插入我从其他文档中获取的现有段落。

private void insertParagraphAfter(XWPFParagraph p1, XWPFParagraph p2) {
    XWPFDocument doc = p1.getDocument();
    XmlCursor cursor = p1.getCTP().newCursor();
    XWPFParagraph newP = doc.insertNewParagraph(cursor);
    newP = p2;
}

但它没有接缝工作。

1 个答案:

答案 0 :(得分:1)

找到解决方案,

  1. 我可以在当前段落之前插入它;
  2. 需要明确复制所有运行
  3. enter image description here