【问题标题】:Generate table in pdf using itextsharp vb.net from sql使用 itextsharp vb.net 从 sql 生成 pdf 表
【发布时间】:2015-05-27 06:57:53
【问题描述】:

我可以创建一个简单的 pdf 文件,例如“Hello world”,但我想使用 vb.net 在 pdf 文件中生成一个表格。我正在使用 itextsharp 库。

这是我迄今为止尝试过的。

    Protected Sub Create_PdfTable_Click(sender As Object, e As EventArgs) Handles Create_PdfTable.Click
    Dim table As New PdfPTable(2)

    table.TotalWidth = 216.0F

    table.LockedWidth = True

    Dim widths As Single() = New Single() {1.0F, 2.0F}
    table.SetWidths(widths)
    table.HorizontalAlignment = 0

    table.SpacingBefore = 20.0F
    table.SpacingAfter = 30.0F

    Dim cell As New PdfPCell(New Phrase("Table Batch"))
    cell.Colspan = 2
    cell.Border = 0
    cell.HorizontalAlignment = 1
    table.AddCell(cell)
    Dim connect As String = "server=localhost\SQLEXPRESS;database=my_db;uid=sa;password=Pass;"
    Using conn As New SqlConnection(connect)
        Dim pdfDoc As New Document()
        Dim pdfWrite As PdfWriter = PdfWriter.GetInstance(pdfDoc, New FileStream("D://Projects/pdf/" & DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss") & ".pdf", FileMode.Create))
        pdfDoc.Open()

        Dim query As String = "SELECT TOP 10 batch_id, batch_name FROM tbl_batch"
        Dim cmd As New SqlCommand(query, conn)
        Try
            conn.Open()
            Using rdr As SqlDataReader = cmd.ExecuteReader()
                While rdr.Read()
                    table.AddCell(rdr(0).ToString())
                    table.AddCell(rdr(1).ToString())
                End While
            End Using
        Catch ex As Exception
            Response.Write(ex.Message)
        End Try

        pdfDoc.Add(table)
    End Using
End Sub

这段代码正在生成一个空白的pdf文件,我该如何解决这个问题?

【问题讨论】:

  • 乍一看,iTextSharp 代码看起来不错,但您确定 SQL 代码有效吗?您是否尝试过首先创建一个“Hello World”表,并在其中使用表的硬编码内容?如果可行,您可以消除 iTextSharp 作为罪魁祸首。
  • @Bruno Lowagie 我的查询正在运行
  • 这不是我的问题;我的问题是:在没有查询的情况下,表是否可以工作(就像您已经设法让“Hello World”示例正常工作一样)。与此同时,我看到你解决了这个问题。您确实需要关闭文档(5 步流程中的第 5 步)。

标签: sql vb.net pdf itextsharp


【解决方案1】:

经过几个小时的研究,我刚刚找到了答案。只需在pdfDoc.Add(table) 之后关闭文档即可。

喜欢:

pdfDoc.Add(table)
pdfDoc.Close()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 2011-06-29
    • 2022-10-06
    • 2011-09-09
    相关资源
    最近更新 更多