iTextSharp: SplitLate/SplitRows?

Ich habe ein Problem ich habe eine Tabelle (PdfPTable), die möglicherweise erstrecken sich die Vergangenheit der Länge der Seite. Ich habe versucht, auf der Suche, wie man "split", eine Tabelle auf mehr als eine Seite, aber iTextSharp ist ziemlich schlecht dokumentiert in diesem Bereich. Weiß jemand, wie dies zu tun, ohne Wahl einer beliebigen Y-position auf der Seite und ihm sagen, es zu teilen wenn es da ist?

Schaute ich in das SplitLate und SplitRows Eigenschaften, aber es gibt keine Dokumentation, was diese tun. BEARBEITEN Sie nichts zu tun.

Dank!

BEARBEITEN

Ich bin auf der Suche, um schneiden Sie die Tabelle in der Hälfte horizontal wie aus der Tabelle wird immer die Breite der Seite. Dies ist zu sagen, dass ich will, dass die Zeilen, die nicht passen, vertikal zu erweitern, um die nächste Seite unten.

EDIT2

Hier einige code:

Public Sub BuildPrintableDocument
    Dim doc As New Document(PageSize.LETTER, 0, 0, 0, BOTTOM_MARGIN)
    Dim writer As PdfWriter = PdfWriter.GetInstance(doc, _
        New FileStream("invoice.pdf", FileMode.Create)

    Dim footer As New HeaderFooter(New Phrase("www.columbussupply.com", _
        footerFont), False)
    footer.Border = Rectangle.NO_BORDER
    footer.Alignment = HeaderFooter.ALIGN_CENTER
    doc.Footer = footer

    doc.Open()

....

Dim items As PdfPTable = NewItemTable()
Dim count As Integer = 0
    For Each oi As OrderItem In TheInvoice.Items
        If oi.Status <> OrderItem.OrderItemStatus.Cancelled Then
            Dim qty As New PdfPCell(New Phrase(oi.Quantity, mainFont))
            qty.HorizontalAlignment = Element.ALIGN_CENTER
            qty.Padding = ITEMS_PADDING

            '...instantiate 3 other cells here (removed for repetitiveness)'

            items.AddCell(qty)
            items.AddCell(desc)
            items.AddCell(price)
            items.AddCell(total)
        End If
    Next

    items.WriteSelectedRows(0, -1, LEFT_MARGIN, GetItemsStartY, _
        writer.DirectContent)
End Sub


Protected Function NewItemTable() As PdfPTable
    Dim items As PdfPTable = New PdfPTable(4)
    Dim headers() As String = {"QTY", "DESCRIPTION", "PRICE", "TOTAL"}

    For Each s As String In headers
        Dim cell As New PdfPCell(New Phrase(s, mainFont))
        cell.HorizontalAlignment = Element.ALIGN_CENTER
        items.AddCell(cell)
    Next

    items.TotalWidth = ITEMS_TOTAL_WIDTH
    items.SetWidths(New Single() {QTY_COL_WIDTH, DESC_COL_WIDTH, _ 
        PRICE_COL_WIDTH, TOTALS_COL_WIDTH})
    Return items
End Function

InformationsquelleAutor Jason | 2009-09-01

Schreibe einen Kommentar