从vb.net中的数据库表创建PDF

时间:2014-09-20 18:12:04

标签: pdf itextsharp vb.net-2010

我想从我的数据库中的表格中的数据制作pdf报告我如何在VB.net中做到这一点,我看到的一切是如何用asp做的。或者甚至是可能的。这是一个Windows窗体。

经过一段时间的研究和玩我的代码之后好了,我想我会发布它,因为看起来大多数的itextsharp东西都是针对c#或ASP.net这对我来说很有用,而且我使用的是VS express 2010。说dtg.reports就是你要用dataGridView的名字替换它的地方。我希望这可以帮助某人,让它成功是一种痛苦和痛苦。

1 个答案:

答案 0 :(得分:1)

我有很多研究,我发现和玩我的代码我发现了一些有用的东西,所以我希望这可以帮助别人。这个解决方案是在VB.net上使用VS express 2012完成的,并且一直在为我工作。 #####一个注释,你要插入datagridview的名称,它说的是dtgReport

Imports iTextSharp
Imports iTextSharp.text
Imports iTextSharp.text.pdf

'Creating iTextSharp Table from the DataTable data
Dim pdfTable As New PdfPTable(dtgReport.ColumnCount)
pdfTable.DefaultCell.Padding = 3
pdfTable.WidthPercentage = 30
pdfTable.HorizontalAlignment = Element.ALIGN_LEFT
pdfTable.DefaultCell.BorderWidth = 1

'Adding Header row
For Each column As DataGridViewColumn In dtgReport.Columns
    Dim cell As New PdfPCell(New Phrase(column.HeaderText))
    cell.BackgroundColor = New iTextSharp.text.BaseColor(240, 240, 240)
    pdfTable.AddCell(cell)
 Next

 'Adding DataRow
 For Each row As DataGridViewRow In dtgReport.Rows
     For Each cell As DataGridViewCell In row.Cells
         pdfTable.AddCell(cell.Value.ToString())
     Next
 Next

'Saving to PDF
Dim folderPath As String = "C:\reports\"
If Not Directory.Exists(folderPath) Then
    Directory.CreateDirectory(folderPath)
End If

Using stream As New FileStream(folderPath & "test2.pdf", FileMode.Create)
    Dim pdfDoc As New Document(PageSize.A2, 10.0F, 10.0F, 10.0F, 0.0F)
    PdfWriter.GetInstance(pdfDoc, stream)
    pdfDoc.Open()
    pdfDoc.Add(pdfTable)
    pdfDoc.Close()
    stream.Close()
End Using