height - 如何在iTextSharp中设置PdfPTable的高度

标签 height itextsharp pdfptable

我下载了iTextSharp dll的最新版本。我生成了一个PdfPTable对象,我必须设置它的高度。尽管设置了PdfPTable的宽度,但无法设置其高度。一些作者建议使用“setFixedHeight”方法。但是,iTextSharp.dll的最新版本没有方法为“setFixedHeight”。它的版本是5.5.2。我该怎么做?

最佳答案

一旦开始考虑 table 高度,就没有意义了。或者,这很有意义,但是却留下了许多无法回答或无法回答的问题。例如,如果将两行表的高度设置为500,这是否意味着每个单元格的高度都为250?如果将大图像放在第一行怎么办,表格应该通过拆分400/100来自动响应吗?那么,两行中的大内容该如何压缩呢?这些场景中的每一个都会产生不同的结果,这些结果使人们知道表实际上将不可靠。如果您查看the HTML spec,您会发现它们甚至不允许为表格设置固定高度。

但是,有一个简单的解决方案,那就是设置单元格本身的固定高度。只要您不使用new PdfPCell(),就可以将DefaultCell.FixedHeight设置为所需的任何值。

var t = new PdfPTable(2);
t.DefaultCell.FixedHeight = 100f;

t.AddCell("Hello");
t.AddCell("World");
t.AddCell("Hello");
t.AddCell("World");

doc.Add(t);

如果您是手动创建单元格,则需要在每个单元格上设置FixedHeight:
var t = new PdfPTable(2);

for(var i=0;i<4;i++){
    var c = new PdfPCell(new Phrase("Hello"));
    c.FixedHeight = 75f;
    t.AddCell(c);
}

doc.Add(t);

但是,如果您想保持正常的餐 table 状态并且必须设置固定的高度以切碎不适合的东西,则也可以使用ColumnText。我不建议这样做,但您可能会有理由。下面的代码将仅显示六行。
var ct = new ColumnText(writer.DirectContent);
ct.SetSimpleColumn(100, 100, 200, 200);

var t = new PdfPTable(2);
for(var i=0;i<100;i++){
    t.AddCell(i.ToString());
}
ct.AddElement(t);
ct.Go();

关于height - 如何在iTextSharp中设置PdfPTable的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25279646/

相关文章:

iphone - 具有可变高度的自定义单元格

HTML+CSS - html 全屏

c# - 需要帮助使用 itextsharp 从 HTML 创建 PDF

c# - 为什么我在这里得到 "Cannot access a closed Stream"?

iTextSharp 并将一些数据移动到下一页

split - iTextSharp : SplitLate/SplitRows?

jquery - 根据动态内容动态调整 iframe 高度

jquery - 滚动后如何使 body 高度占据整个窗口的高度

vb.net - 使用 VB.NET 在两个程序集中定义相同命名空间的解决方法

c# - 如何为 PdfPTable 设置宽度并在页面中对齐表格中心