#apache-poi #docx #docx4j #export-to-word
#apache-poi #docx #docx4j #экспорт в word
Вопрос:
Итак, это довольно общий и расплывчатый вопрос, поэтому, пожалуйста, позвольте мне уточнить.
У нас большая кодовая база, которую мы разделяем в последние годы на более отдельные автономные библиотеки.
Одна из самых больших и громоздких частей — наш модуль экспорта Word. docx4j
В настоящее время он используется, однако мы сталкиваемся с проблемами с памятью при большом экспорте с большим количеством изображений. Кроме того, довольно сложно обновить экспортера из-за изменений в нашей модели предметной области.
Прошло много времени с тех пор, как кто-то работал над этим (например, годы …), Поэтому я взял на себя смелость исследовать состояние генерации документов Word в 2021 году. Я надеялся, что многое изменилось, но некоторые поиски в Google позволили мне найти сообщения 2010 года и библиотеки 2012 года. Конечно, может быть так, что библиотека 2012 года означает, что она настолько хороша.
Я определил следующие решения, хотя, вероятно, мне многого не хватает:
- Docx4j (JVM) по-прежнему поддерживается, из-за этого у нас возникают проблемы с памятью.
- Docx4j с привязкой данных управления контентом. Кажется, есть какой-то способ использовать шаблоны?
- Apache POI (JVM), у вас есть некоторый опыт работы с частью Excel, нет опыта работы с частью Word. «Консенсус» в Интернете, по-видимому, заключается в том, что Docx4j более удобен для пользователя.
- JasperReports. Ничего об этом не знаю.
- DocX, библиотека .NET, опыта нет.
- Надстройка Office с использованием Office.js (JS). Официальный API от Microsoft. Выполняется на клиенте в Word, поэтому требуется подключение к API.
- docxtemplates (узел / браузер). Нет опыта. Выглядит завершенным, хотя не знаю о производительности.
- officegen (узел). Последняя версия 2019.
- Carbone (узел). https://github.com/Ideolys/carbone . Также нет опыта.
- возможно, больше…
Итак, как и ожидалось, появилось множество библиотек и в JS.
Глядя на мои требования:
- было бы неплохо использовать шаблон
- было бы неплохо запустить его как сервис
- эффективный (с точки зрения памяти, не возражайте, если для генерации потребуется некоторое время)
У нас есть довольно хороший доступный API JSON, который очень прост в обслуживании и довольно хорошо соответствует нашей модели предметной области. Конечно, я предпочел бы использовать это в качестве источника.
каковы впечатления людей и / или мне не хватает некоторых очень хороших библиотек?
Комментарии:
1. Подумайте о том, чтобы задать вопрос в разделе «программное обеспечение».
2. @HongOoi спасибо! Сделаю это.