Комментарии 3
Плюс статье поставил, но так делать не надо - в java мире есть несколько template engine. Пока самый лучший из них https://github.com/opensagres/xdocreport . он поддерживает разные template engine внутри - velocity и free marker. Может продьюсить разные форматы помимо docx - odf, pdf (вроде что-то ещё).
Ещё есть https://github.com/thombergs/docx-stamper . Но я бы его не рекомендовал - он хоть и кажется легковесным но внутри spring идёт, плюс он плохо поддерживается (долго релизов не было), и на нём не всё можно сделать.
У меня так девелопер делал свой template engine, с кучей кода на java. В итоге переписал на xdocreport - осталось буквально 5 строк.
У меня так девелопер делал свой template engine, с кучей кода на java. В итоге переписал на xdocreport - осталось буквально 5 строк.
Вы не один. У меня тоже делал в 2013 году. Месяц возился, словил все те же проблемы (ну почти) что и автор данной статьи, но так и недоделал. В итоге тоже выбросили, взяли готовое решение (которое существует где-то с 2006 года), и внедрили за день.
И что характерно, на дворе конец 2024, а люди все еще берутся реализовывать все тоже самое, что уже было реализовано 20 лет назад.
Чтобы получить ответ на вопрос, надо его правильно задать. И после переформулирования вопроса ответ зачастую приходит сам собой.
В данном контексте стоит акцентировать внимание на следующих моментах:
Зачем (стоит ли) работать с файлами .docx?
Надо ли делать это на Java?
Какие вообще существуют решения для работы с документами, как их проще всего/удобнее формировать и обрабатывать?
Вы придумали себе проблему, и затем осознали всю боль её решения. Теперь стоит задуматься, как вообще избежать такой проблемы.
Кошмар работы с *.docx файлами на Java посредством класса XWPFDocument из API Apache POI