怎样把.net页面中的表格转换成pdf(C#.net转换为VB.net)

来源:互联网 发布:东营区一中知校二维码 编辑:程序博客网 时间:2024/04/30 03:25

参考元文 URL;

http://topic.csdn.net/u/20100607/16/BA6669FA-50C5-4CBD-9889-B65A009943B3.html

的1楼


Public Class TableToPDF

        Public Sub New()
        End Sub
        '''
        ''' 转换数据表为PDF文档
        '''
        ''' 数据表数据
        ''' 目标PDF文件全路径
        ''' 字体所在路径
        ''' 字体大小
        ''' 返回调用是否成功
        Public Shared Function ConvertDataTableToPDF(datatable As DataTable, PDFFilePath As String, FontPath As String, FontSize As SingleAs Boolean

            '初始化一个目标文档类
            Dim document As New Document()
            '调用PDF的写入方法流
            '注意FileMode-Create表示如果目标文件不存在,则创建,如果已存在,则覆盖。
            Dim writer As PdfWriter = PdfWriter.GetInstance(document, New FileStream(PDFFilePath, FileMode.Create))
            '打开目标文档对象
            document.Open()

            ' 添加页眉
            Dim header As New HeaderFooter(New Phrase("header"), False)
            document.Header = header




            '创建PDF文档中的字体
            Dim baseFont__1 As BaseFont = BaseFont.CreateFont(FontPath, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED)
            '根据字体路径和字体大小属性创建字体
            Dim font As New Font(baseFont__1, FontSize)
            '根据数据表内容创建一个PDF格式的表
            Dim table As New PdfPTable(datatable.Columns.Count)
            table.WidthPercentage = 500F


            '打印列名
            For j As Integer = 0 To datatable.Columns.Count - 1
                table.AddCell(datatable.Columns(j).ColumnName.ToString())
            Next


            '遍历原table的内容
            For i As Integer = 0 To datatable.Rows.Count - 1
                For j As Integer = 0 To datatable.Columns.Count - 1

                    table.AddCell(New Phrase(datatable.Rows(i)(j).ToString(), font))
                Next
            Next
            '在目标文档中添加转化后的表数据
            document.Add(table)
            '关闭目标文件
            document.Close()
            '关闭写入流
            writer.Close()
            Return True
        End Function



        '然后,在要调用转换的按钮的事件代码中调用就可以了
        ' /将目标文件保存在此项目下
        '字体使用simsun
        '字号选择14
        'mytb是数据datatable的名
        ' TableToPDF.ConvertDataTableToPDF(mytb, Server.MapPath(".") + @"\Table.pdf", "c:\\winnt\\FONTS\\simsun.ttc,1", 14); 

        '2  给出文本内容,生成PDF
        '比如用户输入文本内容及要输出PDF的保存路径的话,也可以输出PDF
        ''':要输出文本的内容


        Public Shared Sub CreateTxt(txt As String, filepath As String)
            '创建文档对象
            Dim document As New Document()
            '实例化生成的文档
            PdfWriter.GetInstance(document, New FileStream(filepath, FileMode.Create))
            '打开文档
            document.Open()
            '在文档中添加文本内容
            document.Add(New Paragraph(txt))
            '关闭文档对象
            document.Close()
        End Sub

        ' 3    加页眉页脚
        Public Shared Sub CreatePDFheader(filepath As String, headertxt As String, footertxt As String)
            '创建文档对象
            Dim document As New Document()
            ' 创建文档写入实例
            PdfWriter.GetInstance(document, New FileStream(filepath, FileMode.Create))

            ' 添加页脚
            Dim footer As New HeaderFooter(New Phrase(footertxt), True)
            footer.Border = Rectangle.NO_BORDER
            document.Footer = footer

            '打开文档内容对象
            document.Open()

            ' 添加页眉
            Dim header As New HeaderFooter(New Phrase(headertxt), False)
            document.Header = header
            '设计各页的内容
            document.Add(New Paragraph("This is First Page"))
            '新添加一个页
            document.NewPage()
            '第2页中添加文本
            document.Add(New Paragraph("This is Second Page"))
            ' 重置页面数量
            document.ResetPageCount()
            '关闭文档对象
            document.Close()
        End Sub
原创粉丝点击