Pills wrote:
> 
> Hello guys,
> 
> I have a little question. I use jasperreport to generate some pdf files.
> My use case requires to merge some pdf together (append a pdf at the end
> of another) to print them all at one time.
> 
> How can I do that?
> 
> Thank you ;)
> 

Thanks. I found it (with iText):

    public static void merge(List<InputStream> streamOfPDFFiles,
OutputStream outputStream) throws IOException, DocumentException {
        Document document = new Document();
        try {
            List<InputStream> pdfs = streamOfPDFFiles;
            List<PdfReader> readers = new ArrayList<PdfReader>();
            int totalPages = 0;
            Iterator<InputStream> iteratorPDFs = pdfs.iterator();

            while (iteratorPDFs.hasNext()) {
                InputStream pdf = iteratorPDFs.next();
                PdfReader pdfReader = new PdfReader(pdf);
                readers.add(pdfReader);
                totalPages += pdfReader.getNumberOfPages();
            }

            PdfWriter writer = PdfWriter.getInstance(document,
outputStream);
            
            document.open();
            PdfContentByte cb = writer.getDirectContent(); // Holds the PDF
            
            PdfImportedPage page;
            int currentPageNumber = 0;
            int pageOfCurrentReaderPDF = 0;
            Iterator<PdfReader> iteratorPDFReader = readers.iterator();
            
            while (iteratorPDFReader.hasNext()) {
                PdfReader pdfReader = iteratorPDFReader.next();
                
                while (pageOfCurrentReaderPDF <
pdfReader.getNumberOfPages()) {
                    document.newPage();
                    pageOfCurrentReaderPDF++;
                    currentPageNumber++;
                    page = writer.getImportedPage(pdfReader,
pageOfCurrentReaderPDF);
                    cb.addTemplate(page, 0, 0);
                    
                }
                pageOfCurrentReaderPDF = 0;
            }

            outputStream.flush();
        } finally {
            if (document.isOpen()) {
                document.close();
            }
            closeNoExc(outputStream);
        }        
    }

-- 
View this message in context: 
http://www.nabble.com/How-to-merge-several-pdf--tp16327197p16718359.html
Sent from the jasperreports-questions mailing list archive at Nabble.com.


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
jasperreports-questions mailing list
jasperreports-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jasperreports-questions

Reply via email to