是否有可能“缩小”PdfPtable?

时间:2012-10-19 08:58:03

标签: itextsharp itext

我目前正在与Itextsharp合作,我在PDfPtables方面遇到了一些麻烦。 有时它们对于页面而言太大,并且当添加到文档中时,会在多个页面上分解。 可悲的是,对于我的一些上级来说,理性的行为是不可接受的 - 他们坚持认为桌子应该“缩小”到一页。有没有办法实现这个目标?有一些诱人的提示,我可能 - 但提示就是我所拥有的。

有什么替代方案?也许我可以从文档中删除胖表并使用较小的字体和单元格再次构建表格,但这将非常麻烦 - 我宁愿“缩小”,缺少更好的单词。

我目前的代码:

Dim test As PdfContentByte = mywriter.DirectContent
Dim templ = test.CreateTemplate(mywriter.PageSize.Width, mywriter.PageSize.Height)
Table.WriteSelectedRows(0, Table.Rows.Count - 1, 0.0F, mywriter.PageSize.Height, templ)
Dim myimage = Image.GetInstance(templ)
'   myimage.ScaleAbsolute(mywriter.PageSize.Width, mywriter.PageSize.Height)

是否有必要进行扩展?     myimage.SetAbsolutePosition(0,0)     test.AddImage(MYIMAGE)

此代码在页面中添加了一些内容,但它具有页面的高度,宽度约为页面的四分之一 - wi将尝试查找错误...

1 个答案:

答案 0 :(得分:3)

创建表格并定义“总宽度”。只要iText知道表格的宽度,您就可以计算出所有行的高度。一旦知道了高度,就可以检查:

  1. 桌子适合页面吗?只需按原样添加即可。如果您不想考虑任何页边距,可以使用WriteSelectedRows
  2. 页面上没有足够的空间吗?将表添加到PdfTemplate(有多种方法可以执行此操作),将PdfTemplate包装在Image内。缩放图像,然后将其添加到文档中。