我试图最终将 docx 文件中的内容复制到剪贴板。到目前为止我想出的代码是:
package config;
public class buffer {
public static void main(String[] args) throws IOException, XmlException {
XWPFDocument srcDoc = new XWPFDocument(new FileInputStream("D:\\rules.docx"));
XWPFDocument destDoc = new XWPFDocument();
OutputStream out = new FileOutputStream("D:\\test.docx");
for (IBodyElement bodyElement : srcDoc.getBodyElements()) {
XWPFParagraph srcPr = (XWPFParagraph) bodyElement;
XWPFParagraph dstPr = destDoc.createParagraph();
dstPr.createRun();
int pos = destDoc.getParagraphs().size() - 1;
destDoc.setParagraph(srcPr, pos);
}
destDoc.write(out);
out.close();
}
}
这确实获取了项目符号,但对它们进行了编号。我想保留原来的项目符号格式。有办法做到这一点吗?
最佳答案
您需要正确处理编号定义(在编号部分)。
最可靠的做法是复制定义(实例列表和抽象列表),并重新编号(即给它一个新的 ID),以便它是唯一的。
那么您当然需要更新段落中的 ID 以匹配。
请注意,以上只是针对您提出的问题的解决方案。
如果您的内容包含与其他部分(例如图像)的关系,您将会遇到问题。而且您不处理样式定义等。
关于java - 使用 Apache POI 从 docx 复制内容,项目符号完好无损,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30373954/