简体   繁体   中英

Get all mailMerge fields from docx using docx4J

I have .docx file, containing mailMerge fields. I want to extract all field names to List . I saw some examples of dox4J , how to replace these fields with mapped value, but I DO NOT want to replace them, I need to read them only.

Is there a semy easy way to do that using docx4J ?

Have a look at https://github.com/plutext/docx4j/blob/master/src/samples/docx4j/org/docx4j/samples/FieldsDiagnostics.java

You can also look at the code in 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);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM