yes, Paulo, you are right

Thank you very much!

Jianwei

On Tue, Feb 9, 2010 at 3:19 PM, Paulo Soares <[email protected]> wrote:

> I don't know if you noticed in the example but the fields are being filled
> when they are created, just get the values from your database.
>
> Paulo
>
> ----- Original Message -----
> From: "Jianwei Sun" <[email protected]>
> To: <[email protected]>
> Sent: Tuesday, February 09, 2010 8:10 PM
> Subject: [iText-questions] what's the best way to generate and fill in a
> pdfdocument at the same time.
>
>
> Hello, Dear members.
>
> I have a question regarding how to generate the pdf document, insert a
> couple of text fields, and then fill in those text fields from a database
> at
> the same time.
>
> Here is a good example
> (http://itextpdf.com/examples/index.php?page=example&id=157) on how to
> create and fill in a form.
>
> But I don't want the intermediate file, I just want to create the pdf file,
> and fill in the fields in memory, and then send it to the client over Http
> ,
> what's the best way to do it? Basically, I want to get the AcroFields from
> the writer, not from the reader.
>
> Thank you for your help.
>
>
>
>
>
>
> public class TextFields implements
> PdfPCellEvent<
> http://api.itextpdf.com/com/itextpdf/text/pdf/PdfPCellEvent.html>
> {
>
>    public static final String RESULT1 =
> "results/part2/chapter08/text_fields.pdf";
>    public static final String RESULT2 =
> "results/part2/chapter08/text_filled.pdf";
>
>    protected int tf;
>
>    public static void main(String[] args) throws
> DocumentException<
> http://api.itextpdf.com/com/itextpdf/text/DocumentException.html>,
> IOException {
>        TextFields example = new TextFields(0);
>        example.createPdf(RESULT1);
>        example.manipulatePdf(RESULT1, RESULT2);
>    }
>
>    public TextFields(int tf) {
>        this.tf = tf;
>    }
>
>    public void manipulatePdf(String src, String dest) throws IOException,
> DocumentException<
> http://api.itextpdf.com/com/itextpdf/text/DocumentException.html>
> {
>        PdfReader<
> http://api.itextpdf.com/com/itextpdf/text/pdf/PdfReader.html>
> reader = new
> PdfReader<http://api.itextpdf.com/com/itextpdf/text/pdf/PdfReader.html
> >(src);
>        PdfStamper<
> http://api.itextpdf.com/com/itextpdf/text/pdf/PdfStamper.html>
> stamper = new
> PdfStamper<http://api.itextpdf.com/com/itextpdf/text/pdf/PdfStamper.html
> >(reader,
> new FileOutputStream(dest));
>        AcroFields<
> http://api.itextpdf.com/com/itextpdf/text/pdf/AcroFields.html>
> form = stamper.getAcroFields();
>        form.setField("text_1", "Bruno Lowagie");
>        form.setFieldProperty("text_2", "fflags", 0, null);
>        form.setFieldProperty("text_2", "bordercolor",
> BaseColor<http://api.itextpdf.com/com/itextpdf/text/BaseColor.html>.RED,
> null);
>        form.setField("text_2", "bruno");
>        form.setFieldProperty("text_3", "clrfflags",
> TextField<http://api.itextpdf.com/com/itextpdf/text/pdf/TextField.html
> >.PASSWORD,
> null);
>        form.setFieldProperty("text_3", "setflags",
> PdfAnnotation<
> http://api.itextpdf.com/com/itextpdf/text/pdf/PdfAnnotation.html
> >.FLAGS_PRINT,
> null);
>        form.setField("text_3", "12345678", "xxxxxxxx");
>        form.setFieldProperty("text_4", "textsize", new Float(12), null);
>        form.regenerateField("text_4");
>        stamper.close();
>    }
>
>    /**
>     * Creates a PDF document.
>     * @param filename the path to the new PDF document
>     * @throws    DocumentException
>     * @throws    IOException
>     */
>    public void createPdf(String filename) throws
> DocumentException<
> http://api.itextpdf.com/com/itextpdf/text/DocumentException.html>,
> IOException {
>        Document<http://api.itextpdf.com/com/itextpdf/text/Document.html>
> document = new
> Document<http://api.itextpdf.com/com/itextpdf/text/Document.html>();
>        PdfWriter<
> http://api.itextpdf.com/com/itextpdf/text/pdf/PdfWriter.html
> >.getInstance(document,
> new FileOutputStream(filename));
>        document.open();
>
>         PdfPCell<
> http://api.itextpdf.com/com/itextpdf/text/pdf/PdfPCell.html>
> cell;
>        PdfPTable<
> http://api.itextpdf.com/com/itextpdf/text/pdf/PdfPTable.html>
> table = new
> PdfPTable<http://api.itextpdf.com/com/itextpdf/text/pdf/PdfPTable.html
> >(2);
>         table.setWidths(new int[]{ 1, 2 });
>
>        table.addCell("Name:");
>        cell = new
> PdfPCell<http://api.itextpdf.com/com/itextpdf/text/pdf/PdfPCell.html>();
>         cell.setCellEvent(new TextFields(1));
>        table.addCell(cell);
>
>        table.addCell("Loginname:");
>        cell = new
> PdfPCell<http://api.itextpdf.com/com/itextpdf/text/pdf/PdfPCell.html>();
>         cell.setCellEvent(new TextFields(2));
>        table.addCell(cell);
>
>        table.addCell("Password:");
>        cell = new
> PdfPCell<http://api.itextpdf.com/com/itextpdf/text/pdf/PdfPCell.html>();
>         cell.setCellEvent(new TextFields(3));
>        table.addCell(cell);
>
>        table.addCell("Reason:");
>        cell = new
> PdfPCell<http://api.itextpdf.com/com/itextpdf/text/pdf/PdfPCell.html>();
>         cell.setCellEvent(new TextFields(4));
>        cell.setFixedHeight(60);
>        table.addCell(cell);
>
>        document.add(table);
>
>        document.close();
>
>    }
>
>    public void
> cellLayout(PdfPCell<
> http://api.itextpdf.com/com/itextpdf/text/pdf/PdfPCell.html>
> cell, Rectangle<http://api.itextpdf.com/com/itextpdf/text/Rectangle.html>
> rectangle,
> PdfContentByte<
> http://api.itextpdf.com/com/itextpdf/text/pdf/PdfContentByte.html>[]
> canvases) {
>        PdfWriter<
> http://api.itextpdf.com/com/itextpdf/text/pdf/PdfWriter.html>
> writer = canvases[0].getPdfWriter();
>        TextField<
> http://api.itextpdf.com/com/itextpdf/text/pdf/TextField.html>
> text = new
> TextField<http://api.itextpdf.com/com/itextpdf/text/pdf/TextField.html
> >(writer,
> rectangle,
>                String.format("text_%s", tf));
>        text.setBackgroundColor(new
> GrayColor<http://api.itextpdf.com/com/itextpdf/text/pdf/GrayColor.html
> >(0.75f));
>        switch(tf) {
>        case 1:
>            text.setBorderStyle(PdfBorderDictionary<
> http://api.itextpdf.com/com/itextpdf/text/pdf/PdfBorderDictionary.html
> >.STYLE_BEVELED);
>            text.setAlignment(Element<
> http://api.itextpdf.com/com/itextpdf/text/Element.html>.ALIGN_RIGHT);
>             text.setText("Enter your name here...");
>            text.setFontSize(0);
>             text.setAlignment(Element<
> http://api.itextpdf.com/com/itextpdf/text/Element.html>.ALIGN_CENTER);
>            text.setOptions(TextField<
> http://api.itextpdf.com/com/itextpdf/text/pdf/TextField.html>.REQUIRED);
>             break;
>        case 2:
>            text.setMaxCharacterLength(8);
>             text.setOptions(TextField<
> http://api.itextpdf.com/com/itextpdf/text/pdf/TextField.html>.COMB);
>            text.setBorderStyle(PdfBorderDictionary<
> http://api.itextpdf.com/com/itextpdf/text/pdf/PdfBorderDictionary.html
> >.STYLE_SOLID);
>            text.setBorderColor(BaseColor<
> http://api.itextpdf.com/com/itextpdf/text/BaseColor.html>.BLUE);
>             text.setBorderWidth(2);
>            break;
>        case 3:
>             text.setBorderStyle(PdfBorderDictionary<
> http://api.itextpdf.com/com/itextpdf/text/pdf/PdfBorderDictionary.html
> >.STYLE_INSET);
>            text.setOptions(TextField<
> http://api.itextpdf.com/com/itextpdf/text/pdf/TextField.html>.PASSWORD);
>            text.setVisibility(TextField<
> http://api.itextpdf.com/com/itextpdf/text/pdf/TextField.html
> >.VISIBLE_BUT_DOES_NOT_PRINT);
>            break;
>        case 4:
>            text.setBorderStyle(PdfBorderDictionary<
> http://api.itextpdf.com/com/itextpdf/text/pdf/PdfBorderDictionary.html
> >.STYLE_DASHED);
>            text.setBorderColor(BaseColor<
> http://api.itextpdf.com/com/itextpdf/text/BaseColor.html>.RED);
>             text.setBorderWidth(2);
>            text.setFontSize(8);
>            text.setText("Enter the reason why you want to win a free
> accreditation for the Foobar Film Festival");
>             text.setOptions(TextField<
> http://api.itextpdf.com/com/itextpdf/text/pdf/TextField.html>.MULTILINE
> |
> TextField<http://api.itextpdf.com/com/itextpdf/text/pdf/TextField.html
> >.REQUIRED);
>            break;
>        }
>        try {
>            PdfFormField<
> http://api.itextpdf.com/com/itextpdf/text/pdf/PdfFormField.html>
> field = text.getTextField();
>            if (tf == 3) {
>                field.setUserName("Choose a password");
>            }
>            writer.addAnnotation(field);
>        }
>        catch(IOException ioe) {
>            throw new
> ExceptionConverter<
> http://api.itextpdf.com/com/itextpdf/text/ExceptionConverter.html>(ioe);
>        }
>        catch(DocumentException<
> http://api.itextpdf.com/com/itextpdf/text/DocumentException.html>
> de) {
>            throw new
> ExceptionConverter<
> http://api.itextpdf.com/com/itextpdf/text/ExceptionConverter.html>(de);
>         }
>    }
> }
>
>
>
> ------------------------------------------------------------------------------
> SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
> Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
> http://p.sf.net/sfu/solaris-dev2dev
> _______________________________________________
> iText-questions mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/itext-questions
>
> Buy the iText book: http://www.1t3xt.com/docs/book.php
> Check the site with examples before you ask questions:
> http://www.1t3xt.info/examples/
> You can also search the keywords list:
> http://1t3xt.info/tutorials/keywords/
>
------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions

Buy the iText book: http://www.1t3xt.com/docs/book.php
Check the site with examples before you ask questions: 
http://www.1t3xt.info/examples/
You can also search the keywords list: http://1t3xt.info/tutorials/keywords/

Reply via email to