iTextsharp: dibuja una línea al final y al inicio de una página con tablas

Seleccionando registros de una tabla, creo las tablas de iTextsharp, una para cada primera letra de los registros

En la imagen, una tabla para la letra "G":

"G" es una fila de 6 celdas

Luego una fila de 6 celdas con los "encabezados"

y luego filas con registros

Las celdas de las filas solo necesitan borde izquierdo y derecho.

Pero necesito dibujar o "cerrar" la línea de la última fila de la página y también dibujar o "abrir" la línea de la primera fila de la página siguiente.

Leí muchas publicaciones pero no puedo encontrar la solución

Sé cómo dibujar una línea gráfica y cómo encontrar las coordenadas o cómo establecer el borde inferior o superior, pero no sé cómo detectar el salto de página o si puedo manejar esta situación con pies de página o encabezados forzados solo en casos como el de la foto.

El código de la clase adaptado a VB Gracias a COeDev por el soporte

Ahora solo necesito resolver el Rectángulo (o dibujar una línea) porque no es lo mismo en VB.NET (Líneas marcadas como comentario)

Imports iTextSharp.text.pdf

Public Class LineaBottom
Implements IPdfPTableEvent

Public Sub TableLayout(table As PdfPTable, widths As Single()(), heights() As Single, headerRows As Integer, rowStart As Integer, canvases() As PdfContentByte) Implements IPdfPTableEvent.TableLayout
    'Throw New NotImplementedException()

    Dim columns As Integer
    Dim rect As Rectangle
    Dim footer As Integer = widths.Length - table.FooterRows
    Dim header As Integer = table.HeaderRows - table.FooterRows + 1
    Dim ultima As Integer = footer - 1

    If ultima <> -1 Then

        columns = widths(ultima).Length - 1
        rect = New Rectangle(widths(ultima)(0), heights(ultima), widths(footer - 1)(columns), heights(ultima + 1))
        'rect.BorderColor = BaseColor.BLACK
        'rect.BorderWidth = 1
        'rect.Border = Rectangle.TOP_BORDER
        'canvases(PdfPTable.BASECANVAS).Rectangle(rect)

    End If
End Sub

Espero que este código sirva a otras personas porque no hay mucha información en Internet.

Respuestas a la pregunta(2)

Su respuesta a la pregunta