Always use a Paragraph with Document.add(). If it doesn't work use absolute positioning as I said in the first answer.
> -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On > Behalf Of Marco > Sent: Friday, April 01, 2005 10:55 AM > To: [email protected] > Subject: [iText-questions] Re: Get the actual x,y in page > > >> You have PdfWriter.getVerticalPosition() > > > > Thank you very much, this is what I need. > > I have some problem with getVerticalPosition, because its > value don't match > the correct one: > For example, I have a value of 806, I insert a new line with > a pass of 20 > pixel, and I have still 806! > I insert another new line with a pass of 20 pixel, and I have 786 (the > correct one are, after the first of 806, 786 and 760!). > > N.B. I must insert new line ("\n") with a special Phrase, > after previous > Phrase is completed, because I don't know the dimension of > Phrase (and then > how much space I need between two lines) before the last > Chunk is inserted. > This is the class for my test, and the output that result: > > import java.io.FileOutputStream; > import java.io.IOException; > > import com.lowagie.text.*; > import com.lowagie.text.pdf.PdfWriter; > > class testVerticalPosition > { > static Document document; > static PdfWriter writer; > > public static void aggiungeFrase(int i) throws DocumentException > { > System.out.print("(int)writer.getVerticalPosition(false)="); > System.out.println((int)writer.getVerticalPosition(false)); > System.out.print("Pixel from old line to new="); > System.out.println(i); > Phrase aCapo=new Phrase((float) (i));//new line with a > pass of i pixel > Chunk chunk=new Chunk(System.getProperty("line.separator"));//in > windows, "\n" > aCapo.add(chunk);//add "\n" to Phrase > document.add(aCapo);//add new line to Document > document.add(new Phrase("Questa è una prova"));//add > Phrase that go to a > new line, without "\n" > } > public static void main(String[] args) > { > try > { > document=new Document(PageSize.A4,36,36,36,36); > writer=PdfWriter.getInstance(document,new > FileOutputStream("VerticalPosition.pdf")); > document.open(); > for (int i=20;i<200;i=i+(int)(20*java.lang.Math.random())) > {aggiungeFrase(i);} > } > catch (DocumentException de) > {System.err.println(de.getMessage());} > catch (IOException ioe) > {System.err.println(ioe.getMessage());} > document.close(); > } > } > > This is the output: > > (int)writer.getVerticalPosition(false)=806 > > Pixel from old line to new=20 > > (int)writer.getVerticalPosition(false)=806 > > Pixel from old line to new=26 > > (int)writer.getVerticalPosition(false)=786 > > Pixel from old line to new=37 > > (int)writer.getVerticalPosition(false)=760 > > Pixel from old line to new=40 > > (int)writer.getVerticalPosition(false)=723 > > Pixel from old line to new=56 > > (int)writer.getVerticalPosition(false)=683 > > Pixel from old line to new=66 > > (int)writer.getVerticalPosition(false)=627 > > Pixel from old line to new=75 > > (int)writer.getVerticalPosition(false)=561 > > Pixel from old line to new=84 > > (int)writer.getVerticalPosition(false)=486 > > Pixel from old line to new=92 > > (int)writer.getVerticalPosition(false)=402 > > Pixel from old line to new=98 > > (int)writer.getVerticalPosition(false)=310 > > Pixel from old line to new=110 > > (int)writer.getVerticalPosition(false)=212 > > Pixel from old line to new=112 > > (int)writer.getVerticalPosition(false)=806 > > Pixel from old line to new=113 > > (int)writer.getVerticalPosition(false)=694 > > Pixel from old line to new=116 > > (int)writer.getVerticalPosition(false)=581 > > Pixel from old line to new=131 > > (int)writer.getVerticalPosition(false)=465 > > Pixel from old line to new=135 > > (int)writer.getVerticalPosition(false)=334 > > Pixel from old line to new=143 > > (int)writer.getVerticalPosition(false)=199 > > Pixel from old line to new=149 > > (int)writer.getVerticalPosition(false)=806 > > Pixel from old line to new=152 > > (int)writer.getVerticalPosition(false)=657 > > Pixel from old line to new=152 > > (int)writer.getVerticalPosition(false)=505 > > Pixel from old line to new=152 > > (int)writer.getVerticalPosition(false)=353 > > Pixel from old line to new=153 > > (int)writer.getVerticalPosition(false)=201 > > Pixel from old line to new=165 > > (int)writer.getVerticalPosition(false)=806 > > Pixel from old line to new=179 > > (int)writer.getVerticalPosition(false)=641 > > Pixel from old line to new=183 > > (int)writer.getVerticalPosition(false)=462 > > Pixel from old line to new=193 > > (int)writer.getVerticalPosition(false)=279 > > Pixel from old line to new=196 > > > > > > > ------------------------------------------------------- > This SF.net email is sponsored by Demarc: > A global provider of Threat Management Solutions. > Download our HomeAdmin security software for free today! > http://www.demarc.com/Info/Sentarus/hamr30 > _______________________________________________ > iText-questions mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/itext-questions > ------------------------------------------------------- This SF.net email is sponsored by Demarc: A global provider of Threat Management Solutions. Download our HomeAdmin security software for free today! http://www.demarc.com/Info/Sentarus/hamr30 _______________________________________________ iText-questions mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/itext-questions
