iText - Extraño comportamiento de cambio de columna / página con ColumnText

Soy bastante nuevo en iText y trato de lograr lo siguiente:

leer una lista de archivos de texto de hd localOrganice los textos de los archivos en un archivo pdf de diseño de 2 columnas.añadir un índice numerado consecutivamente antes de cada texto

Comencé con el ejemplo MovieColumns1 (http://itextpdf.com/examples/iia.php?id=64) y terminó con el siguiente código:

    final float[][] COLUMNS_COORDS = { { 36, 36, 296, 806 }, { 299, 36, 559, 806 } };

    Document document = new Document(PageSize.A4);
    PdfWriter writer = PdfWriter.getInstance(document, resultFile);
    document.open();

    ColumnText ct = new ColumnText(writer.getDirectContent());
    ct.setSimpleColumn(COLUMNS_COORDS[0][0], COLUMNS_COORDS[0][1],
        COLUMNS_COORDS[0][2], COLUMNS_COORDS[0][3]);

    File textDir = new File("c:/Users/raddatz/Desktop/123/texts/");
    File[] files = textDir.listFiles();

    int i = 1;
    int column = 0;
    for (File file : files) {
        String text = FileUtils.readFileToString(file, "UTF-8");
        float yLine = ct.getYLine();
        System.out.println("adding '" + file.getName() + "'");

        PdfPCell theText = new PdfPCell(new Phrase(text, new Font(Font.HELVETICA, 10)));
        theText.setBorder(Rectangle.NO_BORDER);
        theText.setPaddingBottom(10);
        PdfPCell runningNumber = new PdfPCell(new Phrase(new DecimalFormat("00").format(i++), new Font(
            Font.HELVETICA, 14, Font.BOLDITALIC,
            new Color(0.7f, 0.7f, 0.7f))));
        runningNumber.setBorder(Rectangle.NO_BORDER);
        runningNumber.setPaddingBottom(10);
        PdfPTable table = new PdfPTable(2);
        table.setWidths(new int[] { 12, 100 });
        table.addCell(runningNumber);
        table.addCell(theText);
        ct.addElement(table);
        int status = ct.go(true);
        if (ColumnText.hasMoreText(status)) {
            column = Math.abs(column - 1);
            if (column == 0) {
                document.newPage();
                System.out.println("inserting new page with size :" + document.getPageSize());
            }
            ct.setSimpleColumn(
                COLUMNS_COORDS[column][0], COLUMNS_COORDS[column][1],
                COLUMNS_COORDS[column][2], COLUMNS_COORDS[column][3]);
            yLine = COLUMNS_COORDS[column][3];
            System.out.println("correcting yLine to: " + yLine);
        } else {
            ct.addElement(table);
        }
        ct.setYLine(yLine);
        System.out.println("before adding: " + ct.getYLine());
        status = ct.go(false);
        System.out.println("after adding: " + ct.getYLine());
        System.out.println("--------------------------------");
    }

    document.close();

Aquí puedes ver el resultado:http://d.pr/f/NEmx

Mirando la primera página del PDF resultante asumí que todo estaba funcionando bien.

Pero en la segunda página puedes ver el problema (s):

el texto # 31 no se muestra completamente (la primera línea + el índice se corta / no se encuentra en el área visible)el texto # 46 no se muestra completamente (las primeras tres líneas + el índice se corta / no se encuentra en el área visible)

En la página 3 todo parece estar bien otra vez. Estoy realmente perdido aquí.

- ACTUALIZACIÓN (2013-03-14) -

He analizado los contenidos del PDF ahora. El problema no es que el contenido se muestre en áreas no visibles, sino que el contenido no está en absoluto en el pdf. La parte faltante del contenido es exactamente la que cabría en la columna / página anterior. Así que parece que ColumnText.go (true) está manipulando el objeto pasado por addElement () antes. Puede alguien confirmar esto? Si es así, ¿qué puedo hacer al respecto?

- Fin de actualización (2013-03-14) -

Esperamos su respuesta

saludos, sven

Respuestas a la pregunta(1)

Su respuesta a la pregunta