【问题标题】:iText for .NET Paragraph Element overlapping its own text.NET 段落元素的 iText 与自己的文本重叠
【发布时间】: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


【解决方案1】:

您可以使用 itextSharp 的 SpacingAfter 属性来解决您的问题。 在此处查看完整代码: http://agalaxycode.blogspot.in/2015/01/paragraph-overlapping-problem-in-itextSharp.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多