在columntext go之后获取y位置

时间:2013-06-12 16:03:31

标签: itext

在contentByte(5.4.1)

中包含columnText对象

如果我这样做

go = ct.go(true)
yy = ct.getYLine()

我可以将最后写入的y位置的值输入到变量yy中但是文本列中的段落没有被写入(显然)

如果我这样做

go = ct.go()
yy = ct.getYLine()

然后没有任何东西归还给你。 如何写入ct并获得YLine值呢???

1 个答案:

答案 0 :(得分:3)

我无法重现这个问题。这是我的代码:

import java.io.FileOutputStream;
import java.io.IOException;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.ColumnText;
import com.itextpdf.text.pdf.PdfWriter;


public class ColumnTest {

    public static void main(String[] args) throws IOException, DocumentException {
        Document document = new Document();
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("columntest.pdf"));
        document.open();
        ColumnText ct = new ColumnText(writer.getDirectContent());
        ct.setSimpleColumn(PageSize.A4);
        ct.addElement(new Paragraph("Hello World"));
        ct.addElement(new Paragraph("Hello Sun"));
        ct.addElement(new Paragraph("Hello Moon"));
        ct.go();
        System.out.println(ct.getYLine());
        document.close();
    }
}

这是写入System.out的内容:

788.0

这与我用ct.go();替换ct.go(true);时的结果相同(但是当我在模拟模式下工作时,我得到一个例外,说“文档没有页面”原因很明显。)