Comments 14
хорошая статья
А есть ли вообще аналоги Jasper в 21 году?
Большинство статей и форумов 10 летней давности...
Он вроде и работает и делает, что надо, но иногда не хватает его возможностей
Как пример не нашел (или нет поддержки) горизонтального растягивания, по максимальному элементу
Не стоит забывать, что JasperReports - это прежде всего система отчетности для печати (хоть ее и можно использовать для экспорта в Excel и прочего). Горизонтальное растягивание для печатных форм - это немножко нестандартный случай. А если учитывать, что там и так море чудес получается при Stretch With Overflow и прочих растягиваниях, то при горизонтальном был бы вообще хаос. Поэтому видимо решили не делать.
Но для Java действительно больше столь же популярных аналогов я не знаю.
перешел с него на jsreports. Он по-сути рендерит отчеты с помощью хрома. Шаблон в handlebars формате. Также поддержка шаблонов xlsx/docx есть... После монструозности jasper очень красиво и легковесно получается
Одна проблема, в том что там лицензия коммерческая. Платных аналогов в принципе достаточно, речь шла именно об open-source.
ну jsreports вполне себе лежит весь на гитхабе... но да - если больше 5 отчетов, там надо что-то заплатить.
Лежит на github'е (то есть open-source) и свободная лицензия - это далеко не одно и то же. Любой коммерческий продукт может открывать исходники. Но любая коммерческая лицензия библиотеки значительно осложняет распространение собственного продукта, ее использующую.
А если самому разрабатывать open-source продукт, то тогда любые библиотеки с GPL лицензиями (в том числе и AGPL, как был у jsreports раньше) уже не подходят.
Очень даже может быть :) Мы просто сразу купили и всё - 3000 крон в год не деньги...
Это конечно немного, но вы скорее всего конечный потребитель. А вот если вы будете перепродавать дальше что-то другим клиентам, то тогда возникнет много вопросов.
Apache POI, если устраивает генерировать таблицы руками, а не через формы. Хотя и пример в статье использует XSSF для допиливания результата до нормального состояния.
Auto-size для таблиц там есть: https://poi.apache.org/apidocs/dev/org/apache/poi/ss/usermodel/Sheet.html#autoSizeColumn-int-
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
Зачем ss одновременно с xssf использовать? В коде вроде никакой xssf-специфичной логики нет, можно на уровне ss остаться.
https://poi.apache.org/components/spreadsheet/converting.html
Использование Crosstab в бесплатной библиотеке отчетности JasperReports