Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Itextsharp 有没有可能;收缩“;PdfPtable?_Itextsharp_Itext - Fatal编程技术网

Itextsharp 有没有可能;收缩“;PdfPtable?

Itextsharp 有没有可能;收缩“;PdfPtable?,itextsharp,itext,Itextsharp,Itext,我目前正在与Itextsharp合作,我在PDfPtables方面遇到了一些问题。 有时,它们对于一个页面来说太大了,当添加到文档中时,会被拆分为多个页面。 可悲的是,我的一些上司无法接受这种理性的观点——他们一直坚持表格应该“缩小”到一页。有没有办法做到这一点?有一些诱人的暗示,我是可能的-但暗示是我所有的 替代方案是什么?也许我可以从文档中删除胖表,然后用更小的字体和单元格重新构建表,但这对我来说太麻烦了——我更喜欢“缩小”,因为没有更好的词 我当前的代码: Dim test As PdfC

我目前正在与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) 测试。添加图像(myimage)


此代码将某个内容放在页面上,但它具有页面的高度,宽度约为页面的四分之一-wi将尝试查找错误…

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

  • 这张桌子适合这一页吗?只需按原样添加即可。如果不想考虑任何页边距,可以使用
    WriteSelectedRows
  • 页面上没有足够的空间吗?将表添加到
    PdfTemplate
    (有多种方法可以做到这一点),将
    PdfTemplate
    包装在
    图像中。缩放图像,并将其添加到文档中

  • 谢谢,这是我到目前为止听到的第一个全面的答案!我有个问题:你说的“和形象”是什么意思?到目前为止我的代码在上面…谢谢!那是个打字错误。我在代码中看到一个错误:在创建模板时使用PageSize.Height作为高度。这并不能解决你的问题。您应该计算表的高度(如中所述),并使用该高度。您需要与WriteSelectedRows中的Y偏移量相同的值。另外,可以使用-1而不是Table.Rows.Count-1。使用-1将绘制所有行。我无法找到table.gettotalheight作为方法-我将尝试使用CalculateHeights。我习惯于使用iText,因此在方法名称中使用get。您应该删除get,就像我提到的示例的C#版本中所做的那样: