voglio usare sia Jasper Reports (vaniglia, mai avuto il Grails Jasper plugin al lavoro - vedi this) e Grails Rendering plugin (uno è più adatto per alcuni rapporti, un altro per altri).Quale versione di iText da utilizzare in modo che sia JasperReports e Grails rendering plugin funziona
Se includo "com.lowagie: itext: 2.1.5" o "com.lowagie: itext: 4.2.1", allora mi manca com.lowagie.text.pdf.BaseFont.getCharBBox quando si esegue il plug-in di Rendering Rapporto PDF.
Se includo "com.lowagie: itext: 2.0.8", allora mi manca com.lowagie.text.pdf.PdfWriter.setRgbTransparencyBlending sull'esecuzione del report PDF di Jasper.
Entrambi non riescono con java.lang.NoSuchMethodError-s.
Non ho provato con le ultime versioni di iText, ma hanno nomi di pacchetti diversi e licenze più restrittive, quindi non credo che sarebbero una buona misura.
mio BuildConfig.groovy si presenta così (una delle prime 3 dipendenze ottiene commentata):
dependencies {
// runtime 'com.lowagie:itext:4.2.1' // missing.BaseFont.getCharBBox
// runtime 'com.lowagie:itext:2.0.8' // missing PdfWriter.setRgbTransparencyBlending
// runtime 'com.lowagie:itext:2.1.5' // missing.BaseFont.getCharBBox
compile 'net.sf.jasperreports:jasperreports:5.2.0' // needed by jasper
runtime 'org.springframework:spring-test:3.2.4.RELEASE' // needed by rendering plugin
runtime 'commons-collections:commons-collections:3.2.1' // needed for jasper
}
plugins {
// ...
compile ":rendering:0.4.4"
// compile ":jasper:1.6.1" // couldn't get this to generate anything, but not sure it would help any
// ...
}
C'è qualche "vecchia" versione di iText (MPL-licenza) che ho potuto provare che può funzionare ?
C'è un modo per chiedere a Maven/Gradle di farlo in modo che possa chiedere a una delle librerie/plug-in di utilizzare una versione di iText e un'altra l'altra?
Ogni versione della libreria * JasperReports * dipende da versioni specifiche delle librerie di terze parti e * iText * non fa eccezione a questa regola. Puoi provare a tuo rischio e pericolo di sperimentare con la dipendenza * iText *. Puoi trovare la versione di * iText * nel * pom.xml * (vedi la * com.lowagie.itext * artefatto) della libreria * JR *. Ad esempio, * JR 5.2.0 * utilizza *** com.lowagie.itext-2.1.7.js2 *** artefatto –
Grazie, questo è utile. Ho cercato https://github.com/flyingsaucerproject/flyingsaucer/blob/master/flying-saucer-pdf/pom.xml e sembra che utilizzi itext 2.1.7, ma comunque non ci riesce. Penso che aprirò un difetto per Flying Saucer. –
Detto questo, supponendo che Jasper e Flying Saucer funzionino solo con una versione diversa della libreria iText, cosa si può fare per risolverlo? –