在contentByte(5.4.1)
中包含columnText对象如果我这样做
go = ct.go(true)
yy = ct.getYLine()
我可以将最后写入的y位置的值输入到变量yy中但是文本列中的段落没有被写入(显然)
如果我这样做
go = ct.go()
yy = ct.getYLine()
然后没有任何东西归还给你。 如何写入ct并获得YLine值呢???
答案 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);
时的结果相同(但是当我在模拟模式下工作时,我得到一个例外,说“文档没有页面”原因很明显。)