.net で作成した xpsファイルを xpsファイルビューアーで開いて印刷するとエラーが発生する原因

下記のようなコードを.net famework で作成し、xpsファイルを作成します。次にxpsファイルをxpsファイルビューアーで開いて印刷を実行すると途中でエラーが発生することがありあます。
環境によっては、発生しないこともあり、Windwos7 32bit でレーザープリンタで印刷した場合に現象を確認しました。
下記コードでGraphicsPath で多数の線を追加してからDraw しているのが原因みたいです。DrawLineで書き直したら改善しました。
今回の場合のようにxpsファイルの印刷時にプリンタdllで例外エラーとなる場合、参考にしてみてください。
印刷エラー

Private Sub btnPrint_Click(sender As Object, e As EventArgs) Handles btnPrint.Click

        Dim doc As New PrintDocument()


        doc.PrinterSettings.PrinterName = "Microsoft XPS Document Writer"

        AddHandler doc.PrintPage, AddressOf Me.doc_PrintPage

        doc.Print()

    End Sub

    Private Sub doc_PrintPage(ByVal sender As Object, ByVal ev As PrintPageEventArgs)

        Dim path As GraphicsPath
        Dim font As Font
        Dim pen As Pen
        Dim i, j As Integer
        Dim x1, x2, y1, y2, offsetx, offsety As Single
        Dim leftMargin As Single = ev.MarginBounds.Left / 100 * 25.4
        Dim topMargin As Single = ev.MarginBounds.Top / 100 * 25.4
        Dim boxWidth As Single = 140
        Dim boxHeight As Single = 220

        ev.Graphics.PageUnit = GraphicsUnit.Millimeter


        font = New Font("Arial", 1)
        pen = New Pen(ColorTranslator.FromHtml("#FFE0E0E0"), 0.1)
        path = New GraphicsPath()

        x1 = leftMargin
        y1 = topMargin
        x2 = leftMargin + boxWidth
        y2 = topMargin + boxHeight

        '横線
        For i = 0 To 40
            path.StartFigure()
            offsety = i * (boxHeight / 40)
            path.AddLine(x1, y1 + offsety, x2, y1 + offsety)
        Next

        '縦線
        For i = 0 To 40
            path.StartFigure()
            offsetx = i * (boxWidth / 40)
            path.AddLine(x1 + offsetx, y1, x1 + offsetx, y2)
        Next


        ev.Graphics.DrawPath(pen, path)

        ev.HasMorePages = False


        path.Dispose()
        font.Dispose()
        pen.Dispose()


    End Sub