VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > C#教程 >
  • C#/VB.NET 设置PDF跨页表格重复显示表头行

在创建表格时,如果表格内容出现跨页显示的时候,默认情况下该表格的表头不会在下一页显示,在阅读体验上不是很好。下面分享一个方法如何在表格跨页时显示表格的表头内容,在C#中只需要简单使用方法grid.RepeatHeader = true;即可。具体参考如下方法步骤。另附VB.NET代码,有需可供参考。

1.在VS程序中添加引用Spire.PDF.dll

方法1:通过Nuget搜索下载安装。

在“解决方案资源管理器”中,鼠标右键点击“添加引用”—“ 管理NuGet包”

 

完成安装。引用结果:

 

方法2:下载Free Spire.PDF for .NET包到本地。解压。在VS中的“解决方案资源管理器”中,鼠标右键点击“添加引用”-将解压包Bin文件夹下的dll添加引用至vs。

 

C#

复制代码
using Spire.Pdf;
using Spire.Pdf.Graphics;
using Spire.Pdf.Grid;
using System.Drawing;

namespace RepeatTableHeaderRow
{
    class Program
    {
        static void Main(string[] args)
        {
            //新建一个PDF文档
            PdfDocument pdf = new PdfDocument();

            //添加一页
            PdfPageBase page = pdf.Pages.Add();

            //创建PdfGrid类的对象
            PdfGrid grid = new PdfGrid();

            //设置单元格填充
            grid.Style.CellPadding = new PdfPaddings(1, 1, 1, 1);

            //添加表格列数
            grid.Columns.Add(3);

            //添加表头行及表格数据
            PdfGridRow[] pdfGridRows = grid.Headers.Add(1);            
            for (int i = 0; i < pdfGridRows.Length; i++)
            {
                pdfGridRows[i].Style.Font = new PdfTrueTypeFont(new Font("Arial", 11f, FontStyle.Regular), true);//指定字体
                pdfGridRows[i].Cells[0].Value = "NAME";
                pdfGridRows[i].Cells[1].Value = "SUBJECT";
                pdfGridRows[i].Cells[2].Value = "SCORES";
                pdfGridRows[i].Style.TextBrush = PdfBrushes.Red;
                /*pdfGridRows[i].Style.Font = new PdfCjkStandardFont(PdfCjkFontFamily.HanyangSystemsGothicMedium,12f,PdfFontStyle.Regular);//绘制中日韩字体的方法
                pdfGridRows[i].Cells[0].Value = "이 름";
                pdfGridRows[i].Cells[1].Value = "科 目";
                pdfGridRows[i].Cells[2].Value = "ほしとり";
                pdfGridRows[i].Style.TextBrush = PdfBrushes.Blue;
                */

            }

            //设置重复表头(表格跨页时)
            grid.RepeatHeader = true;

            //添加数据到表格
            for (int i = 0; i < 60; i++)
            {
                PdfGridRow row = grid.Rows.Add();               
                for (int j = 0; j < grid.Columns.Count; j++)
                {
                    row.Cells[j].Value = "(Row " + i + ", column " + j + ")";
                }
            }

            //在PDF页面绘制表格
            grid.Draw(page, new PointF(0, 20));          

            //保存文档
            pdf.SaveToFile("Result.pdf");
            System.Diagnostics.Process.Start("Result.pdf");
        }
    }
}
复制代码

执行程序后,在VS的程序项目文件夹下可查看生成的PDF文档,如

C:\Users\Administrator\Documents\Visual Studio 2017\Projects\DrawTable_PDF\RepeatTableHeaderRow\bin\Debug\Result.pdf

文件路径也可以定义为其他路径。

 

跨页表头效果:

 

VB.NET代码

复制代码
Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports Spire.Pdf.Grid
Imports System.Drawing

Namespace RepeatTableHeaderRow
    Class Program
        Private Shared Sub Main(args As String())
            '新建一个PDF文档
            Dim pdf As New PdfDocument()

            '添加一页
            Dim page As PdfPageBase = pdf.Pages.Add()

            '创建PdfGrid类的对象
            Dim grid As New PdfGrid()

            '设置单元格填充
            grid.Style.CellPadding = New PdfPaddings(1, 1, 1, 1)

            '添加表格列数
            grid.Columns.Add(3)

            '添加表头行及表格数据
            Dim pdfGridRows As PdfGridRow() = grid.Headers.Add(1)
            For i As Integer = 0 To pdfGridRows.Length - 1
                pdfGridRows(i).Style.Font = New PdfTrueTypeFont(New Font("Arial", 11F, FontStyle.Regular), True)
                '指定字体
                pdfGridRows(i).Cells(0).Value = "NAME"
                pdfGridRows(i).Cells(1).Value = "SUBJECT"
                pdfGridRows(i).Cells(2).Value = "SCORES"
                    'pdfGridRows[i].Style.Font = new PdfCjkStandardFont(PdfCjkFontFamily.HanyangSystemsGothicMedium,12f,PdfFontStyle.Regular);'绘制中日韩字体的方法
'                pdfGridRows[i].Cells[0].Value = "이 름";
'                pdfGridRows[i].Cells[1].Value = "科 目";
'                pdfGridRows[i].Cells[2].Value = "ほしとり";
'                pdfGridRows[i].Style.TextBrush = PdfBrushes.Blue; 

                pdfGridRows(i).Style.TextBrush = PdfBrushes.Red
            Next

            '设置重复表头(表格跨页时)
            grid.RepeatHeader = True

            '添加数据到表格
            For i As Integer = 0 To 59
                Dim row As PdfGridRow = grid.Rows.Add()
                For j As Integer = 0 To grid.Columns.Count - 1
                    row.Cells(j).Value = "(Row " + i + ", column " + j + ")"
                Next
            Next

            '在PDF页面绘制表格
            grid.Draw(page, New PointF(0, 20))

            '保存文档
            pdf.SaveToFile("Result.pdf")
            System.Diagnostics.Process.Start("Result.pdf")
        End Sub
    End Class
End Namespace
复制代码

 

 

出处:https://www.cnblogs.com/Yesi/p/15001773.html


相关教程