2009-08-19 18 views
11

Sto cercando un motore di reportistica java leggero da incorporare in un'applicazione di applet.Motore di report Java leggero

La mia prima opzione era Jasper Reports, ma il barattolo è di oltre 2 Mb, un po 'troppo pesante (e troppo gonfio) per le mie esigenze. Non so se esiste una distribuzione modulare di jasper, con funzionalità suddivise in diversi jars (come html rendering, pdf, excel, compilation, runtime, ecc.).

Devo visualizzare l'anteprima del report utilizzando Swing e stamparlo. L'esportazione di PDF è un vantaggio.

risposta

1

Se non riesci a trovare una soluzione migliore, dovrebbe essere possibile creare un file JAR ridotto per Jasper Reports. Si suppone che lo strumento GenJar sia in grado di creare un file JAR in base alle sue dipendenze statiche.

Molto tempo fa, usavo lo strumento di deduzione "Classmaster" di Zelix che ti offriva la possibilità di rimuovere le classi che non erano state utilizzate. Penso che potrebbe anche aver spogliato i metodi inutilizzati, anche se la mia memoria è un po 'confusa. (L'ho usato su un prodotto closed source ... che è scomparso da un IP "blackhole".)

MODIFICA: un'altra opzione è ProGuard, che esegue l'offuscamento e lo spoglio come Classmaster, tranne che è open source. (Purtroppo, sembra che abbiano configurato male il loro link al sito Web. Ma il link sopra funziona.)

Naturalmente, se Jasper Reports utilizza Class.forName(), è necessario identificare tutte le classi rilevanti aggiungendole come dipendenze "root" per strumento di rimozione che si utilizza. Inoltre, è necessario consultare la licenza di Jasper Reports per assicurarsi che sia consentito "distribuire" un file JAR spogliato.

+0

Jasper esegue il caricamento dinamico delle classi, è necessario calcolare le dipendenze. – sventechie

6

Jasper Reports include un contenitore con funzionalità di base per visualizzare in anteprima e stampare rapporti. È impacchettato come jasperreports-x.x.x-applet.jar, con circa 350k.

1

Perché 2Mb è troppo grande per una libreria lato server? Docmosis ha una dimensione del jar inferiore a 500k, ma richiede OpenOffice sul server, quindi è più piccolo in un modo e più grande in un altro. Java non caricherà il 2Mb Jasper in memoria a meno che non si utilizzino tutte le funzionalità/classi.

+1

Non lo sto usando sul lato server, ma sul lato client. L'applet carica il flusso .jasper dal server e un visualizzatore swing lo presenta all'utente. – tuler

4

So che questo è un po 'tardi, ma con le vostre esigenze Sembra una misura perfetta sarebbe la soluzione di reporting l'azienda per cui lavoro mette fuori: i-net Clear Reports (usato per essere i-net cristallino).

  • spettatore Leggero e semplice (simile a un visualizzatore di PDF)
  • Molto semplice da usare API
  • può esportare in un mazzo di diversi formati, tra cui PDF
  • Supporta qualsiasi sorgente di dati JDBC, o anche l'impostazione manuale dei dati
  • possibile eseguire Crystal Reports modelli
  • Offriamo anche un libero e completamente funzionale report designer

Controllalo e dicci cosa ne pensi.

1

IMHO Chunk Templating engine è il migliore.Il file jar ha solo 180 KB! e supporta IF e iterazione. Quant'è fico !

+1

Per i PDF, utilizzo Chunk per generare XML che il motore Apache FOP può trasformare al volo in output PDF. –

+0

La funzionalità di Chunk Templating è specifica per i report? L'intestazione e i totali/subtotale dei gruppi automatici sembrano più importanti? Io uso (in alcuni vecchi progetti) il motore di template per la segnalazione "in modalità manuale", il suo duro lavoro. –