这是我使用 OpenPDF(旧版 iText 4)的代码。我在网上搜索了可能的解决方案,但 ColumnText 的所有实现都令人困惑。我也尝试实现它,但没有得到预期的结果。
MultiColumnText mct = new MultiColumnText();
mct.addReguarColumns(document.left(), document.right(), column.gutter, column.colNum);
Paragraph p = new Paragraph("Testing");
mct.addElement(p);
document.add(mct);
这是使用 MultiColumnText。现在,我正在测试 iText 5,发现 MultiColumnText 已被删除。我在这里看到一个针对 C# 的问题,我将代码更改为以下以支持 ColumnText:
ColumnText mct = new ColumnText(writer.getDirectContent());
float middle = (document.left() + document.right()) / 2;
float[][] COLUMNS = {
{ document.left(), document.bottom(), middle - 15, document.top() } ,
{ middle + 15, document.bottom(), document.right(), document.top() }
};
Paragraph p = new Paragraph("Testing");
mct.addElement(p);
int col = 0;
int count = 0;
int status = ColumnText.START_COLUMN;
while (ColumnText.hasMoreText(status)) {
mct.setSimpleColumn(
COLUMNS[col][0], COLUMNS[col][1],
COLUMNS[col][2], COLUMNS[col][3]);
status = mct.go();
if (++count > 1) {
count = 0;
document.newPage();
}
}
但是输出是一团糟。我在这里错过了什么吗?