3788 |
17 Mar 16 |
nicklas |
1 |
package net.sf.basedb.reggie.pdf; |
3788 |
17 Mar 16 |
nicklas |
2 |
|
3788 |
17 Mar 16 |
nicklas |
3 |
import java.io.Closeable; |
3788 |
17 Mar 16 |
nicklas |
4 |
import java.io.IOException; |
3788 |
17 Mar 16 |
nicklas |
5 |
import java.io.InputStream; |
3788 |
17 Mar 16 |
nicklas |
6 |
|
3788 |
17 Mar 16 |
nicklas |
7 |
/** |
3788 |
17 Mar 16 |
nicklas |
A PDF combiner is an implementation that can take a number |
3788 |
17 Mar 16 |
nicklas |
of PDF source files and combine into a single entity, for example, |
3788 |
17 Mar 16 |
nicklas |
a multi-page PDF or a ZIP file. |
3788 |
17 Mar 16 |
nicklas |
@since 4.3 |
3788 |
17 Mar 16 |
nicklas |
12 |
*/ |
3788 |
17 Mar 16 |
nicklas |
13 |
public abstract class PdfCombiner |
3788 |
17 Mar 16 |
nicklas |
14 |
implements Closeable |
3788 |
17 Mar 16 |
nicklas |
15 |
{ |
3788 |
17 Mar 16 |
nicklas |
16 |
|
3788 |
17 Mar 16 |
nicklas |
17 |
private final String mimeType; |
3788 |
17 Mar 16 |
nicklas |
18 |
private final String extension; |
3788 |
17 Mar 16 |
nicklas |
19 |
|
3788 |
17 Mar 16 |
nicklas |
20 |
/** |
3788 |
17 Mar 16 |
nicklas |
@param mimeType The MIME type of the combined file |
3788 |
17 Mar 16 |
nicklas |
@param extension The extension of the combined file (including the dot) |
3788 |
17 Mar 16 |
nicklas |
23 |
*/ |
3788 |
17 Mar 16 |
nicklas |
24 |
protected PdfCombiner(String mimeType, String extension) |
3788 |
17 Mar 16 |
nicklas |
25 |
{ |
3788 |
17 Mar 16 |
nicklas |
26 |
this.mimeType = mimeType; |
3788 |
17 Mar 16 |
nicklas |
27 |
this.extension = extension; |
3788 |
17 Mar 16 |
nicklas |
28 |
} |
3788 |
17 Mar 16 |
nicklas |
29 |
|
3788 |
17 Mar 16 |
nicklas |
30 |
/** |
3788 |
17 Mar 16 |
nicklas |
Get the MIME type of combined file. |
3788 |
17 Mar 16 |
nicklas |
32 |
*/ |
3788 |
17 Mar 16 |
nicklas |
33 |
public String getMimeType() |
3788 |
17 Mar 16 |
nicklas |
34 |
{ |
3788 |
17 Mar 16 |
nicklas |
35 |
return mimeType; |
3788 |
17 Mar 16 |
nicklas |
36 |
} |
3788 |
17 Mar 16 |
nicklas |
37 |
|
3788 |
17 Mar 16 |
nicklas |
38 |
/** |
3788 |
17 Mar 16 |
nicklas |
Generate an output filename that indicates the type |
3788 |
17 Mar 16 |
nicklas |
of the combined file. Eg. make sure the extension is |
3788 |
17 Mar 16 |
nicklas |
what is expected (.zip, .pdf, etc.) |
3788 |
17 Mar 16 |
nicklas |
42 |
*/ |
3788 |
17 Mar 16 |
nicklas |
43 |
public String getOutFilename(String filename) |
3788 |
17 Mar 16 |
nicklas |
44 |
{ |
3788 |
17 Mar 16 |
nicklas |
45 |
if (!filename.endsWith(extension)) |
3788 |
17 Mar 16 |
nicklas |
46 |
{ |
3788 |
17 Mar 16 |
nicklas |
47 |
if (filename.endsWith(".pdf")) |
3788 |
17 Mar 16 |
nicklas |
48 |
{ |
3788 |
17 Mar 16 |
nicklas |
49 |
filename = filename.substring(0, filename.length()-4); |
3788 |
17 Mar 16 |
nicklas |
50 |
} |
3788 |
17 Mar 16 |
nicklas |
51 |
filename += extension; |
3788 |
17 Mar 16 |
nicklas |
52 |
} |
3788 |
17 Mar 16 |
nicklas |
53 |
return filename; |
3788 |
17 Mar 16 |
nicklas |
54 |
} |
3788 |
17 Mar 16 |
nicklas |
55 |
|
3788 |
17 Mar 16 |
nicklas |
56 |
/** |
3788 |
17 Mar 16 |
nicklas |
Can the PDF files be encrypted before they are combined? |
3788 |
17 Mar 16 |
nicklas |
58 |
*/ |
3788 |
17 Mar 16 |
nicklas |
59 |
public boolean supportsEncryptBeforeCombine() |
3788 |
17 Mar 16 |
nicklas |
60 |
{ |
3788 |
17 Mar 16 |
nicklas |
61 |
return false; |
3788 |
17 Mar 16 |
nicklas |
62 |
} |
3788 |
17 Mar 16 |
nicklas |
63 |
|
3788 |
17 Mar 16 |
nicklas |
64 |
/** |
3788 |
17 Mar 16 |
nicklas |
Add a PDF file to the combined file. |
3788 |
17 Mar 16 |
nicklas |
@param pdf The input stream reading the pdf file (may have been modified from the original) |
3788 |
17 Mar 16 |
nicklas |
@param pdfName The name of the pdfFile |
3788 |
17 Mar 16 |
nicklas |
@return TRUE if the file was added, FALSE if not |
3788 |
17 Mar 16 |
nicklas |
@throws IOException |
3788 |
17 Mar 16 |
nicklas |
70 |
*/ |
3788 |
17 Mar 16 |
nicklas |
71 |
public abstract boolean addFile(InputStream pdf, String pdfName) |
3788 |
17 Mar 16 |
nicklas |
72 |
throws IOException; |
3788 |
17 Mar 16 |
nicklas |
73 |
|
3788 |
17 Mar 16 |
nicklas |
74 |
} |