2

我目前正在使用 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 将尝试找到错误...

4

1 回答 1

3

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

  1. 表格是否适合页面?只需按原样添加即可。WriteSelectedRows如果您不想考虑任何页边距,也许可以使用。
  2. 页面空间不够?将表格添加到 a PdfTemplate(有不止一种方法可以做到这一点),PdfTemplateImage. 缩放图像,并将其添加到文档中。
于 2012-10-19T12:35:51.357 回答