home.social

#pdfbox — Public Fediverse posts

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

  1. GraphCompose: как я приволок ECS из геймдева и снапшот-тесты из фронта в PDF-генерацию на Java

    TL;DR Я сделал библиотеку для генерации PDF на Java, в которой: Документ описывается семантически (модули, секции, параграфы, таблицы, слои), а не через moveTo/lineTo/showText . Layout и рендер — это два разных прохода . Геометрия резолвится один раз, потом её рисуют. Поэтому документ можно тестировать до того, как написан хотя бы один байт PDF . Под капотом — ECS-архитектура в стиле игровых движков: Entity / Component / System. Сущности документа лежат в EntityManager , компоненты прицепляются и снимаются, системы ( LayoutSystem , PaginationSystem , RenderingSystem ) работают над ними. Тестирование трёхуровневое: unit → layout-снапшоты (как у Jest для React) → визуальная регрессия по PNG-диффу . На простом инвойсе библиотека идёт 2.45 мс (iText 5 — 1.57 мс, JasperReports — 4.45 мс). На стресс-тесте: 50 потоков, 5000 документов, 0 ошибок, ~2000 doc/sec . Это статья про задумку и инженерные решения, которые получились нетривиальными. Если вам интересно, как декларативный UI, ECS и снапшот-тесты влезают в одну библиотеку для PDF — заходите.

    habr.com/ru/articles/1030796/

    #open_source #java #pdf #pdfbox #graphcompose #layout_engine #document_generation #pagination #backend #visual_regression

  2. GraphCompose: как я приволок ECS из геймдева и снапшот-тесты из фронта в PDF-генерацию на Java

    TL;DR Я сделал библиотеку для генерации PDF на Java, в которой: Документ описывается семантически (модули, секции, параграфы, таблицы, слои), а не через moveTo/lineTo/showText . Layout и рендер — это два разных прохода . Геометрия резолвится один раз, потом её рисуют. Поэтому документ можно тестировать до того, как написан хотя бы один байт PDF . Под капотом — ECS-архитектура в стиле игровых движков: Entity / Component / System. Сущности документа лежат в EntityManager , компоненты прицепляются и снимаются, системы ( LayoutSystem , PaginationSystem , RenderingSystem ) работают над ними. Тестирование трёхуровневое: unit → layout-снапшоты (как у Jest для React) → визуальная регрессия по PNG-диффу . На простом инвойсе библиотека идёт 2.45 мс (iText 5 — 1.57 мс, JasperReports — 4.45 мс). На стресс-тесте: 50 потоков, 5000 документов, 0 ошибок, ~2000 doc/sec . Это статья про задумку и инженерные решения, которые получились нетривиальными. Если вам интересно, как декларативный UI, ECS и снапшот-тесты влезают в одну библиотеку для PDF — заходите.

    habr.com/ru/articles/1030796/

    #open_source #java #pdf #pdfbox #graphcompose #layout_engine #document_generation #pagination #backend #visual_regression

  3. GraphCompose: как я приволок ECS из геймдева и снапшот-тесты из фронта в PDF-генерацию на Java

    TL;DR Я сделал библиотеку для генерации PDF на Java, в которой: Документ описывается семантически (модули, секции, параграфы, таблицы, слои), а не через moveTo/lineTo/showText . Layout и рендер — это два разных прохода . Геометрия резолвится один раз, потом её рисуют. Поэтому документ можно тестировать до того, как написан хотя бы один байт PDF . Под капотом — ECS-архитектура в стиле игровых движков: Entity / Component / System. Сущности документа лежат в EntityManager , компоненты прицепляются и снимаются, системы ( LayoutSystem , PaginationSystem , RenderingSystem ) работают над ними. Тестирование трёхуровневое: unit → layout-снапшоты (как у Jest для React) → визуальная регрессия по PNG-диффу . На простом инвойсе библиотека идёт 2.45 мс (iText 5 — 1.57 мс, JasperReports — 4.45 мс). На стресс-тесте: 50 потоков, 5000 документов, 0 ошибок, ~2000 doc/sec . Это статья про задумку и инженерные решения, которые получились нетривиальными. Если вам интересно, как декларативный UI, ECS и снапшот-тесты влезают в одну библиотеку для PDF — заходите.

    habr.com/ru/articles/1030796/

    #open_source #java #pdf #pdfbox #graphcompose #layout_engine #document_generation #pagination #backend #visual_regression

  4. GraphCompose: как я приволок ECS из геймдева и снапшот-тесты из фронта в PDF-генерацию на Java

    TL;DR Я сделал библиотеку для генерации PDF на Java, в которой: Документ описывается семантически (модули, секции, параграфы, таблицы, слои), а не через moveTo/lineTo/showText . Layout и рендер — это два разных прохода . Геометрия резолвится один раз, потом её рисуют. Поэтому документ можно тестировать до того, как написан хотя бы один байт PDF . Под капотом — ECS-архитектура в стиле игровых движков: Entity / Component / System. Сущности документа лежат в EntityManager , компоненты прицепляются и снимаются, системы ( LayoutSystem , PaginationSystem , RenderingSystem ) работают над ними. Тестирование трёхуровневое: unit → layout-снапшоты (как у Jest для React) → визуальная регрессия по PNG-диффу . На простом инвойсе библиотека идёт 2.45 мс (iText 5 — 1.57 мс, JasperReports — 4.45 мс). На стресс-тесте: 50 потоков, 5000 документов, 0 ошибок, ~2000 doc/sec . Это статья про задумку и инженерные решения, которые получились нетривиальными. Если вам интересно, как декларативный UI, ECS и снапшот-тесты влезают в одну библиотеку для PDF — заходите.

    habr.com/ru/articles/1030796/

    #open_source #java #pdf #pdfbox #graphcompose #layout_engine #document_generation #pagination #backend #visual_regression

  5. The new bugfix release 2.0.36 of #Apache #PDFBox is available https://
    pdfbox.apache.org/download.html

  6. The new bugfix release 3.0.7 of #Apache #PDFBox is available https://
    pdfbox.apache.org/download.html

  7. I never realized how easy it is to create #PDF documents with #Java using #Apache #PDFBox. Printing with Java is just as easy as The #JDK has a wonderful PrintingService integratedalready! Why did i always put off using it. And with a bit of AI one can easily create nice looking documents!

    #programming

  8. @mattjohns The PDFBox command-line tool is good for this kind of thing (PDFMerger) pdfbox.apache.org/3.0/commandl

    But, yeah, Windows should let you arrange PDF pages (without AI) like MacOS Preview

    #pdf #windows #PDFBox

  9. Hey Fediverse

    Does anyone know how to append a sentence in a .pdf file through ITextPDF or PDFBox ?!!

    The appended sentence must be in a specific place !

    The pdf file is over 2k pages and the position changes from page to page !

    #itext #pdfbox #askfedi #java #help

  10. Hey Fediverse

    Does anyone know how to append a sentence in a .pdf file through ITextPDF or PDFBox ?!!

    The appended sentence must be in a specific place !

    The pdf file is over 2k pages and the position changes from page to page !

    #itext #pdfbox #askfedi #java #help

  11. Hey Fediverse

    Does anyone know how to append a sentence in a .pdf file through ITextPDF or PDFBox ?!!

    The appended sentence must be in a specific place !

    The pdf file is over 2k pages and the position changes from page to page !

    #itext #pdfbox #askfedi #java #help

  12. Hey Fediverse

    Does anyone know how to append a sentence in a .pdf file through ITextPDF or PDFBox ?!!

    The appended sentence must be in a specific place !

    The pdf file is over 2k pages and the position changes from page to page !

    #itext #pdfbox #askfedi #java #help

  13. Hey Fediverse

    Does anyone know how to append a sentence in a .pdf file through ITextPDF or PDFBox ?!!

    The appended sentence must be in a specific place !

    The pdf file is over 2k pages and the position changes from page to page !

    #itext #pdfbox #askfedi #java #help