ItextSHARP表拆分问题

时间:2009-09-24 12:03:36

标签: split itext

我使用itextsharp创建了一个示例项目。在那里我提到了页脚和一个表,我按循环为给定的数字生成行,如果表拆分到另一页然后,我有一个没有给定数据的空白页。它似乎未定义。

以下是代码:

PdfWriter.GetInstance(document, New FileStream(ConfigurationManager.AppSettings("PDFPath") & fileName, FileMode.Create))

Dim FooterFont As Font = FontFactory.GetFont(FontFactory.TIMES_ROMAN, 12, Font.BOLD)
Dim FooterTxt As Phrase = New Phrase(Format(Now, "MM/dd/yyyy") )
Dim footer As New HeaderFooter(FooterTxt, True)
footer.Border = iTextSharp.text.Rectangle.TOP_BORDER
document.Footer = footer

document.Open()

Dim tblbody As New iTextSharp.text.Table(2)
tblbody.SpaceInsideCell = 1
tblbody.WidthPercentage = 100
tblbody.Border = 0
for i as integer=0 to 150
Dim cell = New Cell(New Phrase(i, New Font(Font.TIMES_ROMAN, 12, "" & CellStyle & "", iTextSharp.text.Color.BLACK)))
cell.Colspan = Span
cell.Border = CellBorder
cell.HorizontalAlignment = CellAlign
cell.VerticalAlignment = iTextSharp.text.Rectangle.ALIGN_MIDDLE
tblbody.AddCell(cell)
next

document.NewPage()

for i as integer=0 to 150
Dim cell = New Cell(New Phrase(i, New Font(Font.TIMES_ROMAN, 12, "" & CellStyle & "", iTextSharp.text.Color.BLACK)))
cell.Colspan = Span
cell.Border = CellBorder
cell.HorizontalAlignment = CellAlign
cell.VerticalAlignment = iTextSharp.text.Rectangle.ALIGN_MIDDLE
tblbody.AddCell(cell)
next
document.close()

3 个答案:

答案 0 :(得分:5)

将此设置设置为您的表格:

tblbody.SplitLate = false;  tblbody.SplitRows = true;

答案 1 :(得分:4)

不幸的是,SplitLate和SPlitRows仅在PdfPTable上可用。

您可以设置tblbody.TableFitsPage和他CellsFitPage = false;

为其他人发帖,因为我花了很多时间试图解决这个问题。

答案 2 :(得分:0)

这些天我也遇到过同样的问题。它有一个空白页面的原因可能是有一个单元格跨越太多行,它既不能将单元格放在一个页面中,也不能将它分成两页(当CellsFitPage = true时)。因此,通过设置CellsFitPage = false可以解决该问题。但是,如果我们想要CellsFitPage = true怎么办?然后我们可能需要创建许多小单元格并将其边框设置为0,这将使它们看起来像一个单个长单元格,并且页面可以拆分它们(将许多单元格拆分为不同的页面而不是拆分单个长单元格)。 / p>