2

こんにちはみんな!!! ローカル マシンに保存されている画像を含む pdf にエクスポートするジャスパー レポートを設計しました。必要に応じて、プロジェクトのクラスパスから画像を動的に追加する必要があります。以下にコードを投稿しています。画像を動的に追加 ...

 File tempFile = File.createTempFile(getClass().getName(), ".pdf");
    try {
        FileOutputStream fos = new FileOutputStream(tempFile);
        try {
            ServletOutputStream servletOutputStream = response.getOutputStream();
            InputStream reportStream = getServletConfig().getServletContext().getResourceAsStream("jasperpdf.jasper");
            try {
                String datum1 = request.getParameter("fromdate");
                String datum2 = request.getParameter("todate");
                SimpleDateFormat sdfSource = new SimpleDateFormat("dd-MM-yyyy");
                Date date = sdfSource.parse(datum1);
                Date date2 = sdfSource.parse(datum2);
                SimpleDateFormat sdfDestination = new SimpleDateFormat("yyyy-MM-dd");
                datum1 = sdfDestination.format(date);
                System.out.println(datum1);
                datum2 = sdfDestination.format(date2);
                System.out.println(datum2);

                String strQuery = "";
                ResultSet rs = null;

                conexion conexiondb = new conexion();
                conexiondb.Conectar();

                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);

                JasperRunManager.runReportToPdfStream(reportStream, fos, new HashMap(), resultSetDataSource);
                rs.close();
4

2 に答える 2

0

画像の相対パスを指定したときに機能していますか? つまりimages/image.jpg、プロジェクトに images という名前のフォルダーがあり、その中に image.jpg というファイルがあるはずです。

于 2013-06-11T16:39:36.843 に答える
0

私はジャスパーレポートの初心者です。このコードはあなたに役立つかもしれません

private static JRDesignImage getImage(int x_postion, int y_position, int width, int height,ScaleImageEnum scale_type, HorizontalAlignEnum align_type,
        JRDesignExpression expression) {
        JRDesignImage image = new JRDesignImage(null); 
        image.setX(0); 
        image.setY(8); 
        image.setWidth(97); 
        image.setHeight(50); 
        image.setScaleImage(ScaleImageEnum.RETAIN_SHAPE); 
        image.setHorizontalAlignment(HorizontalAlignEnum.LEFT);

        image.setExpression(expression); 
    // TODO Auto-generated method stub
    return image;
}

それから加えて

band = new JRDesignBand();
    band.setHeight(73);

    expression = new JRDesignExpression(); 
    expression.setValueClass(java.lang.String.class); 
    expression.setText("$P{imagePath}");
   // jasperDesign.addField();

    band.addElement(getImage(0,8,97,50,ScaleImageEnum.RETAIN_SHAPE,HorizontalAlignEnum.LEFT,expression)); 
于 2013-07-11T10:08:33.480 に答える