所以我試圖使用docx4j。我做了一個簡單的模板,使用它並以編程方式替換th值。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 STRING templateFileName = 「$ {grailsApplication.config.template.dir}/$ {config.doc.templateFileName}」
WordprocessingMLPackage template = WordprocessingMLPackage.load(new File(templateFileName));
Map map = new HashMap(); (新的DataFieldName(「@ myName」),「Jean」); (新的DataFieldName(「@ myAge」),「30」); (新的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(new File(「C:/temp/OUT_SIMPLE.docx」));
但是,它不會替換輸出文件中的值。你能告訴我我的代碼有什麼問題嗎?