Comment ajouter une image en tant que paramètre de projets classpath dans jasper reports
J'ai conçu une jasper rapport à l'aide de ireport designer dans lequel j'ai ajouté l'image du logo dans le titre du rapport. Cette image est ajouté à partir de la codés en dur le chemin d'accès sur la machine locale. J'ai besoin d'ajouter le logo de l'image de mes projets classpath. Pour ce faire j'ai créé un paramètre de l'image dans le rapport qui est fourni par le programme.
InputStream imgInputStream = this.getClass().getResourceAsStream("header.png");
HashMap<String, Object> parameters = new HashMap<String, Object>();
parameters.put("dateFrom", datum1);
parameters.put("dateTo", datum2);
parameters.put("logo", imgInputStream);
strQuery = "Select calldate,src,dst,duration,disposition,cdrcost from cdrcost where date(calldate) between '" + datum1 + "' and '" + datum2 + "'";
rs = conexiondb.Consulta(strQuery);
JRResultSetDataSource resultSetDataSource = new JRResultSetDataSource(rs);
//JasperPrint jasperPrint = JasperFillManager.fillReport(reportStream, parameters);
JasperRunManager.runReportToPdfStream(reportStream, fos, parameters, resultSetDataSource);
Et au-dessous de l'image est extrait du rapport:
<image>
<reportElement x="0" y="1" width="555" height="61"/>
<imageExpression><![CDATA[$P{logo}]]>
</imageExpression>
</image>
OriginalL'auteur Amit | 2012-11-28
Vous devez vous connecter pour publier un commentaire.
Nous avons toujours passer de l'image au lieu de l'InputStream. Tout d'abord charger l'image et la définir dans le paramètre de la carte:
Puis le paramètre est défini comme:
Et lorsqu'il est placé dans le rapport qu'il ressemble:
Sir image ne se charge pas avec ce code et d'avoir d'erreur "java.lang.IllegalArgumentException: entrée == null!"
Je suppose que vous avez remplacé
"/images/IMAGE.png"
avec"header.png"
? Essayez"/header.png"
si c'est dans le package par défaut de la jarre.Salut jschoen je suis nouveau ireport. Je viens de suivre vos instructions. Créé un champ de paramètre dans ireport et le changement de l'Objet, et quand j'ai faites glisser et déposez les dans le titre, il se présente comme suit <textField> <reportElement x="44" y="44" width="100" height="20"/> <textElement/> <textFieldExpression><![CDATA[""+$P{logo}]]></textFieldExpression> </textField> Mais dans votre exemple, il est montré comme image. comment ?
Vous avez besoin d'échanger la
textFieldExpression
étiquette avec leimageExpression
.OriginalL'auteur Jacob Schoen
Vous pouvez facilement obtenir l'URL de la forme du classpath/classloader. C'est une entrée valide pour <imageExpression>, et, par conséquent, vous pouvez l'utiliser pour intégrer une image dans votre document pdf. Le suivant a fonctionné pour moi:
Le paramètre:
Déclaration dans le rapport:
Utilisation dans le rapport.
Quelques observations supplémentaires
OriginalL'auteur gus3001