/**
  * @param document
  * @param os
  * @param compressed If true creates a compressed pdf document
  * @throws DocumentException
  */
 public PdfSimpleConcatenator(Document document, OutputStream os, boolean compressed)
     throws DocumentException {
   this(document, os);
   if (compressed) {
     writer.setFullCompression();
     writer.setCompressionLevel(PdfStream.BEST_COMPRESSION);
   }
 }
 public void addDocument(PdfReader reader) throws Exception {
   if (reader != null) {
     int numPages = reader.getNumberOfPages();
     for (int count = 1; count <= numPages; count++) {
       writer.addPage(writer.getImportedPage(reader, count));
     }
   } else {
     throw new DocumentException("Reader is null");
   }
 }
Beispiel #3
0
 private void renderPDF(OutputStream out, Request request, Response response) throws Exception {
   Map<?, ?> properties = Play.configuration;
   String uri = request.getBase() + request.url;
   if (docs.documents.size() == 1) {
     renderDoc(docs.documents.get(0), uri, properties, out);
   } else {
     // we need to concatenate them all
     Document resultDocument = new Document();
     PdfCopy copy = new PdfCopy(resultDocument, out);
     resultDocument.open();
     ByteArrayOutputStream os = new ByteArrayOutputStream();
     for (PDFDocument doc : docs.documents) {
       os.reset();
       renderDoc(doc, uri, properties, os);
       PdfReader pdfReader = new PdfReader(os.toByteArray());
       int n = pdfReader.getNumberOfPages();
       for (int i = 0; i < n; i++) {
         copy.addPage(copy.getImportedPage(pdfReader, i + 1));
       }
       copy.freeReader(pdfReader);
     }
     resultDocument.close();
   }
 }
 public void freeReader(PdfReader reader) throws Exception {
   writer.freeReader(reader);
 }
 public void setPdfVersion(char pdfVersion) {
   writer.setPdfVersion(pdfVersion);
 }
 public void close() {
   writer.close();
 }
 public void setOutlines(List outlines) {
   writer.setOutlines(outlines);
 }