Hi,

I would like to store the pdf in ByteArrayOutputStream (which is later will
be saved in the DB). Im confused what baos I will be saved, due to some
repetetive page. This is my code:

        PdfReader reader = new
PdfReader(context.getResourceAsStream("//file"));
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        PdfStamper stamper = new PdfStamper(reader, baos);

        Properties props = getSARFormProperties("mappingFile");


        AcroFields form = stamper.getAcroFields();

        Iterator<SarSubjectDTO> assocSubjects = null;
        if (formData.getSubjects() != null && formData.getSubjects().size()
> 0) {
            assocSubjects = formData.getSubjects().iterator();
            SarSubjectDTO subject = assocSubjects.next();
            fillSubjectInfoSection(props, form, subject);
            
        }
        else{
           
form.setField(props.getProperty(SUBJECT_INFO_UNAVAILABLE),"Yes");
        }

        stamper.setFormFlattening(true);
        stamper.close();


        reader = new PdfReader(baos.toByteArray());
        Document document = new Document(reader.getPageSizeWithRotation(1));
        PdfCopy writer = new PdfCopy(document, response.getOutputStream());
        document.open();
        writer.addPage(writer.getImportedPage(reader, 1));
        if (assocSubjects != null) {
            /*
             * Iterate over remaining associated subjects: for each one
create a separate
             * form in memory and copy Page 1 to the original final
document.
             */
            while (assocSubjects.hasNext()) {
                SarSubjectDTO subject = assocSubjects.next();
                PdfReader reader2 = new
PdfReader(context.getResourceAsStream("//file"));
                baos = new ByteArrayOutputStream();
                stamper = new PdfStamper(reader2, baos);
                form = stamper.getAcroFields();
                fillSubjectInfoSection(props, form, subject);
                stamper.setFormFlattening(true);
                stamper.close();
                reader2 = new PdfReader(baos.toByteArray());
                writer.addPage(writer.getImportedPage(reader2, 1));
            }

writer.addPage(writer.getImportedPage(reader, 2));


        }




Can I save the file using, 

        ServletOutputStream out = response.getOutputStream(); 
        baos.writeTo(out);   // is this correct??
        byte[] pdfByte = baos.toByteArray();
        System.out.println("file Size:"+pdfByte.length);

Is this correct? Why is the pdfByte.length smaller than file size in windows
explorer when I saved it in the local machine? Please advice. 
-- 
View this message in context: 
http://www.nabble.com/Storing-PDF-with-repetetive-page-in-ByteArrayOutputStream-tf4264063.html#a12135299
Sent from the iText - General mailing list archive at Nabble.com.


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions
Buy the iText book: http://itext.ugent.be/itext-in-action/

Reply via email to