Каково состояние генерации документов Word в 2021 году? (Языковой агностик)

#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 спасибо! Сделаю это.