KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > pdfbox > examples > persistence > CopyDoc


1 /**
2  * Copyright (c) 2003, www.pdfbox.org
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are met:
7  *
8  * 1. Redistributions of source code must retain the above copyright notice,
9  * this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright notice,
11  * this list of conditions and the following disclaimer in the documentation
12  * and/or other materials provided with the distribution.
13  * 3. Neither the name of pdfbox; nor the names of its
14  * contributors may be used to endorse or promote products derived from this
15  * software without specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20  * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
21  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
24  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  *
28  * http://www.pdfbox.org
29  *
30  */

31 package org.pdfbox.examples.persistence;
32
33 import java.io.IOException JavaDoc;
34
35 import org.pdfbox.cos.COSDocument;
36
37
38
39 import org.pdfbox.pdfparser.PDFParser;
40
41 import org.pdfbox.pdfwriter.COSWriter;
42 import org.pdfbox.exceptions.COSVisitorException;
43
44 /**
45  * This is an example used to copy a documents contents from a source doc to destination doc
46  * via an in-memory document representation.
47  *
48  * @author Michael Traut
49  * @version $Revision: 1.7 $
50  */

51 public class CopyDoc
52 {
53     /**
54      * Constructor.
55      */

56     public CopyDoc()
57     {
58         super();
59     }
60
61     /**
62      * This will perform the document copy.
63      *
64      * @param in The filename used for input.
65      * @param out The filename used for output.
66      *
67      * @throws IOException If there is an error parsing the document.
68      * @throws COSVisitorException If there is an error while copying the document.
69      */

70     public void doIt(String JavaDoc in, String JavaDoc out) throws IOException JavaDoc, COSVisitorException
71     {
72         java.io.InputStream JavaDoc is = null;
73         java.io.OutputStream JavaDoc os = null;
74         COSWriter writer = null;
75         try
76         {
77             is = new java.io.FileInputStream JavaDoc(in);
78             PDFParser parser = new PDFParser(is);
79             parser.parse();
80
81             COSDocument doc = parser.getDocument();
82
83             os = new java.io.FileOutputStream JavaDoc(out);
84             writer = new COSWriter(os);
85
86             writer.write(doc);
87
88         }
89         finally
90         {
91             if( is != null )
92             {
93                 is.close();
94             }
95             if( os != null )
96             {
97                 os.close();
98             }
99             if( writer != null )
100             {
101                 writer.close();
102             }
103         }
104     }
105
106     /**
107      * This will copy a PDF document.
108      * <br />
109      * see usage() for commandline
110      *
111      * @param args command line arguments
112      */

113     public static void main(String JavaDoc[] args)
114     {
115         CopyDoc app = new CopyDoc();
116         try
117         {
118             if( args.length != 2 )
119             {
120                 app.usage();
121             }
122             else
123             {
124                 app.doIt( args[0], args[1]);
125             }
126         }
127         catch (Exception JavaDoc e)
128         {
129             e.printStackTrace();
130         }
131     }
132
133     /**
134      * This will print out a message telling how to use this example.
135      */

136     private void usage()
137     {
138         System.err.println( "usage: " + this.getClass().getName() + " <input-file> <output-file>" );
139     }
140 }
Popular Tags