【发布时间】:2015-02-24 12:53:50
【问题描述】:
我正在使用 iTextSharp 将报告导出为 PDF,并且我有一个包含我需要的所有内容的表格。
我想根据每列的最宽文本给列宽度,但是GetWidtPoint() 方法返回的文本宽度是我不期望的,并且列内容会跳转到下一行。
下面有一个关于标题文本宽度计算的例子。我首先将所有表头放在一个数组中。
Dim ColSize(10) as single
Dim Ck as Chunk
For I = 0 to Colsize.getUpperBound(0)
Ck = new Chunk(Data(I),myFont)
Ck.SetCharacterSpacing(1)
Colsize(I) = Ck.GetWidthPoint
Next I
最后,表声明...
Dim T as new PdfPtable(11)
T.HorizontalAligment = 0
T.WidthPercentage = 100
T.SpacingBefore = 3
T.setWidths(Colsize)
一个关于问题的例子:
通过我使用的微积分方法,GetWidthPoint() 将 33 个点返回给“Produto”字,但如果我将列宽设置为 33f,那么我不能仅在第一行显示此文本。要在同一行显示整个单词,我需要将列宽设置为 55f。
当我在单元格中打印文本时...
Dim Cell as new PdfpCell(new Phrase(new Chunk(Data(I,X),Font)))
T.addCell(cell)
有什么想法吗?
【问题讨论】:
标签: vb.net itextsharp