Java 在PDF中添加表格
本文将介绍通过Java编程在PDF文档中添加表格的方法。添加表格时,可设置表格边框、单元格对齐方式、单元格背景色、单元格合并、插入图片、设置行高、列宽、字体、字号等。
使用工具:Free Spire.PDF for Java (免费版)
Jar文件获取及导入:
方法1:通过官网下载jar文件包。下载后,解压文件,将lib文件夹下的Spire.Pdf.jar文件导入Java程序。
方法2:通过maven仓库安装导入。
Java 代码示例
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import com.spire.pdf.grid.PdfGrid;
import java.awt.*; public class AddTable {
public static void main(String[]args){
//创建文档,添加PDF页面
PdfDocument pdf = new PdfDocument();
PdfPageBase page = pdf.getPages().add(); //创建PdfGrid对象
PdfGrid grid = new PdfGrid(); //设置单元格内边距、默认字体、字体颜色和默认背景色
grid.getStyle().setCellPadding(new PdfPaddings(3,3,3,3));
grid.getStyle().setFont(new PdfTrueTypeFont(new Font("Arial Unicode MS", Font.PLAIN,10), true));
grid.getStyle().setTextBrush(PdfBrushes.getBlack()); //创建PdfBorders对象,并设置颜色及粗细
PdfBorders borders= new PdfBorders();
borders.setAll(new PdfPen(PdfBrushes.getWhite(),1f)); //定义数据
String[] data = {"学校;Logo;院校代码;院校地址",
"四川大学;;10610;成都",
"西南交通大学;;10613;成都",
"电子科技大学;;10614;成都",
"西南石油大学;;10615;成都",
};
String[][] dataSource = new String[data.length][];
for (int i = 0; i < data.length; i++) {
dataSource[i] = data[i].split("[;]");
} //填充数据到表格
grid.setDataSource(dataSource); //在表格第2列填充图片并设置列宽
grid.getRows().get(1).getCells().get(1).getStyle().setBackgroundImage(PdfImage.fromFile("scdx.png"));
grid.getRows().get(2).getCells().get(1).getStyle().setBackgroundImage(PdfImage.fromFile("xnjtdx.png"));
grid.getRows().get(3).getCells().get(1).getStyle().setBackgroundImage(PdfImage.fromFile("dzkjdx.png"));
grid.getRows().get(4).getCells().get(1).getStyle().setBackgroundImage(PdfImage.fromFile("xnsydx.png"));
grid.getColumns().get(1).setWidth(100f); //纵向合并单元格
grid.getRows().get(1).getCells().get(3).setRowSpan(4); //设置表格
for (int i = 0; i < data.length ; i++) {
//设置每一行的高度
grid.getRows().get(i).setHeight(50f);
//设置第一列的字体
grid.getRows().get(i).getCells().get(0).getStyle().setFont(new PdfTrueTypeFont(new Font("Arial Unicode MS",Font.PLAIN,12),true)); for(int j =0;j<grid.getColumns().getCount();j++){
//设置所有单元格居中
grid.getRows().get(i).getCells().get(j).setStringFormat(new PdfStringFormat(PdfTextAlignment.Center,PdfVerticalAlignment.Middle));
//设置第一行的背景色
grid.getRows().get(0).getCells().get(j).getStyle().setBackgroundBrush(PdfBrushes.getBeige());
}
} //绘制表格到PDF
grid.draw(page,0,30); //保存文档
pdf.saveToFile("添加表格.pdf");
pdf.close();
}
}
表格添加效果:

Java 在PDF中添加表格的更多相关文章
- Java 在PDF 中添加超链接
对特定元素添加超链接后,用户可以通过点击被链接的元素来激活这些链接,通常在被链接的元素下带有下划线或者以不同的颜色显示来进行区分.按照使用对象的不同,链接又可以分为:文本超链接,图像超链接,E-mai ...
- Java 读取PDF中的表格
一.概述 本文以Java示例展示读取PDF中的表格的方法.这里导入Spire.PDF for Javah中的jar包,并使用其提供的相关及方法来实现获取表格中的文本内容.下表中整理了本次代码使用到的主 ...
- Java 在PDF中添加页面跳转按钮
在PDF 中可通过按钮来添加动作跳转到指定页面,包括跳转到文档首页.文档末页.跳转到上一页.下一页.或跳转到指定页面等.下面将通过java代码来演示如何添加具有以上几种功能的按钮. 使用工具: Fre ...
- Java 在PDF中添加工具提示|ToolTip
本文,将介绍如何通过Java后端程序代码在PDF中创建工具提示.添加工具提示后,当鼠标悬停在页面上的元素时,将显示工具提示内容. 导入jar包 本次程序中使用的是 Free Spire.PDF for ...
- C# 提取PDF中的表格
本文介绍在C#程序中(附VB.NET代码)提取PDF中的表格的方法,调用Spire.PDF for .NET提供的提取表格的类以及方法等来获取表格单元格中的文本内容:代码内容中涉及到的主要类及方法归纳 ...
- C# 在Word中添加表格的方法
表格是组织整理数据的一种重要手段,应在生活中的方方面面.在Word文档中将繁杂的文字表述内容表格化,能快速.直接地获取关键内容信息.那么,通过C#,我们也可以在Word文档中添加表格,这里将介绍两种不 ...
- C# 在PDF中添加墨迹注释Ink Annotation
PDF中的墨迹注释(Ink Annotation),表现为徒手涂鸦式的形状:该类型的注释,可任意指定形状顶点的位置及个数,通过指定的顶点,程序将连接各点绘制成平滑的曲线.下面,通过C#程序代码介绍如何 ...
- java 如何在pdf中生成表格
1.目标 在pdf中生成一个可变表头的表格,并向其中填充数据.通过泛型动态的生成表头,通过反射动态获取实体类(我这里是User)的get方法动态获得数据,从而达到动态生成表格. 每天生成一个文件夹存储 ...
- 170120、java 如何在pdf中生成表格
1.目标 在pdf中生成一个可变表头的表格,并向其中填充数据.通过泛型动态的生成表头,通过反射动态获取实体类(我这里是User)的get方法动态获得数据,从而达到动态生成表格. 每天生成一个文件夹存储 ...
随机推荐
- python学习笔记(27)-unittest单元测试-测试用例
单元测试 #单元测试 #unittest+接口 unittest python自带 pytest+jenkins+allure #接口测试的本质 就是测试类里面的函数 #单元测试的本质 测试函数 代码 ...
- tomcat端口占用异常
错误记录--更改tomcat端口号方法,Several ports (8005, 8080, 8009) 2011年01月18日 01:34:00 阅读数:202700 启动Tomcat服务器报错: ...
- linux的nohup命令的用法(后台运行程序命令)
linux的nohup命令的用法. 在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行.比如我们要运行mysql在后台: /usr/ ...
- Invert Binary Tree(easy)
1.直接把递归把左右子树翻转即可 AC代码: /** * Definition for a binary tree node. * struct TreeNode { * int val; * Tre ...
- MergeSort(归并排序)原理及C++代码实现
归并排序利用分治策略进行排序.原理如下 分解:分解待排的n个元素的序列成个具n/2个元素的两个子序列. 解决:使用归并排序递归地排序两个子序列. 合并:合并两个已排序的子序列以产生已排序的答案. 归并 ...
- Introduction to Computer Science and Programming in Python--MIT
学习总结--(Introduction to Computer Science and Programming in Python--MIT) 导论 主题 重新利用数据结构来表达知识 理解算法的复杂性 ...
- MS15-020 文件共享漏洞利用
Metasploit MS15-020漏洞利用 环境: 共享机/受害者:windows xp IP:192.168.222.1 攻击机:kali linux IP:192.168.10.1 msfco ...
- Java枚举的作用和用法
从没有枚举的时代说起 在枚举出现之前,如果想要表示一组特定的离散值,往往使用一些常量.例如: [Java] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 ...
- Java IO: FileOutputStream
原文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) FileOutputStream可以往文件里写入字节流,它是OutputStream的子类, ...
- tomcat一闪而过
JAVA_HOME should point to a JDK not a JRE |vista tomcat 有的朋友在启动Tomcat的时候会出现问题. 1例如: 手动点击startup.bat ...