Thanks, Bruno. I got it. :)

Bruno Lowagie (iText) wrote:
> 
> Sarah1 wrote:
>> Hi Bruno,
>> 
>> Thanks. I did find your example before, but my code is different from
>> yours.
>> Please look at the following code. I want to create name1 field on page1,
>> name2 field on page2, but I found 2 name1 fields on both pages, and on
>> 2nd
>> page name1 and name2 fields are overlapped . Could you tell me why?
> 
> Because your sample is written by somebody
> who writes code without understanding what
> every line means ;-)
> 
> See attachment (and adapt it wisely).
> 
> import java.io.FileOutputStream;
> import java.io.IOException;
> import com.lowagie.text.Document;
> import com.lowagie.text.DocumentException;
> import com.lowagie.text.Rectangle;
> import com.lowagie.text.pdf.AcroFields;
> import com.lowagie.text.pdf.PdfAnnotation;
> import com.lowagie.text.pdf.PdfContentByte;
> import com.lowagie.text.pdf.PdfFormField;
> import com.lowagie.text.pdf.PdfPCell;
> import com.lowagie.text.pdf.PdfPCellEvent;
> import com.lowagie.text.pdf.PdfPTable;
> import com.lowagie.text.pdf.PdfReader;
> import com.lowagie.text.pdf.PdfWriter;
> import com.lowagie.text.pdf.TextField;
> import com.lowagie.text.pdf.PdfStamper;
> 
> public class Sarah implements PdfPCellEvent {
>         protected PdfFormField parent;
>         protected PdfFormField kid;
>         protected float padding;
>         protected int pageNo;
> 
>         public Sarah(PdfFormField kid) {
>             this.kid = kid;
>         }
> 
>         public void cellLayout(PdfPCell cell, Rectangle rect,
> PdfContentByte[] cb) {
>               kid.setWidget(new Rectangle(
>                       rect.getLeft(padding), rect.getBottom(padding),
>                               rect.getRight(padding), rect.getTop(padding)),
>                               PdfAnnotation.HIGHLIGHT_INVERT);
>              System.out.println(pageNo);
>         }
> 
>        public static void main(String[] args) {
>          createPdf();
>                 try {   PdfReader reader;
>                         PdfStamper stamper;
>                         reader = new
> PdfReader("sarah.pdf");
>                         stamper = new PdfStamper(reader, new
> FileOutputStream(
>                                        
> "sarah_data.pdf"));
>                         AcroFields form = stamper.getAcroFields();
>                         form.setField("person.name1", "hello");
>                         form.setField("person.name2", "Sarah");
>                         stamper.close();            
>                 } catch (IOException e) {
>                         e.printStackTrace();
>                 } catch (DocumentException e) {
>                         e.printStackTrace();
>                 }      
>       }
> 
>       public static void createPdf() {
>               Document document = new Document();
>               try {
>                       PdfWriter writer = PdfWriter.getInstance(document,
>                                       new FileOutputStream("sarah.pdf"));
>                       document.open();
>                       PdfFormField person = PdfFormField.createEmpty(writer);
>                       person.setFieldName("person");
>                       TextField field1 = new TextField(writer, new 
> Rectangle(0, 0), "name1");
>                       PdfFormField kid1 = field1.getTextField();
>             kid1.setPlaceInPage(1);
>             person.addKid(kid1);
>                       TextField field2 = new TextField(writer, new 
> Rectangle(0, 0), "name2");
>             PdfFormField kid2 = field2.getTextField();
>             kid2.setPlaceInPage(2);
>             person.addKid(kid2);
>                       writer.addAnnotation(person);
>                       document.add(createTable(kid1));
>             document.newPage();
>             document.add(createTable(kid2));
>             document.newPage();
>               } catch (DocumentException de) {
>                       System.err.println(de.getMessage());
>               } catch (IOException ioe) {
>                       System.err.println(ioe.getMessage());
>               }
>               document.close();
>       }
> 
>       private static PdfPTable createTable(PdfFormField kid)
>                       throws IOException, DocumentException {
>               PdfPTable table = new PdfPTable(2);
>               table.addCell("Your name:");
>               PdfPCell cell = new PdfPCell();
>               cell.setCellEvent(new Sarah(kid));
>               table.addCell(cell);
>               return table;
>       }
> }
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> iText-questions mailing list
> iText-questions@lists.sourceforge.net
> 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/why-pdf-fields-of-1st-page-move-to-2nd-page-tp15299931p15489380.html
Sent from the iText - General mailing list archive at Nabble.com.


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions
Buy the iText book: http://itext.ugent.be/itext-in-action/

Reply via email to