You are calling too many go(). Try with:

   private void makeSmallMessage(String message) throws Exception {

      // Create the columns
      PdfContentByte cb = writer.getDirectContent();
      ColumnText ct = new ColumnText(cb);

      ct.addText(new Phrase(16, message, smallFont));
      ct.setIndent(0);
      ct.setLeading(6);


      // Column ones's left and right borders
      float[] left1 = {30,1050, 30,51};
      float[] right1 = {200,1050, 200,81, 170,81, 170,51};

      // Column two's left and right border
      float[] left2 = {205,1050, 205,81};
      float[] right2 = {390,1050, 390,81};

      // Column 3
      float[] left3 = {395,1050, 395,81, 450,81, 450,51};
      float[] right3 = {565,1050, 565,51 };

      int status = 0;
      int column = 0;

      // While there's still more text to print out
      while ((status & ColumnText.NO_MORE_TEXT) == 0) {

         // Set left column points
         if (column == 0) {
           ct.setColumns(left1, right1);
           column = 1;
         }
         // Else set right column points
         else if (column == 1) {
           ct.setColumns(left2, right2);
           column = 2;
         }
         else {
            ct.setColumns(left3, right3);
            column = 0;
         }

         // Print
         //status = ct.go();

         // Set top part of columns
         ct.setYLine(800);

         // Set alignment
         ct.setAlignment(Element.ALIGN_JUSTIFIED);
         status = ct.go();

         // Go to a new page
         if ((column == 0) && ((status & ColumnText.NO_MORE_COLUMN) != 0)) {
            document.newPage();
         }
      }
      // Print last bits
      //ct.go();
   }

Best Regards,
Paulo Soares

> -----Original Message-----
> From: Jacqueline S [SMTP:[EMAIL PROTECTED]
> Sent: Monday, September 01, 2003 1:05
> To:   [EMAIL PROTECTED]
> Subject:      [iText-questions] Re: columntext problems
> 
> Hi Paulo,
> 
> Below is my test program that creates a pdf document with three columns.  
> For input I used a large plain text file, called /tmp/1.txt.
> 
> Regards,
> Jacqueline
> 
> /*
> * TestPdf.java
> *
> * Created on August 29, 2003, 2:48 PM
> */
> import java.io.*;
> import com.lowagie.text.*;
> import com.lowagie.text.pdf.PdfWriter;
> import com.lowagie.text.pdf.*;
> /**
> *
> * @author
> */
> public class TestPdf  {
> 
>    Font smallFont;
>    PdfWriter writer;
>    Document document;
> 
>    /** Creates a new instance of TestPdf */
>    public TestPdf() {
>    }
> 
>    private void run() {
> 
>       try {
>          ByteArrayOutputStream bos = new ByteArrayOutputStream();
>          smallFont = new Font(Font.HELVETICA, 6);
> 
>          document = new Document(PageSize.A4, 36, 36, 36, 36);
>               // Create a writer that listens to the document
>          writer = PdfWriter.getInstance(document, bos);
> 
>          document.open();
>          makeSmallMessage(readFile("/tmp/1.txt"));
>          document.close();
>          FileOutputStream fos = new FileOutputStream("/tmp/temp.pdf");
>          fos.write(bos.toByteArray());
>          fos.close();
>          System.out.println("end");
> 
> 
>       }
>       catch (Exception e) {
>          e.printStackTrace();
>       }
>    }
> 
>    
> //------------------------------------------------------------------------
> ------
>    /**
>     * Reads a file in and returns it as a string with \n separating each
>     * line.
>     *
>     * @param fileName the filename to read in.
>     * @return String contents of the file with \n separating each line
>     * @throws FileNotFoundException if the file can't be found.
>     * @throws IOException if there is an IO Exception.
>     */
>    public static String readFile(String fileName)
>       throws java.io.FileNotFoundException, java.io.IOException {
>       String returnVal = "";
> 
>       BufferedReader in = new BufferedReader(new FileReader(fileName));
>       String str;
> 
>       while ((str = in.readLine()) != null) {
>          returnVal = returnVal + str + "\n";
>       }
>       in.close();
>       return returnVal;
>    }
> 
>    private void makeSmallMessage(String message) throws Exception {
> 
>       // Create the columns
>       PdfContentByte cb = writer.getDirectContent();
>       ColumnText ct = new ColumnText(cb);
> 
>       ct.addText(new Phrase(16, message, smallFont));
>       ct.setIndent(0);
>       ct.setLeading(6);
> 
> 
>       // Column ones's left and right borders
>       float[] left1 = {30,1050, 30,51};
>       float[] right1 = {200,1050, 200,81, 170,81, 170,51};
> 
>       // Column two's left and right border
>       float[] left2 = {205,1050, 205,81};
>       float[] right2 = {390,1050, 390,81};
> 
>       // Column 3
>       float[] left3 = {395,1050, 395,81, 450,81, 450,51};
>       float[] right3 = {565,1050, 565,51 };
> 
>       int status = 0;
>       int column = 0;
> 
>       // While there's still more text to print out
>       while ((status & ColumnText.NO_MORE_TEXT) == 0) {
> 
>          // Set left column points
>          if (column == 0) {
>            ct.setColumns(left1, right1);
>            column = 1;
>          }
>          // Else set right column points
>          else if (column == 1) {
>            ct.setColumns(left2, right2);
>            column = 2;
>          }
>          else {
>             ct.setColumns(left3, right3);
>             column = 0;
>          }
> 
>          // Print
>          status = ct.go();
> 
>          // Set top part of columns
>          ct.setYLine(800);
> 
>          // Set alignment
>          ct.setAlignment(Element.ALIGN_JUSTIFIED);
>          status = ct.go();
> 
>          // Go to a new page
>          if ((column == 0) && ((status & ColumnText.NO_MORE_COLUMN) != 0))
> {
>             document.newPage();
>          }
>       }
>       // Print last bits
>       ct.go();
> 
>    }//makeSmallMessage
> 
>    /**
>     * @param args the command line arguments
>     */
>    public static void main(String[] args) {
>       TestPdf tp = new TestPdf();
>       tp.run();
>    }
> 
> }
> 
> 
> Re: columntext problems
> Subject: Re: columntext problems
> From: "Paulo Soares" <psoares <at> consiste.pt>
> Date: Fri, 29 Aug 2003 16:01:46 +0100
> Newsgroups: gmane.comp.java.lib.itext.general
> 
> I would like to see an example.
> 
> Best Regards,
> Paulo Soares
> 
> ----- Original Message -----
> From: "Jacqueline S" <white_wolf21 <at> hotmail.com>
> To: <itext-questions <at> lists.sourceforge.net>
> Sent: Friday, August 29, 2003 7:33
> Subject: [iText-questions] columntext problems
> 
> 
> >Hello,
> >
> >I've encountered some strange behaviour using columnText.   I have three
> >
> >columns, and wish to have the words go around a picture in the bottom 
> >centre, such as
> >
> >..........  ..........  ..........
> >..........  ..........  ..........
> >..........  ..........  ..........
> >..........  ..........  ..........
> >..........            ..........
> >
> >
> >What I'm finding is that instead of flowing down 1, then down 2 and down
> >3, if flows down 1, then down 2 (everything okay), but then the words
> that 
> >should be at the stop of column 3, actually get inserted into column
> >three's area (but below the text in column 2).  Eg, if the numbers
> indicate 
> >the
> >flow of the words, it looks like this.
> >
> >1  6  11
> >2  7  12
> >3  8  13
> >4  9  14
> >5      10
> >
> >I'm guessing because the area "10" is below area 9, it puts the text
> >there, instead of filling out the top of column 3 first?
> >
> >I have example code demonstrating this, iif it will help.  Any help you
> >can provide will be much appreciated.
> >
> >Regards
> >Jacqueline
> 
> _________________________________________________________________
> Add photos to your messages with MSN 8. Get 2 months FREE*. 
> http://join.msn.com/?page=features/featuredemail
> 
> 
> 
> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf
> _______________________________________________
> iText-questions mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/itext-questions


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
iText-questions mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/itext-questions

Reply via email to