Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

docx4j does not replace variables

Tags:

docx4j

I just followed approach No 2 in the VariableReplace example from docx4j 2.8.1 and everything it does, is to remove the variable markers ${}.

The steps I did:

  • Opened Word 2013, typed ${variable} as text only
  • Saved it to somewhere
  • read it in my Java program and build my HashMap with .put("variable", "TEST");
  • other code is copied and pasted from the example above.
  • Saved the document

I'd expect 'TEST' solely, and get just 'variable' without the markers in the output document.

like image 960
Martin Dames Avatar asked Jun 13 '13 17:06

Martin Dames


1 Answers

No doubt Word is splitting your "variable" across runs, with grammar or spelling flags.

Fix it up with VariablePrepare

Put this line in after you instantiate the WordprocessingMLPackage:

VariablePrepare.prepare(wordMLPackage);

Then you can use your mappings to replace the variables.

like image 89
JasonPlutext Avatar answered Oct 06 '22 00:10

JasonPlutext