使用docx4J

时间:2017-04-09 07:55:55

标签: java docx4j

我有.docx个文件,其中包含mailMerge个字段。 我想将所有字段名称提取到List。 我看到了dox4J的一些例子,如何用映射值替换这些字段,但我不想替换它们,我只需要阅读它们。

使用docx4J是否有一种简单的方法可以做到这一点?

1 个答案:

答案 0 :(得分: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);