3

在 contentByte (5.4.1) 内有一个 columnText 对象

如果我做

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

我可以将最后写入的 y 位置的值放入变量 yy 但未写入列 Text 内的段落(显然)

如果我做

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

然后什么都不会返回给 yy。如何让 ct 被写入并获得 YLine 值???

4

1 回答 1

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);(但是当我在模拟模式下工作时,由于显而易见的原因,我得到一个异常说“文档没有页面” )。

于 2013-06-13T09:06:27.690 回答