/** * @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"); } }
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); }