java - 使用 Apache POI 从 docx 复制内容,项目符号完好无损

标签 java apache-poi docx docx4j

我试图最终将 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/

相关文章:

javascript - 如何使用 JavaScript 将 HTML 转换为 Docx 和 PDF

python - 用于单词模板的 Jinja2

java - docx4j 查找和替换

java - Spring集成和持久对象

java - wro4j 的 LessCssProcessor 导入和声明

java - Spring Boot POST 请求特定负载不被接受

java - 自动调整 xml 中图像的大小 - Android

java - JXL 和 POI FOR excel 文件生成的性能比较

java - 使用 Apache POI hslf 调整图片大小/压缩图片 - PowerPoint

java - 使用目录创建 excel 文件 Spring boot java