1、添加依赖

需要下载,打入maven仓库,提取码:u9gf

https://pan.baidu.com/s/1Sv2esqNF2gQO1Tg10TWTSw

打入maven仓库

mvn install:install-file -Dfile=D:\Spire.Pdf.jar -DgroupId=my.Spire-Pdf -DartifactId=Spire-Pdf -Dversion=1.0 -Dpackaging=jar

<dependency><groupId>my.Spire-Pdf</groupId><artifactId>Spire-Pdf</artifactId><version>1.0</version></dependency>

2、API网址

https://www.e-iceblue.cn/spirepdfjava/add-digital-signature-to-pdf-in-java.html

3、如数字签名

import com.spire.pdf.graphics.*;
import com.spire.pdf.security.GraphicMode;
import com.spire.pdf.security.PdfCertificate;
import com.spire.pdf.security.PdfCertificationFlags;
import com.spire.pdf.security.PdfSignature;import java.awt.*;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;public class AddDigitalSignature {public static void main(String[] args) {//加载PDF文档PdfDocument doc = new PdfDocument();doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");//加载pfx证书PdfCertificate cert = new PdfCertificate("C:\\Users\\Administrator\\Desktop\\gary.pfx", "e-iceblue");//添加数字签名,设置其位置和大小PdfSignature signature = new PdfSignature(doc, doc.getPages().get(0), cert, "MySignature");Rectangle2D rect = new Rectangle2D.Float();rect.setFrame(new Point2D.Float((float) doc.getPages().get(0).getActualSize().getWidth() - 340, (float) doc.getPages().get(0).getActualSize().getHeight() - 150), new Dimension(270, 100));signature.setBounds(rect);//设置签名为图片加文本模式signature.setGraphicMode(GraphicMode.Sign_Image_And_Sign_Detail);//设置签名的内容signature.setNameLabel("签字者:");signature.setName("Gary");signature.setContactInfoLabel("联系电话:");signature.setContactInfo("02881705109");signature.setDateLabel("日期:");signature.setDate(new java.util.Date());signature.setLocationInfoLabel("地点:");signature.setLocationInfo("成都");signature.setReasonLabel("原因:");signature.setReason("我是文档所有者");signature.setDistinguishedNameLabel("DN: ");signature.setDistinguishedName(signature.getCertificate().get_IssuerName().getName());signature.setSignImageSource(PdfImage.fromFile("C:\\Users\\Administrator\\Desktop\\logo-2.png"));//设置签名的字体signature.setSignDetailsFont(new PdfTrueTypeFont(new Font("Arial Unicode MS", Font.PLAIN, 12)));//设置文档权限为禁止更改signature.setDocumentPermissions(PdfCertificationFlags.Forbid_Changes);signature.setCertificated(true);//保存文档doc.saveToFile("C:\\Users\\Administrator\\Desktop\\AddSignature.pdf");doc.close();}
}

注意:其中.pxf数字证书可以使用Adobe  PDF阅读器生成,注意它存放的位置就行,但是格式不太好看

它每一个功能都有例子,这一点很好!!!

如:

4、放两张API截图吧

java操作pdf--Spire,功能较全,免费版只能操作10页相关推荐

  1. Java实现PDF导出功能

    一.添加依赖 <dependency><groupId>com.lowagie</groupId><artifactId>itext</artif ...

  2. adobe reader java_使用Adobe Reader控件结合Java实现PDF打印功能

    1.在页面引入控件,控件依赖任何第三方js库: classid="clsid:CA8A9780-280D-11CF-A24D-444553540000"> value=&qu ...

  3. 计算机间盘的使用方法,电脑怎样分盘操作,史上最全分盘操作教程示意图

    到今天依然还是会存在一些同学不会硬盘分区的,这个问题我也是蛮惊讶的,但是不管怎么样吧,总不能让漂亮的女神自己去给自己的电脑的硬盘分区吧.所以,为了拯救你的女神可能对硬盘的各种分区需求,这里跟大家分享几 ...

  4. java操作PDF实现简单盖章功能(未签字)

    最近有一个电子签章的功能需求,网上相关的资料比较少,我查阅了相关资料,做了一个简单的盖章功能的demo 首先需要导个依赖,这里选用的是itextpdf来操作pdf <dependencies&g ...

  5. JAVA操作pdf——创建表格

    JAVA操作pdf--创建表格 一.前言 在实习的时候遇到了需要将查询到的数据构建成为PDF的情况,于是在网上查找到了相关的Java操作pdf的教程,看到大部分的文章都是使用ITextPdf操作的,于 ...

  6. 利用itext操作pdf从数据库导出大量数据--功能汇总(一)

    [原始需求] 通过SQL及JDBC模式导出各类业务数据,以PDF文件格式存放,要求该文件只能查看和打印(不能编辑和篡改),文件要有公司相关标志和水印功能. [需求分析] 1. 通过SQL及JDBC模式 ...

  7. Java使用PDFBOX操作pdf文件(一,加载和创建pdf)

    前言: 之前想学习使用Java操作pdf的时候看过了IText的文档.确实IText的文档很全,也有一个官网可以很方便的查找信息.但IText的开源协议为AGPL,使用者必须传染性的开源代码,商业使用 ...

  8. java pdf库_Java中常用的操作PDF的类库

    iText iText是一个能够快速产生PDF文件的java类库.iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的.它的类库尤其与java Servlet有很好的给合.使用 ...

  9. JAVA删除pdf空白页_【Spire.PDF教程】添加或删除 PDF 页面,调整页面顺序-word删除空白页...

    Spire.PDF是一个专业的PDF组件,能够独立地创建.编写.编辑.操作和阅读PDF文件,支持 .NET.Java.WPF和Silverlight. 操作PDF文档时,我们通常会需要添加或删除一些P ...

最新文章

  1. 关于学习Python的一点学习总结(43->类中的方法重写)
  2. 在linux和windows下自动备份数据库
  3. Python 多进程、多线程启动
  4. Catalina.stop: Connect refused解决过程
  5. 快搜浏览器_让微软丢大脸的edge浏览器终于出新版了!
  6. 三星计划在第二代GalaxyFold上采用屏下摄像头技术
  7. stm32f407网页服务器,STM32F407单片机通过USR-LTE-7S4模块和服务器进行4G通信
  8. 学习c++ 必知三大特性
  9. 精美的wordpress企业主题模板
  10. 51单片机入学第八课——8*8点阵屏
  11. “天河一号”算一小时13亿人算340年
  12. 最新版!国内IT软件外包公司汇总~
  13. 投影仪对焦应用镜头马达驱动芯片
  14. C语言实现简单卡尔曼滤波
  15. dva是什么游戏_守望先锋DVA全互动台词一览
  16. 影版《宫》曝海报 周冬雨:想与张艺谋再合作
  17. arcgis api 4.13 —— Layer详细介绍
  18. Java小白入门200例81之Java接口
  19. 基于人脸的常见表情识别(3)——模型搭建、训练与测试
  20. 30_linux笔记-文件系统

热门文章

  1. 用python编写程序、判断某一年是否是闰年_用C语言编写判断某一年是否是闰年...
  2. Kafka学习之监控
  3. mysql统计信息_mysql收集统计信息
  4. PHP:递增/递减运算符
  5. 操作系统---第二章进程管理---进程同步---应用题
  6. Android中的多媒体开发(一)——使用SoundPool来播放音效
  7. 苹果Mac big sur如何关闭开机提示音效?
  8. Unity学习笔记——坦克大战敌人AI
  9. Python扑克游戏编程---摸大点
  10. 20-Vue之Element UI-文字链接组件