I hope it doesn't, it would go at snail pace. This, using document.add(Paragraph), ColumnText does not have that problem.
Best Regards, Paulo Soares ----- Original Message ----- From: "Matt Benson" <[EMAIL PROTECTED]> To: " Alex, Ian" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> Sent: Thursday, May 29, 2003 19:13 Subject: Re: [iText-questions] Question about line height for paging > There is a FAQ entry on this that appears to advocate > putting the entire contents of the file into a String > and adding that to the document in a single Paragraph. > > http://www.lowagie.com/iText/faq.html#preformattedtext > > -Matt > > --- " Alex, Ian" <[EMAIL PROTECTED]> wrote: > > 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 > > > __________________________________ > Do you Yahoo!? > Yahoo! Calendar - Free online calendar with sync to Outlook(TM). > http://calendar.yahoo.com > > > ------------------------------------------------------- > 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
