Biblioteka generowania plików PDF dla Javy [zamknięta]

Wiem, że już o to pytano, ale wciąż nie jestem zdecydowany, który framework do generowania plików PDF użyć w moim obecnym projekcie.

Moje wymagania

    Generowanie dokumentów PDF w locie (głównie formularzy zamówień, faktur)
  • oparte na Javie
  • Łatwy w układaniu
  • powinno być open source
  • łatwa zmiana układu

Wydaje się, że wiele osób korzysta z iText , Ale mam pewne obawy (poza zmienioną licencją) dotyczące rozdzielenie obaw: w kontekście HTML jest dobre wsparcie dla MVC, gdzie zwykle trzymam się Spring MVC i FreeMarker, aby oddzielić logikę i układ. Trochę się martwię, że z itextem często mieszasz kod i layout.

Zdaję sobie sprawę, żeApache FOP może być tutaj rozwiązaniem, ale z drugiej strony uważam, że praca z XSLT jest żmudna i czytam, że FOP może być powolny, jeśli chodzi o ogromną przepustowość wielu dokumentów?

Rozważałem również JasperReports, ale z mojego zrozumienia jest to bardziej nadaje się do raportów zawierających tabelaryczne zbiory danych, a nie pojedynczych dokumentów, takich jak faktury, które wymagają dużo formatowania układu?

Jakieś przemyślenia na ten temat?

Author: Stefan Haberl, 2010-10-21

6 answers

Wypróbuj JasperReports. Użyj iReport aby utworzyć .pliki jrxml. JapserReports może obsługiwać złożone układy. Dla tych części raportu na podstawie różnych zapytań spójrz na korzystanie podraporty osadzone w raporcie głównym.

Podobnie jak rozwiązanie @ Adrian Smith, to podejście oddzieli edycję układu raportu od pozyskiwania danych.

 19
Author: Janek Bogucki,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-21 09:47:31

Zaimplementowałem dobre rozwiązanie, w którym moje oprogramowanie tworzy niezależny od formatu "czysty" plik XML, następnie daję mojemu szefowi XSD, a on umieszcza go w Altova StyleVision, gdzie może WYSIWYG projektować raporty na podstawie danych, które wyciąga z XSD. To oprogramowanie produkuje XSLT. Więc mój program:

  • tworzy niezależny od formatu" czysty " XML
  • przekształca go za pomocą XSLT, którego wyjściem jest XML-fo
  • Użyj Apache FOP do konwersji XML-FO do PDF

Jest to naprawdę świetne rozwiązanie, czyli nie muszę już (jako programista) zmieniać kodu za każdym razem, gdy mój szef chce zmienić kolor w raporcie, moim zadaniem jest po prostu produkować "czysty" XML.

Update: powinienem również zaznaczyć, że daję mojemu szefowi dostęp do naszego repozytorium SVN z Tortoise SVN, który jest na tyle łatwy w użyciu, że może z niego korzystać bez błędu. Więc może sprawdzić pliki XSLT prosto do SVN i uruchomić build / deploy bez nawet przeszkadzanie mi w pracy. Oczywiście, że workflow działa tylko z ludźmi, którzy są wystarczająco dokładni, że nie popełniają błędów itp. ale w takim razie dobrze nam to wychodzi.

 9
Author: Adrian Smith,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-21 09:59:12

Docmosis pozwala na tworzenie szablonów w programie Word lub OpenOffice writer-dzielenie zadań jest przyjemne, a layout znajduje się wtedy w najbardziej znanych narzędziach.

 2
Author: Paul Jowett,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-29 13:34:17

Bazując na moim doświadczeniu, sugerowałbym, abyś rozważył stosowanie Java PDF Libraries do tworzenia raportów PDF,

  1. DynamicReports
  2. Apache PDF Box
  3. iText PDF
  4. pdf Clown

Dla Twoich wymagań, myślę DynamicReports byłby właściwym wyborem. Używam dynamicznych raportów z ostatnich 3 lat dla wszystkich moich wymagań dotyczących raportowania PDF. Dzięki bardzo mniejszej ilości kodu możesz łatwo utworzyć prawdziwie dynamiczny plik PDF. Dynamicreports jest opakowaniem wokół raportu Jasper. Więc wewnętrznie korzysta z Jasper report.

 2
Author: Prasanna L M,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-29 09:35:52

Używam JODConverter od jakiegoś czasu i bardzo mi się podoba.

Używamy JODReports do generowania dynamicznych OpenOffice.org dokumentów (które wewnętrznie używają Freemarkera). Następnie konwertujemy te dokumenty do dokumentów PDF za pomocą JODConverter.

To brzmi jak dużo pracy, ale tak naprawdę nie jest.]}
 1
Author: Shervin Asgari,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-21 09:45:55

Jedna możliwość to

  • aby utworzyć dokumenty w formacie PostScript, a następnie
  • Konwertuj go do formatu pdf za pomocą ghostscript (ps2pdf)
 1
Author: Curd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-21 09:58:29