I got stuck with this one...I followed your instruction but i dont know how
to integrate in the last part. This is to be rendered in web page. In pages
1 and 2, im successful in storing the pdf in memory but the last page which
contains overflow String, I cant write the columnText to writer. Could you
guide how to do it? Below is my code.

 // TODO Auto-generated method stub
        /*
         * Set HTTP Content Type
         */
        response.setContentType("application/pdf");
        //response.addHeader("Pragma", "public");
        //response.addHeader("Cache-Control", "max-age=0");

        //response.setHeader("Content-Disposition", " attachment;
filename=\"sarFormDI.pdf\"");
        /*
         * If User clicked on the Save button, force the browser to open a
Save As dialog.
         */
        if (sendAsAttachment) {
            response.setHeader("Content-Disposition", " attachment;
filename=\"sarFormDI.pdf\"");
        }
        /*
         * First, stamp the form while keeping the result in memory 
         * (as there could be multiple associated subjects and we need 
         * to generate page 1 for each one).
         */
        PdfReader reader = new
PdfReader(context.getResourceAsStream(OLD_SAR_FORM_FILE));
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        PdfStamper stamper = new PdfStamper(reader, baos);
       
        /*
         * Property file is used to abstract away generic form field names
         */
        Properties props =
getSARFormProperties(context.getResourceAsStream(SAR_FORM_FIELDS_MAPPING_FILE));
        /*
         * Get Acroform fields
         */
        AcroFields form = stamper.getAcroFields();
        
        
        
        /*
         * Part I - Subject Information
         */
        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");
        }
        fillSuspiciousActivityInfo(props, form, formData);
        fillupFieldList(formData,props, form);
        fillReportingFinancialInfo(formData, props, form);
        fillActivityLocation(formData, props, form);
        fillAccountInfo(formData, props, form);
        fillLawEnforcementAgency(props, form, formData);
        fillNarrative(props, form, formData);
        fillContactForAssistance(props, form, formData);
        
        float[] narrativeFieldPositions =
form.getFieldPositions(props.getProperty(NARRATIVE));
        float lx = narrativeFieldPositions[1];
        float ly = narrativeFieldPositions[2];
        float rx = narrativeFieldPositions[3];
        float ry = narrativeFieldPositions[4];
        
        /*
         * Flattening the form removed input fields so that the form is
         * no longer editable.
         */
        stamper.setFormFlattening(true);
        stamper.close();
        /*
         * Now read the stamped and flattened file from memory and copy Page
1.
         */
        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(OLD_SAR_FORM_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));
            }
        }
        /*
         * Finally, copy over the remaining pages
         */
        
        
        writer.addPage(writer.getImportedPage(reader, 2));
        PdfReader reader3 = new PdfReader(baos.toByteArray());
        ByteArrayOutputStream baos2 = new ByteArrayOutputStream();
        PdfStamper stamper2 = new PdfStamper(reader3, baos2);
        PdfImportedPage narrativePage = stamper2.getImportedPage(reader3,3);
        
        int pageCt = reader3.getNumberOfPages();
        System.out.println("pageCt "+pageCt);
        //PdfContentByte cb = stamper2.getOverContent(pageCt); 
        PdfContentByte cb = writer.getDirectContent();
        ColumnText ct = new ColumnText(cb); 
        ct.setSimpleColumn(lx,ly,rx,ry); 
        ct.setText(new Phrase(formData.getNarrative())); 
        int status = ct.go();
        
        while ( ColumnText.hasMoreText(status) ) { 
            stamper2.insertPage(++pageCt, PageSize.LETTER); 
            cb = stamper2.getOverContent(pageCt); 
            cb.addTemplate(narrativePage,0,0);  // add the static page as
background 
            ct.setCanvas(cb);
            ct.setYLine(ry); 
            status = ct.go();
            
        } 

//        BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA,
BaseFont.WINANSI, 
//                BaseFont.NOT_EMBEDDED); 
//                    for (int pageNo = 1; pageNo <= pageCt; pageNo++) { 
//                        cb = stamper2.getOverContent(pageNo); 
//                        cb.beginText(); 
//                        cb.setFontAndSize(bf, 12); 
//                        cb.setTextMatrix(522, 10); 
//                        cb.showText("Page " + pageNo + " of " + pageCt); 
//                        cb.endText(); 
//                    } 
//

        
       
        writer.addPage(writer.getImportedPage(reader, 3));
        
        
        document.close();













Bruno Lowagie (iText) wrote:
> 
> dreamboy wrote:
>> is there a way to count the line of this field so that, I can fix the
>> number
>> of lines to be displayed?
>> what is another approach? I want the font size to be fixed 
> 
> See the mailing list archives.
> Look for 'BINGO' in Subject: and for Paul Gatewood in From:
> Here's an URL to the solution:
> http://www.nabble.com/Re%3A-BINGO%21-creating-new-document-where-every-page-includes-contents-%28text-and-form-fields%29-from-pdf-template-file-p8502943.html
> br,
> Bruno
> 
> -------------------------------------------------------------------------
> 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/
> 
> 

-- 
View this message in context: 
http://www.nabble.com/set-the-proper-font-size-tf4197106.html#a11953912
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