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
文件路径也可以定义为其他路径。
跨页表头效果:

—End—
C#/VB.NET 设置PDF跨页表格重复显示表头行的更多相关文章
- Java 设置PDF跨页表格重复显示表头行
在创建表格时,如果表格内容出现跨页显示的时候,默认情况下该表格的表头不会在下一页显示,在阅读体验上不是很好.下面分享一个方法如何在表格跨页是显示表格的表头内容,这里只需要简单使用方法 grid.set ...
- VB.NET设置控件和窗体的显示级别
前言:在用VB.NET开发射频检测系统ADS时,当激活已存在的目标MDI子窗体时,被其他子窗体遮住了,导致目标MDI子窗体不能显示. 这个问题怎么解决呢?网上看到一篇帖子VB.NET设置控件和窗体的显 ...
- offie2010设置前两页和后面显示不同页码的方法
1.在需要设置的第二页文档后面点击一下,让光标进入,再菜单上找到"页面布局"—“分栏符”—“下一页”(如图) 2.插入—页码—页面底端(如图) 3.点击页码附近的—“链接到前一页面 ...
- C# / VB.NET合并PDF指定页
在前面的文章中,我们已经知道如何合并.拆分多个PDF文件,在这篇文章中的合并.拆分PDF文档主要是以方便文档管理的目的来操作文档,在文档查阅.管理及存储上很方便实用.但是我们如果想要合并多个文档中的部 ...
- element ui表格常用功能如:导出 新增 删除 多选 跨页多选 固定表头 多级表头 合并行列 等常见需求
<template> <div class="table-cooperte"> <el-table :data="tableData&quo ...
- [Web Pdf] flying-saucer + iText + Freemarker生成pdf 跨页问题
转载于: https://blog.csdn.net/qq_31980421/article/details/79662988 flying-saucer + iText + Freemarker实 ...
- 设置C#启动进程但不显示命令行窗口
设置一下Process类型相关的配置属性即可,直接上代码. //记得引入命名空间 //using System.Diagnostics; //获得当前环境的基路径 string basePath = ...
- C#/VB.NET 合并PDF页面
本文以C#及vb.net代码为例介绍如何来实现合并PDF页面内容.本文中的合并并非将两个文档简单合并为一个文档,而是将多个页面内容合并到一个页面,目的是减少页面上的空白区域,使页面布局更为紧凑.合理. ...
- word2007 每页显示表头
word2007 每页显示表头 在Word 2007文档中,如果一张表格需要在多页中跨页显示,则设置标题行重复显示很有必要,因为这样会在每一页都明确显示表格中的每一列所代表的内容.在Word 2007 ...
随机推荐
- OpenStack常见面试题
现在,大多数公司都试图将它们的 IT 基础设施和电信设施迁移到私有云, 如 OpenStack.如果你打算面试 OpenStack 管理员这个岗位,那么下面列出的这些面试问题可能会帮助你通过面试. Q ...
- Java8 Period 类与 Duration 类 用法详解
引言 Java 8 中引入了两个与日期相关的新类: Period :基于日期值 Duration:基于时间值 它们最大的作用就不需要你自己复杂的计算关于两个年月日之间的相差的时间或日期啦. Perio ...
- Java 关键字详解
Java 关键字是 Java 语言中被赋予特殊意义的一些单词(每个关键字都代表着不同场景下的不同含义),不可以把它当作标识符来使用(不能用作变量名.方法名.类名.包名和参数名等).Java 中的关键字 ...
- windows server 2008 rdp停止服务 - windows server 2012 R2 远程桌面授权模式尚未配置,远程桌面服务将在120天内停止工作
目录 问题现象 增长rdp服务可使用时长的配置 Via & reference: 问题现象 windows server 2008作为测试环境跳板机,但是没有配置官方的rdp授权,限制用户登录 ...
- (数据科学学习手札123)Python+Dash快速web应用开发——部署发布篇
1 简介 这是我的系列教程Python+Dash快速web应用开发的第二十期,在上一期中我介绍了利用内网穿透的方式,将任何可以联网的电脑作为"服务器"向外临时发布你的Dash应用. ...
- 重新整理 .net core 实践篇————配置系统之盟约[五]
前言 在asp .net core 中我们会看到一个appsettings.json 文件,它就是我们在服务中的各种配置,是至关重要的一部门. 不管是官方自带的服务,还是我们自己编写的服务都是用它来实 ...
- GO语言练习---对切片进行排序
对整型切片进行选择排序 package main import "fmt" /*对切片排序*/ func SortSlice(slice []int) { for i := 0; ...
- 深度学习与TensorFlow
深度学习与TensorFlow DNN(深度神经网络算法)现在是AI社区的流行词.最近,DNN 在许多数据科学竞赛/Kaggle 竞赛中获得了多次冠军. 自从 1962 年 Rosenblat 提出感 ...
- 计算机网络-vlan划分
1.VLAN的划分 (1)基于端口的VLAN: 交换机A上的1,2端口和交换机B上的3,4端口构成一个VLAN. 交换机A上的3,4端口和交换机B上的1,2端口构成一个VLAN. (2)基于MAC地址 ...
- Java面试题:==运算符与equals方法的区别
据说这个面试题目,80%的程序员都会理直气壮的回答错误!! 一: ==运算符 如果比较的是基本数据类型,则直接比较数值是否相等,返回值为"true or false" 如果比较的是 ...