だから私はdocx4jを使用しようとしています。私はシンプルなテンプレートを作ってそれを使って、プログラムで値を置き換えます。docx4j:docxテンプレートを使用し、MergeField変数の値を置き換えます
ここに私のdocxテンプレートがあります。私はそれがこのようになりますトグルフィールドコードをクリックし
My Name is «myName»
I’m «myAge» years old.
My address is «myAddress»
。
My Name is {MERGEFIELD myName \* MERGEFORMAT}
I’m {MERGEFIELD myAge \* MERGEFORMAT} years old.
My address is {MERGEFIELD myAddress \* MERGEFORMAT}
私はMERGEFIELDの使用は知らないが、私はそれは、インターネットでのポストが現在使用しているものだから、単にそれを使用しようとしました。
ここに私のコードです。
DEFコンフィグ= grailsApplication.config.template.invoiceSampleマップとして
DEFストリングtemplateFileName = "$ {grailsApplication.config.template.dir}/$ {config.doc.templateFileName}"
WordprocessingMLパッケージテンプレート= WordprocessingMLPackage.load(新しいファイル(templateFileName));
マップマップ=新しいHashMap();
map.put(新しいDataFieldName( "@ myName")、 "Jean");
map.put(新しいDataFieldName( "@ myAge")、 "30");
map.put(新しいDataFieldName( "@ myAddress")、 "Sampaloc");
org.docx4j.model.fields.merge.MailMerger.setMERGEFIELDInOutput(MailMerger.OutputField.KEEP_MERGEFIELD);
org.docx4j.model.fields.merge.MailMerger.performMerge(template、map、false);
template.save(新しいファイル( "C:/temp/OUT_SIMPLE.docx"));
ただし、出力ファイルの値は置き換えません。私のコードで何が間違っているのか教えてください。