前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >借助 iText 用代码在 PDF 中创建空白签名域

借助 iText 用代码在 PDF 中创建空白签名域

作者头像
LeoXu
发布于 2018-08-15 06:22:41
发布于 2018-08-15 06:22:41
2.4K10
代码可运行
举报
文章被收录于专栏:LeoXu的博客LeoXu的博客
运行总次数:0
代码可运行

首选,要获取 PdfStamper 对象:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
PdfStamper ps = new PdfStamper(reader, bos);

然后,要获取到需要创建签名域的矩形区域:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        // 创建数组签名域
        int x = 300, y = 400, width = 200, height = 200; // 坐标系远点位于页面左下角,左下角到右下角为  x 轴,左下角到左上角为 y 轴
        Rectangle areaSignatureRect = new Rectangle(// 签名域区域,由两个对角点构成的矩形区域
        		x, // 点1 x坐标
        		y, // 点1 y坐标
        		x + width, // 点2 x坐标
        		y + height // 点2 y坐标
        ); 
        int pageNo = 1; // PDF 文件的页码从 1 开始,而不是 0
        PdfFormField pdfFormField = PdfFormField.createSignature(ps.getWriter());
        pdfFormField.setFieldName("AREA_SIGNATURE"); // 签名域标识
        pdfFormField.setPage(pageNo);
        pdfFormField.setWidget(areaSignatureRect, PdfAnnotation.HIGHLIGHT_OUTLINE); // 高亮显示

中间,可以通过 PdfAppearance 对象对这块区域的外观做下调整:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        // 设置区域宽高和边框厚度,以及边框颜色,填充颜色
        PdfAppearance pdfAppearance = PdfAppearance.createAppearance(
        		ps.getWriter(), 
        		width, 
        		height
        );
        
        pdfAppearance.setColorStroke(BaseColor.LIGHT_GRAY); // 边框颜色
        pdfAppearance.setColorFill(BaseColor.YELLOW); // 填充颜色
        
        // 填充矩形区域-开始
        pdfAppearance.rectangle(
        		0, // x 轴偏移
        		0, // y 轴偏移
        		width, // 宽
        		height // 高
        );
        pdfAppearance.fillStroke();
        // 填充矩形区域-结束
        
        // 添加文字-开始
        pdfAppearance.setColorFill(BaseColor.BLACK); // 填充颜色重置为黑色,显示文字
        ColumnText.showTextAligned(
        		pdfAppearance, 
        		Element.ALIGN_CENTER, 
        		new Phrase("签名区域", new Font(bf)), 
        		width / 2, // x
        		height / 2, // y
        		0 // rotation
        );
        // 添加文字-结束

        // 将外观应用到签名域对象之上
        pdfFormField.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, pdfAppearance);

最后,将签名域对象作为标注添加到 PdfStamper 对象:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ps.addAnnotation(pdfFormField, pageNo);
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
创建空白签名域后pdf文件,如何在空白签名域添加签名呢?
创建空白签名域后pdf文件,如何在空白签名域添加签名呢?
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
BufferedImage类、Image类、Graphics类
Image是一个抽象类,BufferedImage是其实现类,是一个带缓冲区图像类,主要作用是将一幅图片加载到内存中(BufferedImage生成的图片在内存里有一个图像缓冲区,利用这个缓冲区我们可以很方便地操作这个图片),提供获得绘图对象、图像缩放、选择图像平滑度等功能,通常用来做图片大小变换、图片变灰、设置透明不透明等。
Twcat_tree
2022/11/30
1.2K0
【iText5 生成PDF】纯Java代码实现生成PDF(自定义表格、文本水印、单元格样式)
​ 工作中遇到需要生成PDF。最终选择了iText。其他也有通过html再生成。感觉不太适合就用了代码实现。 使用iText 5.5.13.1版本。纯Java代码实现 1.自定义表格合并指定行列
小帅丶
2019/07/22
8.8K0
【iText5 生成PDF】纯Java代码实现生成PDF(自定义表格、文本水印、单元格样式)
itext实现合同尾部签章部分自动添加,定位签名
使用的pom <!-- pdf处理 start--> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2.0</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <vers
老梁
2019/09/10
1.6K0
itext实现合同尾部签章部分自动添加,定位签名
EasyX图形库学习(一)
EasyX 是针对 C++ 的图形库,可以帮助 C/C++ 初学者快速上手图形和游戏编程。
走在努力路上的自己
2024/02/03
5900
EasyX图形库学习(一)
Fabric.js 自由绘制矩形(逐一分析4种操作方向带来的影响)
起始点 的 x 和 y 坐标 都小于 结束点,( 起始点x < 结束点x;起始点y < 结束点y ) :
德育处主任
2022/04/17
3.7K2
Fabric.js 自由绘制矩形(逐一分析4种操作方向带来的影响)
Qt编写自定义控件10-云台仪表盘
做过安防视频监控的同学都清楚,在视频监控系统软件上都可以看到一个云台控制区域,可以对球机进行下下左右等八个方位的运动控制,还可以进行复位,一般都是美工作图好,然后贴图的形式加入到软件中,好处是程序简单,界面美工,主要取决于美工的美图能力,缺点是对于各种分辨率的适应性稍微差点,需要不同的图片切图贴图,除非默认做好的是大图自适应看不出差别,可能大部分人所在的公司都是小公司,一般美工人员比较少甚至没有,都需要程序员一人负责,甚至一开始就要考虑到各种分辨率的应用场景以及后期可能的换肤换色等。
feiyangqingyun
2019/08/23
1.6K0
Qt编写自定义控件10-云台仪表盘
Java实现坦克大战1.0
下图说明了Java坐标系。坐标原点位于左上角,以像素为单位。在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。
timerring
2023/05/07
7730
Java实现坦克大战1.0
itext实现pdf自动定位合同签订
需求 需要实现如下效果(最终效果) 思考 需求方的要求就是实现签订合同,实现方法不限,但过程中又提出需要在签章的过程中把签订日期的文字也打上去,这就有点坑了~ 一开始的想法是想办法定位需要签名的位
老梁
2019/09/10
2.4K1
itext实现pdf自动定位合同签订
MFC绘图小实验(1)
这学期开了一门计算机图形学的课程,感觉蛮有趣的,所以想把书上的那些样例程序都实现一遍,了解基本的绘图原理和要点。 1,使用用户自定义的映射模式,设置窗口大小和视区相等的二维坐标系。视区中x轴水平向右为正,y轴垂直向上为正,原点位于屏幕客户区中心。 void CTestoneView::OnDraw(CDC* pDC) { CTestoneDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for
Zoctopus
2018/06/04
1.7K0
Matplotlib 可视化之图表坐标系统
在 Transformation Object 列中,ax是一个 Axes 实例,fig是一个 Figure 实例。
数据STUDIO
2022/04/11
1.2K0
Matplotlib 可视化之图表坐标系统
Opencv-python画图基础知识
相关函数介绍 1. Point 该数据结构表示了由其图像坐标 和 指定的2D点。可定义为: Point pt; pt.x = 10; pt.y = 8; 或者 Point pt = Point(10, 8); 2. Scalar 表示了具有4个元素的数组。次类型在OpenCV中被大量用于传递像素值。 本节中,我们将进一步用它来表示RGB颜色值(三个参数)。如果用不到第四个参数,则无需定义。 我们来看个例子,如果给出以下颜色参数表达式: Scalar( a, b, c ) 那么定义的RGB颜色值为:Red =
hbbliyong
2018/06/13
1.3K0
Itext根据模板生成pdf
public class PdfUtils { // 利用模板生成pdf public static void pdfout(Map<String,Object> o,String newPDFPath){ // 模板路径 String templatePath = "C:/Users/pc/Desktop/990696 list -1.pdf"; // 生成的新文件路径 PdfReader reader; F
故久
2019/09/29
3.2K0
Itext根据模板生成pdf
另类地图的Python和R绘制
由于最近开始使用R-ggplot2绘制一些可视化作品,也慢慢发现ggplot2绘图的方便之处,但毕竟开始于Python绘图,我们也不能落下
DataCharm
2021/02/22
9910
另类地图的Python和R绘制
Android学习第一弹:Android通过用代码画虚线椭圆边框背景来学习一下shape的用法
学习Shape的用法 非著名程序员 在Android程序开发中,我们经常会去用到Shape这个东西去定义各种各样的形状,shape可以绘制矩形环形以及椭圆,所以只需要用椭圆即可,在使用的时候将控件
非著名程序员
2018/02/01
2.3K0
Android学习第一弹:Android通过用代码画虚线椭圆边框背景来学习一下shape的用法
使用iText5来处理PDF
项目要求,通过pdf模板,把用户提交的数据保存到一个PDF文件中。其中有文字内容,也有图片。之前选了aspose.pdf,因为抠门,不能花钱买,就从网上找的的开心版,好不容易出来点模板,结果插入图片的时候,同一页只能插入一张图片,而官方的试用版是可以正常两张的,另外字段比较多,速度比较慢,几百个字段需要一分多钟,效率很低,放弃。之后尝试iText,发现要比aspose.pdf好用的多,下面就说下用法。 需要通过nuget安装iTextSharp,选第一个,版本号是5.5.12,也就是iText5版本,该版本是AGPL许可。 完整代码如下:
徐大嘴
2019/03/21
2.6K0
详解Java操作PDF:一键生成文件,插入文字、选项、签名及公章
我这里使用福昕pdf编辑器,其他pdf编辑器(如Adobe Acrobat)也可以用但是大多要钱。
程序员皮皮林
2024/11/02
2440
详解Java操作PDF:一键生成文件,插入文字、选项、签名及公章
(译)SDL编程入门(8)几何图形渲染
除了新的纹理API,SDL还有新的基元渲染调用作为其渲染API[1]的一部分。因此,如果你需要渲染一些基本的形状,而你又不想为它们创建额外的图形,SDL可以为你省力。
arcticfox
2020/09/27
1.5K0
(译)SDL编程入门(8)几何图形渲染
08: 绘图功能
画多边形需要指定一系列多边形的顶点坐标,相当于从第一个点到第二个点画直线,再从第二个点到第三个点画直线....
CodecWang
2021/12/07
7540
08: 绘图功能
[学习笔记]unity3d-UGUI
简介 Unity 图形用户界面(unity Graphical User Interface) Unity4.6版本之后引入的界面显示系统 Unity公司自己研发的一套界面显示系统 UGUI和OnGUI、NGUI的区别 uGUI的Canavas有世界坐标和屏幕坐标 uGUI的Image可以使用material UGUI通过Mask来裁剪,而NGUI通过Panel的Clip NGUI的渲染前后顺序是通过Widget的Depth,而UGUI渲染顺序根据Hierarchy的顺序,越下面渲染在顶层。 UGUI不需要
六月丶
2022/12/26
3K0
[学习笔记]unity3d-UGUI
Android GradientDrawable(shape标签定义) 静态使用和动态使用(圆角,渐变实现)
本文介绍了如何在Android中创建一个可绘制对象,该对象可以呈现复杂的几何形状、可自定义颜色和样式、支持动态调整大小和位置。同时,还介绍了如何使用GradientDrawable来设置自定义颜色和形状,以及如何使用ShapeDrawable来创建圆角、渐变等效果。同时,还介绍了如何动态创建和修改GradientDrawable的属性,以满足不同的需求。
用户1155943
2018/01/04
3.7K0
Android GradientDrawable(shape标签定义) 静态使用和动态使用(圆角,渐变实现)
推荐阅读
相关推荐
BufferedImage类、Image类、Graphics类
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验