C#/VB.NET 设置PDF跨页表格重复显示表头行

  • A+
所属分类:.NET技术
摘要

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

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

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

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

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

C#/VB.NET 设置PDF跨页表格重复显示表头行

 

C#/VB.NET 设置PDF跨页表格重复显示表头行

C#/VB.NET 设置PDF跨页表格重复显示表头行

C#/VB.NET 设置PDF跨页表格重复显示表头行

完成安装。引用结果:

C#/VB.NET 设置PDF跨页表格重复显示表头行

 

方法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:UsersAdministratorDocumentsVisual Studio 2017ProjectsDrawTable_PDFRepeatTableHeaderRowbinDebugResult.pdf

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

 

跨页表头效果:

C#/VB.NET 设置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

 

 

—End—