我有一个 Word 文件,如下所示:
您不需要了解内容,只需看一下我的占位符<env>
和<applikationsabkürzung>
. 这些占位符有 10 页,现在我应该用其他内容替换它们。黑色和黄色方框是公司图片,我不会分享。
现在我开始阅读整个docx4j 文档并在一段时间后生成以下代码:
public void manipulateWord(String path, String env, String appl) {
try {
WordprocessingMLPackage wpml = WordprocessingMLPackage.load(new File(path));
MainDocumentPart mdp = wpml.getMainDocumentPart();
List<Object> content = mdp.getContent();
// Include all Strings to replace
HashMap<String, String> mappings = new HashMap<String, String>();
mappings.put("<env>", env);
mappings.put("<applikationsabkürzung>", appl);
for (Object object : content) {
Text textElement = (Text) object;
String textToReplace = textElement.getValue();
if (mappings.keySet().contains(textToReplace)) {
textElement.setValue(mappings.get(textToReplace));
}
}
wpml.save(new File("C:\\Users\\kristina\\Desktop\\outputfile.docx"));
} catch (Docx4JException e) {
LOG.error(e);
}
一些解释:
String path
就是上图中文件的路径String env
是应该替换的值<env>
String appl
是应该替换的值<applikationsabkürzung>
但是当我运行该方法时,什么也没有发生,我的控制台只打印一些信息。如果它们很重要,我会编辑帖子,但我不这么认为。
那么我的错在哪里?它会那样工作吗?不久前,我绝望了……