~brian-thomason/+junk/jasperreports3.7

« back to all changes in this revision

Viewing changes to src/net/sf/jasperreports/engine/xml/JRPrintImageSourceObject.java

  • Committer: Brian Thomason
  • Date: 2011-12-20 17:51:16 UTC
  • Revision ID: brian.thomason@canonical.com-20111220175116-apwo6unuaedvgzo3
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * JasperReports - Free Java Reporting Library.
 
3
 * Copyright (C) 2001 - 2009 Jaspersoft Corporation. All rights reserved.
 
4
 * http://www.jaspersoft.com
 
5
 *
 
6
 * Unless you have purchased a commercial license agreement from Jaspersoft,
 
7
 * the following license terms apply:
 
8
 *
 
9
 * This program is part of JasperReports.
 
10
 *
 
11
 * JasperReports is free software: you can redistribute it and/or modify
 
12
 * it under the terms of the GNU Lesser General Public License as published by
 
13
 * the Free Software Foundation, either version 3 of the License, or
 
14
 * (at your option) any later version.
 
15
 *
 
16
 * JasperReports is distributed in the hope that it will be useful,
 
17
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
18
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 
19
 * GNU Lesser General Public License for more details.
 
20
 * 
 
21
 * You should have received a copy of the GNU Lesser General Public License
 
22
 * along with JasperReports. If not, see <http://www.gnu.org/licenses/>.
 
23
 */
 
24
package net.sf.jasperreports.engine.xml;
 
25
 
 
26
import java.io.ByteArrayInputStream;
 
27
import java.io.ByteArrayOutputStream;
 
28
 
 
29
import net.sf.jasperreports.engine.JRException;
 
30
import net.sf.jasperreports.engine.JRImageRenderer;
 
31
import net.sf.jasperreports.engine.JRPrintImage;
 
32
 
 
33
import org.apache.commons.codec.binary.Base64;
 
34
 
 
35
/**
 
36
 * @author Teodor Danciu (teodord@users.sourceforge.net)
 
37
 * @version $Id: JRPrintImageSourceObject.java 3034 2009-08-27 11:58:04Z teodord $
 
38
 */
 
39
public class JRPrintImageSourceObject
 
40
{
 
41
 
 
42
 
 
43
        /**
 
44
         *
 
45
         */
 
46
        private JRPrintImage printImage = null;
 
47
 
 
48
        /**
 
49
         *
 
50
         */
 
51
        private boolean isEmbedded = false;
 
52
 
 
53
 
 
54
        /**
 
55
         *
 
56
         */
 
57
        public void setPrintImage(JRPrintImage printImage)
 
58
        {
 
59
                this.printImage = printImage;
 
60
        }
 
61
        
 
62
 
 
63
        /**
 
64
         *
 
65
         */
 
66
        public void setEmbedded(boolean isEmbedded)
 
67
        {
 
68
                this.isEmbedded = isEmbedded;
 
69
        }
 
70
        
 
71
 
 
72
        /**
 
73
         *
 
74
         */
 
75
        public void setImageSource(String imageSource) throws JRException
 
76
        {
 
77
                if (isEmbedded)
 
78
                {
 
79
                        try
 
80
                        {
 
81
                                byte[] decodedBytes =  Base64.decodeBase64(imageSource.getBytes("UTF-8")); //FIXMENOW other encodings ?
 
82
                                printImage.setRenderer(JRImageRenderer.getInstance(decodedBytes));//, JRImage.ON_ERROR_TYPE_ERROR));
 
83
                        }
 
84
                        catch (Exception e)
 
85
                        {
 
86
                                throw new JRException("Error decoding embedded image.", e);
 
87
                        }
 
88
                }
 
89
                else
 
90
                {
 
91
                        printImage.setRenderer(JRImageRenderer.getInstance(imageSource));
 
92
                }
 
93
        }
 
94
        
 
95
 
 
96
}