2017-04-09 55 views
0

我有.docx文件,其中包含mailMerge字段。 我想提取所有字段名稱到List。 我看到dox4J的一些例子,如何用映射值替換這些字段,但我不想替換它們,我只需要讀取它們。從docx使用docx4J獲取所有mailMerge字段

使用docx4J有沒有簡單的方法來做到這一點?

回答

0

看一看https://github.com/plutext/docx4j/blob/master/src/samples/docx4j/org/docx4j/samples/FieldsDiagnostics.java

您也可以看看MailMerger代碼:

// find fields 
    ComplexFieldLocator fl = new ComplexFieldLocator(); 
    new TraversalUtil(shellClone, fl);  

    // canonicalise and setup fieldRefs 
    List<FieldRef> fieldRefs = new ArrayList<FieldRef>(); 
    canonicaliseStarts(fl, fieldRefs); 

    // Populate 
    for (FieldRef fr : fieldRefs) { 

     if (fr.getFldName().equals("MERGEFIELD")) { 

      String instr = extractInstr(fr.getInstructions()); 
      String datafieldName = getDatafieldNameFromInstr(instr);