extensions/net.sf.basedb.reggie/trunk/src/net/sf/basedb/reggie/pdf/PdfCombiner.java

Code
Comments
Other
Rev Date Author Line
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 8   A PDF combiner is an implementation that can take a number
3788 17 Mar 16 nicklas 9   of PDF source files and combine into a single entity, for example,
3788 17 Mar 16 nicklas 10   a multi-page PDF or a ZIP file.
3788 17 Mar 16 nicklas 11   @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 21     @param mimeType The MIME type of the combined file
3788 17 Mar 16 nicklas 22     @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 31     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 39     Generate an output filename that indicates the type
3788 17 Mar 16 nicklas 40     of the combined file. Eg. make sure the extension is
3788 17 Mar 16 nicklas 41     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 57     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 65     Add a PDF file to the combined file.
3788 17 Mar 16 nicklas 66     @param pdf The input stream reading the pdf file (may have been modified from the original)
3788 17 Mar 16 nicklas 67     @param pdfName The name of the pdfFile
3788 17 Mar 16 nicklas 68     @return TRUE if the file was added, FALSE if not
3788 17 Mar 16 nicklas 69     @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 }