Hello all,
I am creating bar charts using jfreechart-1.0.13.jar and jasperreports-3.0.0. 
Also I am using iReport 3.0.0 for designing the report. I have the following 
jar files in the lib folder of the application
[i]jcommon-1.0.16.jar
jfreechart-1.0.13.jar
jfreechart-1.0.13-experimental.jar
jfreechart-1.0.13-swt.jar
itext-1.3.1.jar
jasperreports-3.0.0.jar[/i]
I am using JFreeChart.createBufferedImage for getting a java.awt.Image file and 
then using JasperRunManager.runReportToPdf(String, Map, Connection) to write 
the image to a PDF file. I could successfully generate and store the chart 
image file in my local machine. But when I create a PDF with chart, I am 
getting a
black square. I tried to edit it using MS paint by inverting the color, the 
image is shown as a not~so~clear chart. Is it a problem with background color? 
Using iReport, I have set white as background and black as foreground for the 
image element. The codes for my java file and jasper is shown below. Please 
tell where I am wrong. I have already spent two days on this. It is very 
urgent. Thanks.

    public byte[] generateGraphicalBarReport(long institutionId, String 
finYear) throws Exception{
           byte[] report = null;
           Connection connection = null;
           PreparedStatement preparedStatement =null;
          ResultSet resultSet = null;
          JasperReport jasperReport;
           JasperPrint jasperPrint;
           Map<Object,Object> params=new HashMap<Object,Object>();
           String chartborder = "";
           
path=servlet.getServletContext().getRealPath(separator+"WEB-INF"+separator+"jasper"+separator+"GraphicalReport.jasper");
          
           try {
              
connection=DatabaseLookup.getInstance().getConnection("MYCONNECTION");
              
              DefaultCategoryDataset data = new DefaultCategoryDataset();
              preparedStatement = connection.prepareStatement
              ("select * from hmis.\"MY_DB_FUN\"(?,?)");   
              preparedStatement.setLong(1, institutionId);
              preparedStatement.setString(2, finYear);
                    
             
              resultSet = preparedStatement.executeQuery();
              while (resultSet.next()){             
                 data.addValue(new Integer(resultSet.getInt("TOTAL_NO")),
                             resultSet.getString("FINANCIAL_YEAR"), "TOTAL_NO");
                 data.addValue(new Integer(resultSet.getInt("FILTERED_NO")),
                             resultSet.getString("FINANCIAL_YEAR"), 
"FILTERED_NO");
              }
              
              
              JFreeChart chart 
=ChartFactory.createBarChart3D(chartborder,"Financial Year","No of persons",
                   
(org.jfree.data.category.CategoryDataset)data,PlotOrientation.VERTICAL,true,true,true);
              
              //The following code creates the chart image chart.jpg at d:\
              ChartUtilities.saveChartAsJPEG(new java.io.File("d:\\chart.jpg"), 
chart, 500, 300);
              
              java.awt.Image img=chart.createBufferedImage(700,325);
              
              //The following code creates the chart image chart1.jpg at d:\
              try {
                      BufferedImage bi = (BufferedImage) img; // retrieve image
                      File outputfile = new File("d:\\chart1.jpg");
                      ImageIO.write(bi, "jpg", outputfile);
              }
              catch (IOException e){
              }      
              
              //The following code opens a PDF file with a black colored 
square. But when the image was copied to
              //MS Paint and color inverted, it showed a not so clear bar chart.
              
              params.put("CHART_IMAGE",img);                             
              report = JasperRunManager.runReportToPdf(path,params,connection);
              response.setContentType("application/pdf");
               response.setHeader("content-disposition","inline");
               response.setContentLength(report.length);
               ServletOutputStream servletStream = response.getOutputStream();
               servletStream.write(report,0,report.length);
               servletStream.flush();
               servletStream.close();
              
              //The following code creates a PDF file C:\simple_report.pdf with 
a black colored square.
              //But when the image was copied to MS Paint and color inverted, 
it showed a not so clear bar chart.
                        
              jasperReport = 
JasperCompileManager.compileReport("C:\\GraphicalReport.xml");     
              jasperPrint = JasperFillManager.fillReport(jasperReport, params, 
connection);
              JasperExportManager.exportReportToPdfFile(
              jasperPrint, "C:\\simple_report.pdf");           
          }
           catch (Exception e){
              System.out.println("Error-->generateGraphicalBarReport "+e);
              throw new Exception(e);
           }
           finally{
              DatabaseLookup.closeConnection(connection);
           }
           return report;
       }


[b]/WEB-INF/jasper/GraphicalReport.jasper[/b]

<?xml version="1.0" encoding="UTF-8"  ?>
<!-- Created with iReport - A designer for JasperReports -->
<!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN" 
"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd";>
<jasperReport
       name="GraphicalReport"
       columnCount="1"
       printOrder="Vertical"
       orientation="Portrait"
       pageWidth="595"
       pageHeight="842"
       columnWidth="535"
       columnSpacing="0"
       leftMargin="30"
       rightMargin="30"
       topMargin="20"
       bottomMargin="20"
       whenNoDataType="NoPages"
       isTitleNewPage="false"
       isSummaryNewPage="false">
   <property name="ireport.scriptlethandling" value="0" />
   <property name="ireport.encoding" value="UTF-8" />
   <import value="java.util.*" />
   <import value="net.sf.jasperreports.engine.*" />
   <import value="net.sf.jasperreports.engine.data.*" />

   <parameter name="CHART_IMAGE" isForPrompting="false" class="java.awt.Image"/>
   <queryString><![CDATA[select CURRENT_DATE]]></queryString>

   <field name="date" class="java.sql.Date"/>

      <background>
         <band height="0"  isSplitAllowed="true" >
         </band>
      </background>
      <title>
         <band height="50"  isSplitAllowed="true" >
            <staticText>
               <reportElement
                  x="50"
                  y="7"
                  width="440"
                  height="40"
                  key="staticText-1"/>
               <box></box>
               <textElement textAlignment="Center" verticalAlignment="Middle">
                  <font pdfFontName="Helvetica-Bold" size="14" isBold="true"/>
               </textElement>
            <text><![CDATA[GRAPHICAL REPORT]]></text>
            </staticText>
         </band>
      </title>
      <pageHeader>
         <band height="0"  isSplitAllowed="true" >
         </band>
      </pageHeader>
      <columnHeader>
         <band height="0"  isSplitAllowed="true" >
         </band>
      </columnHeader>
      <detail>
         <band height="300"  isSplitAllowed="true" >
            <image  evaluationTime="Now" hyperlinkType="None"  
hyperlinkTarget="Self" >
               <reportElement
                  x="30"
                  y="10"
                  width="470"
                  height="280"
                  key="image-1"/>
               <box></box>
               <graphicElement stretchType="NoStretch"/>
               <imageExpression 
class="java.awt.Image"><![CDATA[$P{CHART_IMAGE}]]></imageExpression>
            </image>
         </band>
      </detail>
      <columnFooter>
         <band height="0"  isSplitAllowed="true" >
         </band>
      </columnFooter>
      <pageFooter>
         <band height="0"  isSplitAllowed="true" >
         </band>
      </pageFooter>
      <summary>
         <band height="0"  isSplitAllowed="true" >
         </band>
      </summary>
</jasperReport>
[Message sent by forum member 'roshni79' (roshni79)]

http://forums.java.net/jive/thread.jspa?messageID=343259

===========================================================================
To unsubscribe, send email to lists...@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST".  For general help, send email to
lists...@java.sun.com and include in the body of the message "help".

Reply via email to