使用docx工厂设置不同的标头

时间:2018-01-03 00:06:28

标签: docx

我正在评估docxfactory api,它具有很好的功能。我试图添加页眉和页脚到docx模板,它工作正常。但是,我希望每个页面都有不同的页眉和页脚。例如,我需要在每个客户的页脚部分的标题和客户地址中显示客户名称。页面正文将包含其他客户订单。每个客户都必须在新页面中启动。我尝试了以下示例,但所有客户的标题都相同。标题没有变化。我尝试在文档中添加分节符,但它没有用。我搜索了docx工厂论坛,但找不到它。不确定这是不是正确的地方。

public class Dp1 {
 public static void main(String argv[]) {
  docpaging();
 }
 
  public static  void docpaging() {
    String inputFile = "D:\\fields.docx";
    String compileFile = "D:\\fields.dfw";
    String outputFile = "D:\\fields_output.docx";
    
    
    try {
      WordProcessingCompiler.compile(inputFile, compileFile);
      long startTime = System.currentTimeMillis();
      WordProcessingMerger.load(compileFile);
      for (int j = 0; j < 3; j++) {
        WordProcessingMerger.setClipboardValue("_Header", "PrintDate", (double) j);
        WordProcessingMerger.paste("Account");
        for (int i = 0; i < 3; i++) {
          WordProcessingMerger.setClipboardValue("Line", "LineDate", new Date());
          WordProcessingMerger.setClipboardValue("Line", "LineAmt", (double) i);
          WordProcessingMerger.setClipboardValue("Line", "LineDesc", "Desc" + i);
          WordProcessingMerger.paste("Line");
        }
      }
      WordProcessingMerger.save(outputFile);

      System.out.println("Completed (in " + (double) (System.currentTimeMillis() - startTime) / 1000 + " seconds).");
      openFile(outputFile, false);
    } catch (Throwable e) {
      System.err.println(e);
    }
  }
}

我无法附加docx示例。它可以从docxfactory.com下载。模板截图如下。我试图用不同的值替换标题中的占位符PrintDate,但它始终显示第一个值。甚至,我尝试在文档中添加分页符,但它没有用。

感谢。 enter image description here

1 个答案:

答案 0 :(得分:0)

目前,docxfactory的工作方式是,如果粘贴了不同的部分,它会创建一个新的部分(具有不同的页眉和页脚)。这是唯一一个会迫使新部门出现的情况。

可以做的是,如果_header或_footer中的字段被更改,它将强制新的部分,以便反映这些更改。这实际上是一个很小的变化。你被鼓励在github上做自己的改变或者等我这样做:)如果这是一个紧急情况,请随时直接与我联系。

目前,您可以将详细信息放在页面的顶部和底部,而不是使用部分页眉和页脚吗?查看扩展为填充页面的页面的分页章节。

请加入github上的项目。

btw新单词和excel版本即将推出,有很多新功能。

披露,我写了这个项目。

爱, ALON