2009-09-24 5 views
1

Я создал образец проекта, используя itextsharp. В этом я упомянул Нижний колонтитул и таблицу, я генерирую строки по циклу для данного числа, если таблица распадается на другую страницу, тогда у меня есть одна пустая страница, которая не имеет данных. Это кажется неопределенным.Проблема расщепления таблицы 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() 

ответ

5

Установите эти настройки в таблицу:

tblbody.SplitLate = ложь; tblbody.SplitRows = true;

4

К сожалению, SplitLate и SPlitRows доступны только на PdfPTable.

Вы можете установить tblbody.TableFitsPage и он CellSFitPage = false;

Опубликовано для других, поскольку я потратил много времени, пытаясь понять это.

0

Я также столкнулся с тем же вопросом в эти дни. Причиной, почему у нее есть пустая страница, может быть одна ячейка, которая пересекает слишком много строк, и она не может помещать ячейку на одну страницу и не разбивать ее на две страницы (когда CellsFitPage = true). Поэтому при установке CellsFitPage = false можно решить эту проблему. Но что, если мы хотим CellsFitPage = true? Тогда нам может понадобиться создать много маленьких ячеек и установить их границу с 0, что сделает их похожими на одну длинную ячейку, и страница может разбить их (разбивать многие ячейки на разные страницы, а не разделять одну длинную ячейку).

Смежные вопросы