0

我正在生成一个两列表。当文本太长时,它不会换行到下一个 COLUMN,而是继续到下一页。为什么当文本溢出时它不换行到同一页面上的下一列?

这就是我所说的:

截屏

string[] stringList = new string[] {"long string 1", "long string 2"};

Document doc = new Document(PageSize.LETTER);
Paragraph paragraph = new Paragraph();
PdfPTable table = new PdfPTable(2);
table.WidthPercentage = 100;
table.SplitLate = false;
foreach (var item in stringList) {
    paragraph.Add(item);
}

PdfPCell cell = new PdfPCell(paragraph);
cell.Colspan = 1;
table.AddCell(cell);
paragraph = new Paragraph();
doc.Add(table);
4

1 回答 1

0

iTextSharp 表格的行为方式与 HTML 或 Excel 表格的行为方式相同。“列 a”中的单元格将始终保留在该列中,它永远不会溢出到另一列中。想象一个 3 行 2 列的表格,如下所示,想象一个单元格是否可以溢出到另一列:

| Name   | Salary  |
-------------------
| Alice  | 5,000   |
| Bob    | 50,000, |
| 000    | Charlie |
| 10,000

相反,HTML、Excel、iTextSharp 和大多数表格软件会做这样的事情:

| Name   | Salary  |
-------------------
| Alice  | 5,000   |
| Bob    | 50,000, |
|        | 000     |
| Charlie| 10,000  |

此方法保留了表格数据的意图。Adobe InDesign 等程序确实允许您手动指定溢出,但我从未在 iTextSharp 中看到过此功能,如果它确实存在,我会感到非常惊讶。

于 2013-03-21T18:07:24.260 回答