ich geschrieben habe den folgenden Code brechen pdf zu generieren:Wie pdf Seite in iTextSharp pdf
path = Server.MapPath("PDF-Files")
filename = path + "/mydata.pdf"
document = New iTextSharp.text.Document(iTextSharp.text.PageSize.A4, 5.0F, 5.0F, 5.0F, 5.0F)
Dim bfTimes As BaseFont
Dim times As iTextSharp.text.Font
bfTimes = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, False)
times = New iTextSharp.text.Font(bfTimes, 8, iTextSharp.text.Font.NORMAL)
Dim writer As PdfWriter
writer = PdfWriter.GetInstance(document, New FileStream(filename, FileMode.Create))
Dim ev As New itsEvents
writer.PageEvent = ev
If document.IsOpen Then
document.Close()
End If
document.Open()
Dim spacing As Integer
spacing = 0
Dim curY, lineHeight As Double
curY = document.Top
lineHeight = 0
Const maxPerLine As Integer = 3
For k As Integer = 0 To ds.Tables(0).Rows.Count - 1
Dim table As PdfPTable
table = New PdfPTable(3)
table.DefaultCell.Border = iTextSharp.text.Rectangle.NO_BORDER
table.TotalWidth = 200.0F
table.LockedWidth = True
Dim cell As PdfPCell
cell = New PdfPCell()
cell.AddElement(New iTextSharp.text.Paragraph(ds.Tables(0).Rows(k)("id").ToString(), times))
cell.AddElement(New iTextSharp.text.Paragraph(ds.Tables(0).Rows(k)("name").ToString() + " " + dsLabelTemp.Tables(0).Rows(k)("city").ToString() + "(" + dsLabelTemp.Tables(0).Rows(k)("post").ToString() + ")", times))
cell.AddElement(New iTextSharp.text.Paragraph(ds.Tables(0).Rows(k)("userpersonal").ToString(), times))
cell.Colspan = 3
cell.HorizontalAlignment = 0
cell.Border = iTextSharp.text.Rectangle.NO_BORDER
cell.Padding = 20.0F
table.AddCell(cell)
table.WriteSelectedRows(0, -1, document.Left + spacing, curY, writer.DirectContent)
spacing = spacing + 200
lineHeight = Math.Max(lineHeight, table.TotalHeight)
If 0 = (k + 1) Mod maxPerLine Then
curY = curY - lineHeight
spacing = 0
lineHeight = 0
End If
Next
document.Close()
ShowPdf(filename)
Wenn obigen Code in perfekter Art und Weise auszuführen, und gibt den Ausgang, aber es zeigt nicht die, wenn Seite 1 abgeschlossen.
In der oberen Bild, können Sie prüfen, ob es nicht angezeigt vollständige Datensätze ist.
Ich möchte die Seite zu brechen, wenn die Seite voll ist oder die Seitenhöhe erhöhen.
Wie kann ich Daten auf die zweite Seite übertragen, wenn meine 1. Seite voll ist?
Wenn Sie iTextSharp wollen die Tabelle über verschiedene Seiten verteilen, dann warum Sie 'WriteSelectedRows verwenden()'? Warum fügst du dem 'Dokument' nicht einfach die 'Tabelle' hinzu? Wo hast du gelernt, iTextSharp Code zu schreiben? Kannst du deinen Lehrer entlassen oder das Buch wegwerfen, das du gelesen hast? –
Da ich 3 Tabelle in 1 Zeile schreiben muss und dann auf neue Zeile und nach nahe an der 1. Seite brechen muss dann auf 2. Seite umleiten. – deepak
Dieser Kommentar ist keine Antwort auf meine Frage. Was Sie sagen, macht keinen Sinn, und Sie beweisen das mit Ihrer Antwort: 'document.Add (table)' war genau das, was Sie brauchten. –