Как стать автором
Обновить

Комментарии 20

А файл будет целеком находиться в памяти? Можно ли использовать стили форматирования и т.п.? Спрашиваю, потому что есть задача выгружать огромные excel доки, а проблема в их объеме (слишком уж много памяти кушает).
И еще укажите плз какие либы вы использовали.
Для docx docx4j. Он там еще много чего умеет.
А файл будет целеком находиться в памяти?

Тут да целиком, еще JAXB там память кушает, но ровно один раз. Он сначала в буфер кладется, а уже потом начинает отдаваться. Делается для оптимизации производительности.

Можно ли использовать стили форматирования и т.п.?

Не совсем понял вопроса. Этот пример делает подстановку строк вида ${color} в файле на значения из Model по ключу. Полезно при генерации типовых документов на основе базы данных. Если надо что-то больше читайте API в docx4j.

Спрашиваю, потому что есть задача выгружать огромные excel доки, а проблема в их объеме (слишком уж много памяти кушает).

Если сильно большие то есть смысл писать на диск и потом пользователя редиректить на nginx, чтобы он отдавал файл.
Писать на диск — не вариант. С таким же успехом можно сразу выдвать в поток.

Тут задача в том, чтобы документ целиком не хранился в памяти, а сразу выдавался клиенту.
Это вам надо посмотреть тогда спецификацию servlets. Как это можно сделать. У меня файлы небольшие :)
Спасибо за совет. Сейчас правда уже пробуем выгружать в xml.
Этот пример делает подстановку строк вида ${color} в файле на значения из Model по ключу.


В каком формате находятся файлы шаблонов документов в папке docx-представлений?

Спрашиваю, потому что
1) не получилось по вашему примеру запустить подстановку ${color}, находящегося в теле docx-документа шаблона.
2) Сам год назад задавался проблемами процессинга docx, что в итоге вылилось в создание своей библиотеки для процессинга Groovy-скриптлетов внутри docx-документов. habrahabr.ru/post/142350/
В каком формате находятся файлы шаблонов документов в папке docx-представлений?

В docx. Если что-то работает не так проверьте все что указано тут norguhtar.livejournal.com/62598.html
И дружно скажем спасибо за счастливое детство microsoft.
О, вы приятно порадовали меня комментарием. Свое решение писал специально для обхода вот таких страданий с форматированием.

Хорошо, что docx хоть xml-based, можно работать с этим нормально…
Можно. Просто надо знать особенности генерации документа вордом и отключать то что нарушает нормальное представление документа. В odt с этим кстати намного лучше.
Мы делали проще. Свой view унаследованный от xslt на груви, который создает xml + стандартный шаблон из альтовы. работало кстати быстро. правда приходилось под каждый report писать свои xsd, создавать шаблоны и писать view.
Я бы не сказал что проще :)
Учитывая простоту груви и наитивность работы с xslt… =)
Да — более громоздко. И больше сущностей. Но тем не менее)
Спасибо, пригодится.
Извините за занудство, но Spring НЕ относится к Java Enterprise Edition.

Java EE (J2EE) — это конкретная платформа и набор стандартов от Sun/Oracle (http://www.oracle.com/technetwork/java/javaee/overview/index.html), с EJB, WAR, EAR, «косынкой» и бухгалтерами.

Spring — это фреймворк для создания Enterprise Java приложений.

Enterprise Java — это платформа и стандарты, а скорее, область применения и класс приложений. То есть, приложения для веба и больших предприятий.

Да, в Спринге используются отдельные технологии из Java EE (сервлеты, JSP, и т.д.), но он не является имплементацией стандартов J2EE.
Пардон, рановато отправил.

Spring framework был создан в пику J2EE, и не стоит помещать топики про спринг в блог Java Enterprise Edition (java2ee).

Извините за занудство, но Spring НЕ относится к Java Enterprise Edition.
Я вот не знаю почему, но большая часть топиков про Spring находятся в JEE к примеру:
habrahabr.ru/blogs/java2ee/100984/
habrahabr.ru/blogs/java2ee/83860/

А так я отлично знаю, что НЕ относится.
Я не спорю, что на Хабре исторически так сложилось, но, может, еще не поздно это исправить? :) Не пора ли завести блог про Spring?
У меня нету такой кнопки :]
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории