home.social

#pdf — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #pdf, aggregated by home.social.

  1. Модульная надстройка для JasperReports: подключение и что делает процессор при сборке. Часть 3

    Третья часть серии — практическая. Как подключить библиотеку к Maven-проекту, написать первый модульный отчёт и что после этого происходит с шаблоном при сборке. Субрепорт — это класс, отчёт — тоже класс, а поля класса и есть содержимое отчёта. Имена параметров шаблона берутся из имён полей, поэтому один и тот же модуль можно поставить в отчёт дважды и получить два независимых субрепорта со своими данными. Аннотационный процессор при компиляции находит существующий JRXML, дописывает в него недостающие параметры, датасеты и банды субрепортов и кладёт результат в target/generated-sources. Шаблон в src он не трогает никогда. Отдельно — про то, кто владеет шаблоном, когда в один файл пишут и кодогенератор, и человек в Jaspersoft Studio, и где у этой схемы слабое место. Первая часть — откуда взялся Jasper и почему он так устроен , вторая — один стандарт и три идеи .

    habr.com/ru/articles/1086826/

    #jasperreports #java #open_source #jrxml #spring_boot #отчёты #pdf #аннотационный_процессор #субрепорты

  2. Модульная надстройка для JasperReports: подключение и что делает процессор при сборке. Часть 3

    Третья часть серии — практическая. Как подключить библиотеку к Maven-проекту, написать первый модульный отчёт и что после этого происходит с шаблоном при сборке. Субрепорт — это класс, отчёт — тоже класс, а поля класса и есть содержимое отчёта. Имена параметров шаблона берутся из имён полей, поэтому один и тот же модуль можно поставить в отчёт дважды и получить два независимых субрепорта со своими данными. Аннотационный процессор при компиляции находит существующий JRXML, дописывает в него недостающие параметры, датасеты и банды субрепортов и кладёт результат в target/generated-sources. Шаблон в src он не трогает никогда. Отдельно — про то, кто владеет шаблоном, когда в один файл пишут и кодогенератор, и человек в Jaspersoft Studio, и где у этой схемы слабое место. Первая часть — откуда взялся Jasper и почему он так устроен , вторая — один стандарт и три идеи .

    habr.com/ru/articles/1086826/

    #jasperreports #java #open_source #jrxml #spring_boot #отчёты #pdf #аннотационный_процессор #субрепорты

  3. Модульная надстройка для JasperReports: подключение и что делает процессор при сборке. Часть 3

    Третья часть серии — практическая. Как подключить библиотеку к Maven-проекту, написать первый модульный отчёт и что после этого происходит с шаблоном при сборке. Субрепорт — это класс, отчёт — тоже класс, а поля класса и есть содержимое отчёта. Имена параметров шаблона берутся из имён полей, поэтому один и тот же модуль можно поставить в отчёт дважды и получить два независимых субрепорта со своими данными. Аннотационный процессор при компиляции находит существующий JRXML, дописывает в него недостающие параметры, датасеты и банды субрепортов и кладёт результат в target/generated-sources. Шаблон в src он не трогает никогда. Отдельно — про то, кто владеет шаблоном, когда в один файл пишут и кодогенератор, и человек в Jaspersoft Studio, и где у этой схемы слабое место. Первая часть — откуда взялся Jasper и почему он так устроен , вторая — один стандарт и три идеи .

    habr.com/ru/articles/1086826/

    #jasperreports #java #open_source #jrxml #spring_boot #отчёты #pdf #аннотационный_процессор #субрепорты

  4. I’ve long been a fan of Preview on MacOS 😍 – it’s easily one of the most understated super-app with a deceptively simple UX 🤯:

    “Apple Preview Is Kinda Insane”, MacVince (youtu.be/FMiTNASBHiE).

    #Apple #Preview #UX #MacOS #Design #PDF #Converter #Video

  5. I’ve long been a fan of Preview on MacOS 😍 – it’s easily one of the most understated super-app with a deceptively simple UX 🤯:

    “Apple Preview Is Kinda Insane”, MacVince (youtu.be/FMiTNASBHiE).

    #Apple #Preview #UX #MacOS #Design #PDF #Converter #Video

  6. I’ve long been a fan of Preview on MacOS 😍 – it’s easily one of the most understated super-app with a deceptively simple UX 🤯:

    “Apple Preview Is Kinda Insane”, MacVince (youtu.be/FMiTNASBHiE).

    #Apple #Preview #UX #MacOS #Design #PDF #Converter #Video

  7. I’ve long been a fan of Preview on MacOS 😍 – it’s easily one of the most understated super-app with a deceptively simple UX 🤯:

    “Apple Preview Is Kinda Insane”, MacVince (youtu.be/FMiTNASBHiE).

    #Apple #Preview #UX #MacOS #Design #PDF #Converter #Video

  8. I’ve long been a fan of Preview on MacOS 😍 – it’s easily one of the most understated super-app with a deceptively simple UX 🤯:

    “Apple Preview Is Kinda Insane”, MacVince (youtu.be/FMiTNASBHiE).

    #Apple #Preview #UX #MacOS #Design #PDF #Converter #Video

  9. Модульная надстройка для JasperReports: один стандарт и три идеи. Часть 2

    Во второй части серии — чего ждёт от инструмента отчётов современный Java-разработчик и на каких идеях я собрал свою надстройку над JasperReports — не переписывая движок и не отказываясь от Jaspersoft Studio. Один стандарт вместо нескольких способов передать данные: в отчёт едут обычные Java-объекты. Дерево вместо плоской сетки банд: отчёт собирается из модулей, вложенных друг в друга, включая повторяющиеся. Слои: данные добывает Java, вёрстка остаётся в JRXML и в Studio. И объект как единый носитель структуры, данных и имён — вместо одного и того же смысла, продублированного и в XML, и в коде. Отдельно — ответ на возражение из комментариев к первой статье: зачем вообще выносить выборку данных из шаблона, если Jasper умеет ходить в базу сам. Первая часть серии — откуда взялся Jasper и почему он так устроен .

    habr.com/ru/articles/1086768/

    #jasperreports #java #open_source #jrxml #spring_boot #отчёты #pdf #аннотационный_процессор #субрепорты

  10. Модульная надстройка для JasperReports: один стандарт и три идеи. Часть 2

    Во второй части серии — чего ждёт от инструмента отчётов современный Java-разработчик и на каких идеях я собрал свою надстройку над JasperReports — не переписывая движок и не отказываясь от Jaspersoft Studio. Один стандарт вместо нескольких способов передать данные: в отчёт едут обычные Java-объекты. Дерево вместо плоской сетки банд: отчёт собирается из модулей, вложенных друг в друга, включая повторяющиеся. Слои: данные добывает Java, вёрстка остаётся в JRXML и в Studio. И объект как единый носитель структуры, данных и имён — вместо одного и того же смысла, продублированного и в XML, и в коде. Отдельно — ответ на возражение из комментариев к первой статье: зачем вообще выносить выборку данных из шаблона, если Jasper умеет ходить в базу сам. Первая часть серии — откуда взялся Jasper и почему он так устроен .

    habr.com/ru/articles/1086768/

    #jasperreports #java #open_source #jrxml #spring_boot #отчёты #pdf #аннотационный_процессор #субрепорты

  11. Модульная надстройка для JasperReports: один стандарт и три идеи. Часть 2

    Во второй части серии — чего ждёт от инструмента отчётов современный Java-разработчик и на каких идеях я собрал свою надстройку над JasperReports — не переписывая движок и не отказываясь от Jaspersoft Studio. Один стандарт вместо нескольких способов передать данные: в отчёт едут обычные Java-объекты. Дерево вместо плоской сетки банд: отчёт собирается из модулей, вложенных друг в друга, включая повторяющиеся. Слои: данные добывает Java, вёрстка остаётся в JRXML и в Studio. И объект как единый носитель структуры, данных и имён — вместо одного и того же смысла, продублированного и в XML, и в коде. Отдельно — ответ на возражение из комментариев к первой статье: зачем вообще выносить выборку данных из шаблона, если Jasper умеет ходить в базу сам. Первая часть серии — откуда взялся Jasper и почему он так устроен .

    habr.com/ru/articles/1086768/

    #jasperreports #java #open_source #jrxml #spring_boot #отчёты #pdf #аннотационный_процессор #субрепорты