【发布时间】:2017-10-31 05:51:35
【问题描述】:
我正在动态创建 PDF 报告,有时内容太长并且(应该)跨越多个页面。我正在使用一个段落元素,它只是覆盖了它的单元格空间。
代码:
'Table SPECS
Dim tab As New PdfPTable(1)
tab.TotalWidth = 502.0F
tab.LockedWidth = True
tab.SpacingBefore = 140.0F
Dim phrase As Phrase = Nothing
Dim cell As New PdfPCell(New Phrase())
phrase = New Phrase()
phrase.Add(New Chunk(dr("Subject").ToString() & vbLf, font))
cell = PhraseCell(phrase, PdfPCell.ALIGN_RIGHT)
cell.VerticalAlignment = PdfCell.ALIGN_TOP
cell.RunDirection = PdfWriter.RUN_DIRECTION_RTL
cell.HorizontalAlignment = PdfCell.ALIGN_CENTER
cell.PaddingLeft = 5.0F
cell.PaddingBottom = 2.0F
cell.PaddingTop = 0.0F
cell.Border = 0
tab.AddCell(cell)
Dim p As Paragraph = New Paragraph(dr("Contents"), font)
p.SpacingBefore = 140.0F
Dim Col As New ColumnText(writer.DirectContent)
Col.SetSimpleColumn(50, doc.Bottom + 160, 540, doc.Top - 160)
Col.RunDirection = PdfWriter.RUN_DIRECTION_RTL
Col.AddText(p)
cell.RunDirection = PdfWriter.RUN_DIRECTION_RTL
cell.PaddingLeft = 5.0F
cell.PaddingBottom = 2.0F
cell.PaddingTop = 0.0F
cell.Border = 0
Col.Go()
doc.Add(tab)
doc.Close()
我怎样才能正确地实现它?
【问题讨论】:
-
(1) 向我们展示您的代码。 (2) 您对
leading使用了错误的值。 (3) 如果您显示您的代码,我们可以向您显示您的代码错误的地方。 -
我看到你们自己布局文本(使用
new ColumnText(writer.DirectContent))并要求iText 布局文本(使用doc.Add(tab))。您是否确保您布局的文本不会影响文本 iText 布局? -
@mkl 实际上,我只是在最后一次尝试迭代中添加了该列。在我做之前几乎是一样的。
-
好吧,您的屏幕转储看起来像您的两个部分,表格和列文本,重叠。而且由于您的代码不完整,因此不能用于重现问题。因此,在这个阶段,我们仍然只能猜测。
标签: vb.net pdf itext paragraph