Post the two resulting PDFs somewhere for inspection. Looking at the
code without the images doesn't help. 

> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On 
> Behalf Of Rochana Attale
> Sent: Wednesday, February 02, 2005 5:13 AM
> To: [email protected]
> Subject: [iText-questions] Why are the results of" 
> Image.getInstance(URL uRL)" and "Image.getInstance(Image 
> image, Color color)" different ?
> 
> Paulo,
> 
>  
> 
> It is not impossible. The following is my code. I have added 
> a comment "//*** Problem Area ***//" where 
> 
> I used both ways to get the results I have mentioned in my 
> previous posting. What is the cause of this 
> 
> outcome? 
> 
>  
> 
> public static synchronized ByteArrayOutputStream getPDF(File file,
> 
>     String[] header,
> 
>     String[] tableheader,
> 
>     String[][] tablecontent,
> 
>     Vector visibleRatioNames,
> 
>     String[] groupStrings,
> 
>     Vector graphs) throws
> 
>     DocumentException, FileNotFoundException, IOException
> 
>  
> 
> {
> 
>   Font fontGreyHevNormal_11 =  
> FontFactory.getFont(FontFactory.HELVETICA_BOLD, 11, 
> 
> Font.NORMAL,Color.gray);
> 
>   Font fontBlackHevNormal_9 = 
> FontFactory.getFont(FontFactory.HELVETICA, 9, Font.NORMAL);
> 
>   Font fontRatioHevNorm_7 = 
> FontFactory.getFont(FontFactory.HELVETICA, 7, Font.NORMAL);
> 
>   Font fontHevNorm_10 = 
> FontFactory.getFont(FontFactory.HELVETICA_BOLD, 10, Font.NORMAL);
> 
>   Font fontHevNorm_8= 
> FontFactory.getFont(FontFactory.HELVETICA_BOLD, 8, Font.NORMAL);
> 
>   FontFactory.getFont(FontFactory.HELVETICA, 9, Font.NORMAL);
> 
>   Document doc = new Document(PageSize.A4, 70, 70, 70, 70);
> 
>   ByteArrayOutputStream bos = new ByteArrayOutputStream();
> 
>   PdfWriter docWriter = PdfWriter.getInstance(doc, bos);
> 
>   doc.open();
> 
>   // Add the document header.
> 
>   Table table1 = new Table(1, 1);
> 
>   table1.setWidth(100);
> 
>   table1.setBorderColor(new Color(0, 0, 0));
> 
>   table1.setSpaceInsideCell(2);
> 
>   Chunk headerchunk = new Chunk(header[0], fontGreyHevNormal_11);
> 
>   Cell headerCell = new Cell(headerchunk);
> 
>   headerCell.setVerticalAlignment(Cell.ALIGN_CENTER);
> 
>   table1.addCell(headerCell);
> 
>   doc.add(table1);
> 
>   // Sub headings
> 
>   Chunk subheading1 = new Chunk(header[1], fontBlackHevNormal_9);
> 
>   Chunk subheading2 = new Chunk(header[2], fontBlackHevNormal_9);
> 
>   Chunk subheading3 = new Chunk(header[3], fontBlackHevNormal_9);
> 
>   doc.add(new Paragraph(" "));
> 
>   doc.add(new Paragraph(subheading1));
> 
>   doc.add(new Paragraph(subheading2));
> 
>   doc.add(new Paragraph(subheading3));
> 
>   // Content table
> 
>   Table contentTable = new Table(2 + tableheader.length,
> 
>                                  tablecontent.length);
> 
>   contentTable.setWidth(100);
> 
>   contentTable.setBorderWidth(0.5f);
> 
>   contentTable.setBorderColor(Color.gray);
> 
>   int[] widths = new int[2 + tableheader.length];
> 
>   if(widths.length == 2){ widths[0]=50;widths[1]=50;
> 
>   }else if(widths.length == 3){ widths[0]=7;widths[1]=43;widths[2]=50;
> 
>   }else if(widths.length == 4){ 
> widths[0]=7;widths[1]=43;widths[2]=25;widths[3]=25;
> 
>   }else if(widths.length == 5){ 
> widths[0]=7;widths[1]=33;widths[2]=20;widths[3]=20;widths[4]=20;}
> 
>   contentTable.setWidths(widths);
> 
>   contentTable.setPadding(2);
> 
>   for (int i = 0; i < tableheader.length; i++) {
> 
>     Chunk tableheading = new Chunk(tableheader[i], 
> fontRatioHevNorm_7);
> 
>     Cell c = new Cell(tableheading);
> 
>     c.setVerticalAlignment(Cell.ALIGN_MIDDLE);
> 
>     c.setBorderColor(Color.gray);
> 
>     contentTable.addCell(c, new Point(0, 2 + i));
> 
>   }
> 
>   for (int i = 1; i < tablecontent.length; i++) {
> 
>     String[] str = tablecontent[i - 1];
> 
>     for (int j = 0; j < str.length - 1; j++) {
> 
>       if (j == 0 && str[str.length - 1].equalsIgnoreCase("true")) {
> 
>         fontRatioHevNorm_7.setColor(new Color(255, 153, 51));
> 
>       }
> 
>       else {
> 
>         fontRatioHevNorm_7.setColor(Color.black);
> 
>       }
> 
>       Cell c = new Cell(new Chunk(str[j], fontRatioHevNorm_7));
> 
>       c.setVerticalAlignment(Cell.ALIGN_CENTER);
> 
>       c.setBorderColor(Color.gray);
> 
>       contentTable.addCell(c, new Point(i, j));
> 
>     }
> 
>   }
> 
>   doc.add(contentTable);
> 
>   doc.newPage();
> 
>  
> 
>   int visibleRatioSize = visibleRatioNames.size();
> 
>   int graphCounter = 0;
> 
>   for (int i = 0; i < visibleRatioSize; i++) {
> 
>  
> 
>     String ratioName = (String) visibleRatioNames.get(i);
> 
>     Table ratioNameTable = new Table(1, 1);
> 
>     ratioNameTable.setWidth(100);
> 
>     ratioNameTable.setBorderColor(new Color(0, 0, 0));
> 
>     ratioNameTable.setSpaceInsideCell(2);
> 
>     Chunk ratioNamechunk = new Chunk(ratioName, fontHevNorm_10);
> 
>     Cell ratioNameCell = new Cell(ratioNamechunk);
> 
>     headerCell.setVerticalAlignment(Cell.ALIGN_CENTER);
> 
>     ratioNameTable.addCell(ratioNameCell);
> 
>     doc.add(ratioNameTable);
> 
>     int grpStrLength = groupStrings.length;
> 
>     float absX = 70;
> 
>     float absY = 100;
> 
>  
> 
>     for (int grpStr = 0; grpStr < grpStrLength; grpStr++) {
> 
>       Chunk grpHeading = new Chunk(groupStrings[grpStr], 
> fontHevNorm_8);
> 
>       doc.add(new Paragraph(grpHeading));
> 
>       if (graphCounter < graphs.size()) {
> 
>  
> 
> //**************************** Problem Area 
> ********************************//
> 
>         /* Option 1 :
> 
>            PDF generation time: 3616 milliseconds
> 
>            File size: 4.47 MB
> 
>        */
> 
>         URL url = (URL) graphs.get(graphCounter);
> 
>         Image img = Image.getInstance(url);
> 
>  
> 
>         /* Option 2 :
> 
>            PDF generation time: 9914 milliseconds
> 
>            File size: 372 KB
> 
>         */
> 
>         // Image img = Image.getInstance((java.awt.Image) 
> graphs.get(graphCounter),null);
> 
>  
> 
> //************************************************************
> *************//
> 
>  
> 
>         img.scalePercent(75, 75);
> 
>         img.setAlignment(Image.MIDDLE);
> 
>         doc.add(img);
> 
>         graphCounter++;
> 
>       }
> 
>     }
> 
>     doc.newPage();
> 
>   }
> 
>   doc.close();
> 
>   FileOutputStream fos = new FileOutputStream(file);
> 
>   fos.write(bos.toByteArray());
> 
>   fos.close();
> 
>   return bos;
> 
> }
> 
>  
> 
> Rochana.
> 
> 


-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions

Reply via email to