如何将一个模板用于 XWPFDocument 中的多个页面 Java

How use the one Template for multiple pages in a XWPFDocument with Java

我想知道,如何在一个 XWPFDocument object.

中多次重复使用一个模板(里面有一页和一些变量)

我的想法是:

我只得到一页的作品。 当我尝试 clone/create/copy template-object 时,它将丢失他所有的样式信息。

How to copy a paragraph of .docx to another .docx withJava and retain the style

How to copy some content in one .docx to another .docx , using POI without losing format?

POI 可能不支持开箱即用,但我在我的项目 poi-mail-merge 中做了类似的事情,它与底层 XML 一起工作以重复替换模板 Microsoft 中的标记Word 文档并将结果合并到一个生成的文档中。

所以它基本上是将模板文档多次复制到生成的文档中。

请参阅 here 了解我的操作方法,基本上我处理 XML 正文并在那里执行 replacements/changes 然后将其附加到结果文档中。

POI Mail Merge 在其他情况下可能会有所帮助,但在我的情况下它不起作用。

我的解决方法是先将我的模板-XWPFDocument更新为所需的结构,临时保存并读回XWPFDocument-object.

步骤如下:

  • 把template-file读成XWPFDocument
  • 从 data-file 中读取记录,例如.csv
  • 计算与data-records
  • 相关的页数
  • 从模板中获取Bodyelements-Objects-XWPFDocument
  • 在模板中创建新的 Bodyelements(取决于页数)-XWPFDocument 并将它们替换为我们之前获得的相同 Objects
  • 暂时保存更新后的模板-XWPFDocument
  • 将临时保存的Template读入XWPFDocument
  • 替换所有占位符并用您的 CSV-Data
  • 填充它们

希望这对某人有所帮助