我有一个包含可变数据行的表。在本例中,共有56行。当它是文档中唯一的内容时,该表工作良好,准确地分割为两页。当我在页面顶部添加一些信息时,顶部的公司地址和客户地址(不是真正的标题)会导致表格的一部分被推下并离开页面(使用setrelativeposition)。56行将在第一页上放置第0-42行,然后在第二页上拾取第45行。如图所示,第43行和第44行不在页面上。
-
如有任何想法或帮助,将不胜感激。这是我第一次使用itext7
Dim Dest As String=(“C:\Users\Dan\Documents\JM\SIG\37065.pdf”)
Dim Writer As PdfWriter = New PdfWriter(Dest) Dim Pdf As PdfDocument = New PdfDocument(Writer) Dim document As New Document(Pdf) Dim Font = PdfFontFactory.CreateFont(StandardFonts.COURIER) Dim Dateis As String = Now.ToShortDateString Dim dsItems As DataSet = JMGetData.GetDS("Select qty, item, cast(price as decimal(10,2)) as price, cast(salestax as decimal(10,2)) as salestax, cast(linetotal as decimal(10,2)) as linetotal from sales where invnbr = '" & invnbr & "'") Dim H1 As Paragraph = New Paragraph(New Text("J&M Home & Farm Supply")).SetFixedPosition(50, 800, 600).SetFontSize(9) Dim H2 As Paragraph = New Paragraph(New Text("1580 Elkton Pike")).SetFixedPosition(50, 790, 600).SetFontSize(9) Dim H3 As Paragraph = New Paragraph(New Text("Prospect TN 38477")).SetFixedPosition(50, 780, 600).SetFontSize(9) Dim cust1 As Paragraph = New Paragraph(New Text("Dan Tester")).SetFixedPosition(50, 750, 600).SetFontSize(9) Dim cust2 As Paragraph = New Paragraph(New Text("Street Addr")).SetFixedPosition(50, 740, 600).SetFontSize(9) Dim cust3 As Paragraph = New Paragraph(New Text("City State Zip")).SetFixedPosition(50, 730, 600).SetFontSize(9) document.Add(H1) document.Add(H2) document.Add(H3) document.Add(cust1) document.Add(cust2) document.Add(cust3) Dim pdftbl As New Table(6) pdftbl.AddCell("Qty").SetWidth(15%) pdftbl.AddCell("Item").SetWidth(40%) pdftbl.AddCell("Price").SetWidth(15%) pdftbl.AddCell("S-Tax").SetWidth(15%) pdftbl.AddCell("L-Total").SetWidth(15%) pdftbl.AddCell("Row").SetWidth(15%) For I As Int32 = 0 To dsItems.Tables(0).Rows.Count - 1 Dim Qty As Int32 = CInt(dsItems.Tables(0).Rows(I).Item("qty")) Dim Item As String = dsItems.Tables(0).Rows(I).Item("item").ToString Dim Price As Decimal = CDec(dsItems.Tables(0).Rows(I).Item("price").ToString) Dim stax As Decimal = CDec(dsItems.Tables(0).Rows(I).Item("salestax").ToString) Dim Linetot As Decimal = CDec(dsItems.Tables(0).Rows(I).Item("linetotal").ToString) pdftbl.AddCell(Qty).SetWidth(15%).SetFontSize(8) pdftbl.AddCell(Item).SetWidth(40%).SetFontSize(8) pdftbl.AddCell(Price).SetWidth(15%).SetFontSize(8) pdftbl.AddCell(stax).SetWidth(15%).SetFontSize(8) pdftbl.AddCell(Linetot).SetWidth(15%).SetFontSize(8) pdftbl.AddCell(I).SetWidth(15%).SetFontSize(8) Next pdftbl.SetWidth(500) pdftbl.SetRelativePosition(25, 90, 300, 700) document.Add(pdftbl) document.Close() System.Diagnostics.Process.Start("C:\Program Files (x86)\Adobe\Acrobat DC\Acrobat\Acrobat.exe", "C:\Users\dan\Documents\JM\Sig\37065.pdf") Me.Close()