2012-09-18 77 views
0

我目前正在使用PdfPtable,目前一切正常 - 但我有一个令人讨厌的问题:有时一张表高于一个页面,PDFPtable然后中断,一些行在下一页。PdfPtable缩小到页面

不幸的是,我目前正在模拟一个较老的软件,他们只是缩小表格,直到它适合一页。有没有人有一个想法如何实现这种行为?

简而言之:有办法在一页上保留一张表吗?收缩表格而不是拆分表格。

非常简单的代码至今:

Dim Mytables as List(Of DataTables)   
Dim doc As Document = Nothing    

doc = New Document(iTextSharp.text.PageSize.A4.Rotate, 1, 1, 1, 1) 
Dim pdfw = PdfWriter.GetInstance(doc, New FileStream(PDFPath, FileMode.Create)) 
pdfw.SetFullCompression() 
pdfw.CloseStream = True 
mywriter = pdfw 

for i=0 to myTables.count-1 

    Dim Table = New PdfPTable(myTables(i).Columns.Count) 

    Here comes a huge chunk of business logic. 
    doc.add(table) 
    Doc.NewPage() 
next. 

我试图table.keeptogether=trueTable.SplitLate = True,没有效果。

+0

显示迄今为止所做的工作。 –

+0

@Nudier:代码非常简单: 基本上 对于i = 0到myTables.count-1 Dim Table = New PdfPTable(myTables(i).Columns.Count) 这里有一大块商业逻辑。 下一个。 –

回答

0

你必须设置为添加到我希望这可以帮助你的文件

//The code below creates a 2x2 table 
Dim Table = New PdfPTable(2) 
Table.HorizontalAlignment = 0 //0=Left, 1=Center, 2=Right 
Table.SpacingBefore = 10 
Table.SpacingAfter = 10 
Table.DefaultCell.Border = 0 
Table.SetWidths(New Integer() { 1, 4 }) 
Table.AddCell(New Phrase("Content1")) 
Table.AddCell(New Phrase("Content 2")) 

Here comes a huge chunk of business logic. 
doc.add(table) 
doc.NewPage() 

表的属性。

+0

你好Nudier,原谅我迟到的答案 - 我生病了:( 不幸的是,这不起作用 这创建了一个简单的表 - 但如果表中有足够的行,它仍然“溢出”到下一页。 –