public void setImageSource(String imageSource) throws JRException { if (isEmbedded) { try { ByteArrayInputStream bais = new ByteArrayInputStream(imageSource.getBytes("UTF-8")); // FIXMENOW other encodings ? ByteArrayOutputStream baos = new ByteArrayOutputStream(); Base64Decoder decoder = new Base64Decoder(bais, baos); decoder.process(); printImage.setRenderer( JRImageRenderer.getInstance(baos.toByteArray())); // , JRImage.ON_ERROR_TYPE_ERROR)); } catch (Exception e) { throw new JRException("Error decoding embedded image.", e); } } else { printImage.setRenderer(JRImageRenderer.getInstance(imageSource)); } }
public JasperPrint fill(HttpServletRequest req, UserAccount user) throws Exception { // JasperPrint JasperPrint jasperPrint = new JasperPrint(); jasperPrint.setName("NoReport"); jasperPrint.setPageWidth(595); jasperPrint.setPageHeight(842); // Fonts JRBaseStyle normalStyle = new JRBaseStyle("Arial_Normal"); normalStyle.setFontName("Arial"); normalStyle.setFontSize(8); normalStyle.setPdfFontName("Helvetica"); normalStyle.setPdfEncoding("Cp1252"); normalStyle.setPdfEmbedded(false); jasperPrint.addStyle(normalStyle); JRBaseStyle boldStyle = new JRBaseStyle("Arial_Bold"); boldStyle.setFontName("Arial"); boldStyle.setFontSize(8); boldStyle.setBold(true); boldStyle.setPdfFontName("Helvetica-Bold"); boldStyle.setPdfEncoding("Cp1252"); boldStyle.setPdfEmbedded(false); jasperPrint.addStyle(boldStyle); JRBaseStyle italicStyle = new JRBaseStyle("Arial_Italic"); italicStyle.setFontName("Arial"); italicStyle.setFontSize(8); italicStyle.setItalic(true); italicStyle.setPdfFontName("Helvetica-Oblique"); italicStyle.setPdfEncoding("Cp1252"); italicStyle.setPdfEmbedded(false); jasperPrint.addStyle(italicStyle); JRPrintPage page = new JRBasePrintPage(); JRPrintLine line = new JRBasePrintLine(jasperPrint.getDefaultStyleProvider()); line.setX(40); line.setY(50); line.setWidth(515); line.setHeight(0); page.addElement(line); JRPrintImage image = new JRBasePrintImage(jasperPrint.getDefaultStyleProvider()); image.setX(45); image.setY(55); image.setWidth(165); image.setHeight(40); image.setScaleImage(JRImage.SCALE_IMAGE_CLIP); image.setRenderer( JRImageRenderer.getInstance( JRLoader.loadBytes(this.getClass().getResourceAsStream("jasperreports.gif")))); page.addElement(image); JRPrintText text = new JRBasePrintText(jasperPrint.getDefaultStyleProvider()); text.setX(210); text.setY(55); text.setWidth(345); text.setHeight(30); text.setTextHeight(text.getHeight()); text.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_RIGHT); text.setLineSpacingFactor(1.3133681f); text.setLeadingOffset(-4.955078f); text.setStyle(boldStyle); text.setFontSize(18); text.setText("JasperReports Project Description"); page.addElement(text); text = new JRBasePrintText(jasperPrint.getDefaultStyleProvider()); text.setX(210); text.setY(85); text.setWidth(325); text.setHeight(15); text.setTextHeight(text.getHeight()); text.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_RIGHT); text.setLineSpacingFactor(1.329241f); text.setLeadingOffset(-4.076172f); text.setStyle(italicStyle); text.setFontSize(12); text.setText((new SimpleDateFormat("EEE, MMM d, yyyy")).format(new Date())); page.addElement(text); text = new JRBasePrintText(jasperPrint.getDefaultStyleProvider()); text.setX(40); text.setY(150); text.setWidth(515); text.setHeight(200); text.setTextHeight(text.getHeight()); text.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_JUSTIFIED); text.setLineSpacingFactor(1.329241f); text.setLeadingOffset(-4.076172f); text.setStyle(normalStyle); text.setFontSize(14); text.setText( "JasperReports is a powerful report-generating tool that has the ability to deliver rich content onto the screen, to the printer or into PDF, HTML, XLS, CSV or XML files.\n\n" + "It is entirely written in Java and can be used in a variety of Java enabled applications, including J2EE or Web applications, to generate dynamic content.\n\n" + "Its main purpose is to help creating page oriented, ready to print documents in a simple and flexible manner."); page.addElement(text); jasperPrint.addPage(page); return jasperPrint; }