2009-08-19 15 views
11

Szukam lekkiego silnika raportującego java, który zostanie osadzony w aplikacji apletu.Lekki mechanizm raportowania w języku Java

Moja pierwsza opcja to Raporty Jaspera, ale słoik ma ponad 2 MB, trochę za ciężki (i zbyt rozdęty) na moje potrzeby. Nie wiem, czy istnieje modułowa dystrybucja jaspisów, z funkcjami podzielonymi na kilka słoików (takich jak rendering html, pdf, excel, kompilacja, środowisko wykonawcze itp.).

Potrzebuję wyświetlić podgląd raportu za pomocą funkcji Swing i wydrukować go. Eksport PDF jest plusem.

Odpowiedz

1

Jeśli nie znajdziesz lepszego rozwiązania, powinno być możliwe utworzenie skasowanego pliku JAR dla raportów Jaspera. Narzędzie GenJar ma być w stanie zbudować plik JAR w oparciu o jego statyczne zależności.

Dawno temu używałam narzędzia obszczepienia "Classmaster" Zelixa, które dało ci możliwość usunięcia klas, które nie były używane. Myślę, że może nawet pozbawiłby się niewykorzystanych metod, choć moja pamięć jest trochę mglista. (Użyłem go na zamkniętym produkcie źródłowym ... który zniknął w dół po "czarnej dziurze" IP).

EDYCJA: kolejną opcją jest ProGuard, która powoduje zaciemnianie i zdzieraniu jak Classmaster, z wyjątkiem tego, że jest to open source. (Niestety, zdają się błędnie skonfigurować ich link do strony internetowej SF, ale powyższy link działa.)

Oczywiście, jeśli Jasper Reports używa Class.forName(), musisz zidentyfikować wszystkie odpowiednie klasy, dodać je jako zależności "root" dla narzędzie do usuwania, którego używasz. Ponadto musisz przejrzeć licencję Jasper Reports, aby upewnić się, że możesz "dystrybuować" pusty plik JAR.

+0

Jasper ładuje klasy dynamicznie, musisz dowiedzieć się zależności. – sventechie

6

Raporty Jaspera zawierają słój z podstawową funkcjonalnością do podglądu i drukowania raportów. Jest zapakowany jako jasperreports-x.x.x-applet.jar, z około 350k.

1

Dlaczego 2 MB jest zbyt duże dla biblioteki po stronie serwera? Docmosis ma rozmiar słoika poniżej 500k, ale wymaga OpenOffice na serwerze, więc jest mniejszy w jeden sposób, a większy w innym. Java nie załaduje 2Mb Jaspera do pamięci, chyba że użyjesz wszystkich funkcji/klas.

+1

Nie używam go po stronie serwera, ale po stronie klienta. Aplet ładuje strumień .jasper z serwera, a przeglądarka Swing przedstawia go użytkownikowi. – tuler

4

Wiem, że to trochę późno, ale z własnymi wymaganiami wydaje się idealne dopasowanie byłoby rozwiązanie raportowania firma pracuję gasi: i-net Clear Reports (kiedyś I-net Crystal Clear).

  • lekka i prosta przeglądarka (podobny do widza PDF)
  • Bardzo proste w użyciu API
  • można eksportować do kilka różnych formatów, w tym PDF
  • obsługuje dowolne źródło danych JDBC, lub również ręczne ustawianie danych
  • można uruchomić Crystal Reports szablony
  • Oferujemy również darmowy iw pełni funkcjonalny report designer

Sprawdź to i powiedz nam, co myślisz.

1

IMHO Chunk Templating engine jest najlepszy.Plik słoika ma tylko 180 KB! i obsługuje IF i iterację. Jakie to jest świetne !

+1

W przypadku plików PDF korzystam z Chunk do generowania kodu XML, który silnik Apache FOP może przekształcać w locie w plik PDF. –

+0

Czy funkcja Chunk Templating jest odpowiednia do raportów? Automatyczne grupowanie nagłówków i podsumowań/podsumowań wydaje się najważniejsze? Używam (w niektórych starych projektach) silnika szablonów do zgłaszania "w trybie ręcznym", jego ciężkiej pracy. –