You need to set the Paragraph leading.
while ((line = reader.readLine()) != null) {
Paragraph p = new Paragraph(line,font);
p.setLeading(10);
document.add(p);
}
Best Regards,
Paulo Soares
----- Original Message -----
From: " Alex, Ian" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, May 29, 2003 18:58
Subject: [iText-questions] Question about line height for paging
> I am having a problem with writing a Unix-created document to PDF using
> iText. Unix output files don't use any fonts and there is minimal
> spacing
> between lines (using the lpr output). My algorithm was to read each
> line
> in from the original file and then write it to PDF landscape document
> with
> the appropriate font (Courier) to preserve the alignment, just using
> code
> like this:
>
> String line;
> PdfWriter.getInstance(document, new FileOutputStream(PDFname));
> BaseFont bf1 = BaseFont.createFont("Courier", BaseFont.WINANSI,
> BaseFont.EMBEDDED);
> bf1.setDirectTextToByte(true);
> Font font = new Font(bf1, (float)10, Font.NORMAL);
> Document document = new Document(PageSize.A4.rotate(), 0, 0, 0, 0);
> document.open();
> document.setLinesRequired(56);
> BufferedReader reader = new BufferedReader(new FileReader(inFile));
> while ((line = reader.readLine()) != null) {
> document.add(new Paragraph(line,font));
> }
>
> This didn't work since each *line* occupied a large height (twice the
> size
> as the text height regardless of font). I wanted to adjust this but
> couldn't. I saw a class in the API called com.lowagie.text.pdf.PdfLine
> that has a height() method but no "get" methods to adjust the height.
> Furthermore, there is no binding between PdfLine objects and the
> Document
> class.
>
> Next I tried mapping each page to a table so that all the cells would
> "fit".
> The number of lines in each page of the unix file was 56. My code for
> this looked something like:
>
> String line;
> cnt=1;
> Document document = new Document(PageSize.A4.rotate(), 0, 0, 0, 0);
> document.open();
> BufferedReader reader = new BufferedReader(new FileReader(inFile));
> Table datatable;
> datatable = new Table(1);
> datatable.setWidth(160);
> datatable.setDefaultCellBorderWidth(0);
> atatable.setDefaultHorizontalAlignment(0);
> datatable.setDefaultRowspan(1);
> datatable.setSpaceBetweenCells(0);
> datatable.setBorderWidth(0);
> datatable.setCellsFitPage(true);
> while ((line = reader.readLine()) != null) {
> BaseFont bf1 = BaseFont.createFont("Courier", BaseFont.WINANSI,
> BaseFont.EMBEDDED);
> bf1.setDirectTextToByte(true);
> cell = new Cell(new Phrase(padStringWidth(line, 132), new Font(bf1,
> 10,
> Font.COURIER)));
> cell.setHorizontalAlignment(Element.ALIGN_CENTER);
> cell.setVerticalAlignment(Element.ALIGN_TOP);
> cell.setColspan(1);
> cell.setRowspan(1);
> cell.setNoWrap(true);
> // cell.setBorder(Rectangle.NO_BORDER);
> cell.setBorderColor(java.awt.Color.gray);
> datatable.addCell(cell);
> if (cnt == 56) {
> document.add(datatable);
> document.newPage();
> datatable = new Table(1);
> datatable.setWidth(160);
> datatable.setDefaultCellBorderWidth(0);
> datatable.setDefaultHorizontalAlignment(0);
> datatable.setDefaultRowspan(1);
> datatable.setBorderWidth(0);
> datatable.setSpaceBetweenCells(0);
> datatable.setCellsFitPage(true);
> cnt=0;
> }
> cnt++;
> }
>
> Please note that I used cell.setBorderColor(java.awt.Color.gray) in
> order to
> display the cell boundaries. In experimenting with different font
> sizes, I
> noted that just as was the case with just lines, the text height only
> occupied half the cell (the cell size increased proportionally along
> with
> the font - just as with lines). I used various suggestions I saw
> previously
> such as calling datatable.setBorderWidth(0),
> datatable.setSpaceBetweenCells(0) datatable.setCellsFitPage(true) and
> none
> of these worked.
>
> The most promising suggestion I saw was from
> http://article.gmane.org/gmane.comp.java.lib.itext.general/1225/match=li
> ne+h
> eight which suggested using the height method of the Cell class
> (inherited
> from Rectangle). height() is a "get" method so I instead thought of
> working with the setBottom() & setTop() methods (inherited by Cell from
> Rectangle). It compiled OK, but I got the run-time error:
>
> java.lang.UnsupportedOperationException: Dimensions of a Cell are
> attributed
> aut
> omagically. See the FAQ.
> at com.lowagie.text.Cell.setBottom(Unknown Source)
> at TestPDF.putPDF(TestPDF.java:158)
> at TestPDF.run(TestPDF.java:28)
> at TestPDF.main(TestPDF.java:17)
>
> Could you give me some suggestions as to how to adjust my application so
> that I can reduce the height of a line (or cell) holding text.
>
> Thanks for your attention.
>
>
>
>
>
>
>
>
>
>
>
> -------------------------------------------------------
> This SF.net email is sponsored by: eBay
> Get office equipment for less on eBay!
> http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5
> _______________________________________________
> iText-questions mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/itext-questions
>
-------------------------------------------------------
This SF.net email is sponsored by: eBay
Get office equipment for less on eBay!
http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5
_______________________________________________
iText-questions mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/itext-questions