~brian-thomason/+junk/jasperreports3.7

« back to all changes in this revision

Viewing changes to src/net/sf/jasperreports/view/save/JRPdfSaveContributor.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.view.save;
 
25
 
 
26
import java.io.File;
 
27
import java.text.MessageFormat;
 
28
import java.util.Locale;
 
29
import java.util.ResourceBundle;
 
30
 
 
31
import javax.swing.JOptionPane;
 
32
 
 
33
import net.sf.jasperreports.engine.JRException;
 
34
import net.sf.jasperreports.engine.JRExporterParameter;
 
35
import net.sf.jasperreports.engine.JasperPrint;
 
36
import net.sf.jasperreports.engine.export.JRPdfExporter;
 
37
import net.sf.jasperreports.view.JRSaveContributor;
 
38
 
 
39
/**
 
40
 * @author Teodor Danciu (teodord@users.sourceforge.net)
 
41
 * @version $Id: JRPdfSaveContributor.java 3035 2009-08-27 12:05:03Z teodord $
 
42
 */
 
43
public class JRPdfSaveContributor extends JRSaveContributor
 
44
{
 
45
 
 
46
        /**
 
47
         * 
 
48
         */
 
49
        private static final String EXTENSION_PDF = ".pdf"; 
 
50
 
 
51
        /**
 
52
         * 
 
53
         */
 
54
        public JRPdfSaveContributor(Locale locale, ResourceBundle resBundle)
 
55
        {
 
56
                super(locale, resBundle);
 
57
        }
 
58
        
 
59
        /**
 
60
         * 
 
61
         */
 
62
        public boolean accept(File file)
 
63
        {
 
64
                if (file.isDirectory())
 
65
                {
 
66
                        return true;
 
67
                }
 
68
                return file.getName().toLowerCase().endsWith(EXTENSION_PDF);
 
69
        }
 
70
 
 
71
        /**
 
72
         * 
 
73
         */
 
74
        public String getDescription()
 
75
        {
 
76
                return getBundleString("file.desc.pdf");
 
77
        }
 
78
 
 
79
        /**
 
80
         * 
 
81
         */
 
82
        public void save(JasperPrint jasperPrint, File file) throws JRException
 
83
        {
 
84
                if (!file.getName().toLowerCase().endsWith(EXTENSION_PDF))
 
85
                {
 
86
                        file = new File(file.getAbsolutePath() + EXTENSION_PDF);
 
87
                }
 
88
                
 
89
                if (
 
90
                        !file.exists() ||
 
91
                        JOptionPane.OK_OPTION == 
 
92
                                JOptionPane.showConfirmDialog(
 
93
                                        null, 
 
94
                                        MessageFormat.format(
 
95
                                                getBundleString("file.exists"),
 
96
                                                new Object[]{file.getName()}
 
97
                                                ), 
 
98
                                        getBundleString("save"), 
 
99
                                        JOptionPane.OK_CANCEL_OPTION
 
100
                                        )
 
101
                        )
 
102
                {
 
103
                        JRPdfExporter exporter = new JRPdfExporter();
 
104
                        exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 
 
105
                        exporter.setParameter(JRExporterParameter.OUTPUT_FILE, file);
 
106
                        exporter.exportReport(); 
 
107
                }
 
108
        }
 
109
 
 
110
}