mus*_*n64 8 height itextsharp pdfptable
我下载了iTextSharp dll的最新版本.我生成了一个PdfPTable对象,我必须设置它的高度.尽管设置了PdfPTable的宽度,但我无法设置它的高度.一些作者建议使用'setFixedHeight'方法.但是最后一个版本的iTextSharp.dll没有'setFixedHeight'方法.它的版本是5.5.2.我该怎么做?
Chr*_*aas 20
一旦你开始考虑它,设置一个表的高度是没有意义的.或者,它是有道理的,但留下许多问题没有答案或无法回答.例如,如果您将两行表格设置为500的高度,这是否意味着每个单元格的高度为250?如果大图像放在第一行,如果表格通过拆分400/100自动响应怎么办?那么两行中的大量内容呢?它应该压扁那些吗?这些场景中的每一个都会产生不同的结果,这些结果使得知道表格实际上会变得不可靠.如果查看HTML规范,您会发现它们甚至不允许为表设置固定高度.
然而,有一个简单的解决方案,只是设置单元格本身的固定高度.只要你不使用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);
Run Code Online (Sandbox Code Playgroud)
如果您手动创建单元格,则需要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);
Run Code Online (Sandbox Code Playgroud)
但是,如果你想要正常的表格,并且必须设置一个固定的高度来切除不合适的东西,你也可以使用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();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37942 次 |
| 最近记录: |