#java #spring #docx4j
Вопрос:
Я использую Docx4j с Java/Spring и создал сервис, который заменяет некоторые заполнители в документе значениями переменных.
Итак, в моем docx у меня есть «заполнитель», подобный этому: [адрес], который я заменяю 5 различными переменными вместе взятыми.
Мой код для этого таков:
Docx4JSRUtil.searchAndReplace(template, Stream.of(new String[][] {
"[address]", "" cust_street " " " " cust_locality " " cust_cap ""
}
Так что на самом деле мой код заменяет заполнитель всеми значениями в одной строке.
Но что мне на самом деле нужно сделать, так это записать эти 3 переменные в 2 разных строках с разрывом строки.
Поэтому вместо результата, такого как: каст-стрит, каст-населенный пункт, каст-кап
Мне нужен такой результат, как:
каст-стрит
населенный пункт cust cap
Заранее всем спасибо 🙂
Ответ №1:
Основываясь на Github Docx4JSRUtil
, он, по-видимому, используется исключительно для замены определенных вами переменных. Тем не менее, вам, возможно, потребуется отредактировать сам шаблон, чтобы утилита заменяла только указанные значения.
Не используйте утилиту для изменения формата шаблона, это нарушает всю цель его создания.
new_template.docx
${address}
${addressDetails}
Docx4JSRUtil.searchAndReplace(template, Map.of(
"${address}", cust_street,
"${addressDetails}", cust_locality " " cust_cap
));
Это должно породить:
new_doc.docx
cust_address
cust_locality cust_cap