使用iText和证书对pdf签名
- 格式:docx
- 大小:12.51 KB
- 文档页数:2
Acrobat电子签名与表单填写流程在现代数字化时代,电子签名和表单填写成为了重要的工作流程。
Adobe公司的Acrobat软件提供了高效、安全的电子签名和表单填写功能。
本文将介绍Acrobat电子签名与表单填写的流程,帮助读者快速上手并提高工作效率。
一、Acrobat电子签名流程1. 创建签名首先,打开Acrobat软件并进入要签名的PDF文档。
在右侧工具栏中选择“工具”并展开“签名和证书”,点击“更多工具”下的“创建签名”。
2. 选择签名方法Acrobat提供多种签名方法,包括手写、图片、扫描等。
选择适合的签名方式后,点击“继续”。
3. 定位签名位置在PDF文档中选择签名要放置的位置,点击鼠标左键即可确认签名位置。
4. 保存签名Acrobat将自动保存并命名签名文件,用户也可以自定义签名名称。
保存后,签名将出现在文档的指定位置。
5. 添加其他签名如果需要在同一文档中添加多个签名,可重复以上步骤。
Acrobat 会自动创建签名的副本,并根据用户需求进行位置调整。
二、Acrobat表单填写流程1. 表单打开与编辑首先,打开需要填写的PDF表单。
在右侧工具栏中选择“工具”并展开“表单”,点击“编辑”工具。
2. 填写表单内容通过选中表单中的文本框,直接在文本框内输入相应内容。
3. 选择选项表单中可能存在选择题、单选框或复选框等选项。
通过点击相应选项来选择答案或标记多选项。
4. 日期和数字输入如果表单需要填写日期或数字,Acrobat提供了专门的日期选择器和数字输入工具,可直接选择或输入相应数值。
5. 保存与提交填写完表单后,点击保存按钮,选择保存的位置并命名文件。
如果表单需要提交,可点击“提交”按钮选择相应提交方式,如电子邮件、网络表单等。
三、Acrobat电子签名与表单填写的注意事项1. 安全性Acrobat的电子签名功能采用了加密技术,保证签名的安全性和完整性。
用户在签名时需提供相应的身份认证,确保签名的有效性。
pdf签名的电脑版使用方法嘿,朋友们!今天咱就来唠唠 pdf 签名的电脑版使用方法,这可真是个超实用的技能哟!想象一下,你有一份重要的 pdf 文件,需要加上你的专属签名,就像给它盖上一个独一无二的印章一样。
那怎么做到呢?别着急,听我慢慢道来。
首先,你得有个能处理 pdf 文件的软件,就像战士上战场得有把趁手的兵器一样。
很多软件都有这个功能,咱就以常见的某款软件为例哈。
打开软件后,找到那个“签名”的按钮,就像找到了打开宝库的钥匙。
然后呢,你可以选择创建自己的签名,这时候就可以大显身手啦!可以用鼠标手写一个签名,哎呀,就跟在纸上写字似的,不过可得写好看点哦,这可是代表你的脸面呢!或者你有提前准备好的签名图片,直接导入进去,那也很方便呀。
等你创建好签名后,就可以把它拖到 pdf 文件上你想放的位置啦,就像把一个宝贝放到它该在的地方一样。
这时候,你看看,文件上是不是有了你的专属印记啦!是不是感觉特别有成就感呢?你说这简单不简单?可别小瞧了这小小的签名,它有时候能起到大作用呢!比如说在一些合同、文件上,有了你的签名,就代表着你认可、同意了呀。
而且哦,电脑版的好处就是操作起来方便快捷呀,不用像在纸上那样还得找笔找纸的。
你可以随时随地打开电脑就来签名,多省事呀!再给大家提个醒哈,签名的时候可得认真点,别马马虎虎的,这可是很重要的事情呢!要是签错了地方或者签得不好看,那可就有点尴尬啦。
怎么样,是不是觉得 pdf 签名的电脑版使用方法挺简单的呀?学会了这个技能,以后处理文件就更得心应手啦!大家赶紧去试试吧,让自己的文件都带上你的独特印记!别再犹豫啦,行动起来吧!。
itext使用方法iText是一个开源的Java库,用于创建和处理PDF文档。
以下是使用iText的常见方法:1. 创建一个文档对象:```javaDocument document = new Document();```2. 创建一个PdfWriter对象来将文档写入到文件或输出流:```javaPdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("output.pdf"));```3. 打开文档:```javadocument.open();```4. 向文档中添加内容:- 添加文本:```javaParagraph paragraph = new Paragraph("Hello, iText!");document.add(paragraph);```- 添加表格:```javaPdfPTable table = new PdfPTable(3); // 创建一个三列的表格 table.addCell("Cell 1");table.addCell("Cell 2");table.addCell("Cell 3");document.add(table);```- 添加图片:```javaImage image = Image.getInstance("image.jpg");document.add(image);```5. 关闭文档:```javadocument.close();```这些是iText的基本用法,你可以根据需要进一步探索iText 的更高级特性和功能。
在PDF文件中添加签名的方法
工作中,时常会需要将纸质文件扫描成PDF文件。
当我们忘记在纸质文件上签名而文件已经扫描时,我们该如何直接在PDF文件中添加签名呢?今天,小编就给大家带来在PDF文件中添加签名的方法。
1、首先我们需要通过PDF编辑器打开我们需要添加签名的PDF 文件,这里我们使用编辑器是比较常见的,其他编辑器的操作步骤相差无几。
2、首先点击文档按钮,在弹出的菜单中找到签名与缩写,这就是我们需要功能,点开,如果之前预设好了签名就会显示在弹出的菜单里,因为我们之前没有预设,所以我们点击管理进行添加。
3、在弹出的管理签名和缩写菜单中,点击添加,这时候有两个选项可供选择,一个是从文件导入,另一个是绘制签名,这里我们先点击从文件导入。
4、点开从文件导入后,选择我们之前所准备的签名文件并打开,按照步骤保存好后依照第二步的流程对文件进行添加签名。
5、回到第三步,我们也可以选择点击绘制签名,点击后会弹出一个绘制框,我们可以在绘制框里进行绘制签名。
6、绘制并保存好后,按照和第四步一样的流程对签名进行添加。
以上就是小编给大家带来的两种给PDF文件添加签名的方法了,有需要的小伙伴们可以按照上述步骤进行尝试练习。
工具下载网站:https:///。
怎么弄电子签名在数字化时代,电子签名已成为日常工作生活中不可或缺的一部分。
它能够帮助我们简化文件签署过程,提高工作效率,同时也更加环保。
那么,你知道怎么弄电子签名吗?在本文中,我们将向你介绍几种常用的电子签名方法。
1. 电子签名是什么电子签名是一种以数字或电子形式表示同意、认可或批准文档的方式。
它将传统纸质签名转化为电子形式,以便在数字环境下使用。
电子签名通常使用加密技术,确保文件的完整性和可追溯性。
2. 使用PDF编辑器创建电子签名PDF编辑器是创建电子签名的常用工具之一。
以下是使用Adobe Acrobat Reader DC创建电子签名的步骤:- 打开PDF文档,点击“工具”菜单中的“签名”选项。
- 选择“签名”工具,然后选择“创建签名”。
- 在弹出的对话框中,选择“使用相机”或“从文件中选择图片”两种创建签名的方式之一。
- 如果选择“使用相机”,可以通过摄像头拍摄签名,然后点击“采样签名”保存。
- 如果选择“从文件中选择图片”,可以从电脑中选择已有的签名图片,然后点击“导入”完成创建。
- 创建签名后,将鼠标放在文档的签名位置,点击鼠标左键即可插入电子签名。
3. 使用电子签名软件除了PDF编辑器外,还有许多专门用于创建电子签名的软件可供选择。
以下是几种常见的电子签名软件:- DocuSign:一款功能强大的电子签名平台,可帮助个人和企业创建和管理电子签名。
用户可以在任何设备上创建和签署文件。
- HelloSign:提供简洁明了的界面,用户可以通过电子邮件发送和签署文件。
它还支持团队协作和集成到其他应用程序。
- Adobe Sign:Adobe的电子签名解决方案,支持无纸化流程,让签署合同和文件变得更加便捷和高效。
- PandaDoc:提供全面的合同管理解决方案,包括电子签名、文件跟踪和自动化流程等功能。
4. 电子签名的法律效力在许多国家和地区,电子签名已经被法律认可,并具有与传统纸质签名相同的法律效力。
如何在PDF文件中添加签名
工作中我们使用PDF文件中时候,会遇到一些文件需要签名,比如:合同文件啊等等。
那么如何在PDF文件中添加签名呢?
步骤如下:
1、打开百度,关键词搜索迅捷PDF编辑器点击打开,找到下载地址点击下载,下载完成后安装到电脑。
安装完毕后,右击软件直接打开。
2、点击打开软件后,将需要添加签名的PDF文件添加到编辑器程序界面进行接下来的操作。
3、添加PDF文件后,点击文档,选择下方的签名与缩写,再点击右边的管理。
4、点击管理选项后,会弹出一个窗口,点击新增按钮,选择从文件
中导入,导入提前准备好的签名,或者可以选择绘制签名,进行签名绘制操作。
5、在绘制签名页面中绘制自己想要添加的签名,绘制完成后点击确认。
6、点击确认后,在签名名称一栏给自己设计的签名编辑一个名字,
点击确认保存下来。
7、保存签名以后,再次点击文档,选择下方的签名与缩写,把右方保存好的签名拖拉到PDF文件中你想添加签名的位置。
8、最后点击文档选项打开,选择保存或另存为对文件进行保存即可。
以上就是我对如何在PDF文件中添加签名的操作过程,希望可以给您带来帮助!
[文档可能无法思考全面,请浏览后下载,另外祝您生活愉快,工作顺利,万事如意!]。
上班族的小妙招:怎么弄pdf签名?编辑器来助力
除了在纸质文件上签名,很多时候,办公室的小伙伴们也需要在电子版的文件上签名。
平时,大家习惯使用pdf格式的文件来进行发送、查阅的操作,所以学会、掌握在pdf文件上签名是很有必要的一件事情。
不过,我们都知道pdf格式的文件比较难编辑,该怎么在它上面签名呢?
其实,我们不能固执地认为pdf文件难被编辑,究其原因是没有找对工具。
一般情况下,我经常使用迅捷PDF编辑器来操作,这款软件可以轻松地在pdf文件上签名。
下面,我给大家带来一个上班族都知道的小妙招,一起来看看pdf签名的方法步骤。
pdf签名的方法步骤
启动pc版软件后,我们进入到它的页面,并把要签名的pdf文件给添加进来。
之后,我们可以在中间看到文件内容,继续点击【文档】-【数字签名-签名文档】这个按钮。
点击后,使用鼠标在页面中选好签名位置,之后进入下一步。
来到【签名文档】的窗口后,小伙伴们可以选择使用系统中保存的证书或者文件中的证书,此外还可以创建、查看证书。
接着,往窗口下面看去,继续设置签名的详细信息和外观样式:
签名原因、位置以及联系信息等。
退出窗口后,大家就可以在页面的预设位置中看到签名了,整体很清晰。
在页面的左边,还显示有签名面板,大家可以对签名进行编辑、验证、清除等操作哦。
活到老、学到老,看完了以上的分享内容,小伙伴们知道怎么在pdf格式的文件里面签名了吗?除了这个操作,还想学其他pdf文件编辑技巧的话,大家可以在实际的操作中慢慢摸索
哦。
如何⽤Java对PDF⽂件进⾏电⼦签章⼀、概述⼆、技术选型三、⽣成⼀个图⽚签章四、如何按模板⽣成PDF⽂件五、如何⽣成PKSC12证书六、如何⽣成⼀个⾼清晰的签章七、如何进⾏多次PDF签名⼋、总结⼀、概述印章是我国特有的历史⽂化产物,古代主要⽤作⾝份凭证和⾏驶职权的⼯具。
它的起源是由于社会⽣活的实际需要。
早在商周时代,印章就已经产⽣。
如今的印章已成为⼀种独特的,融实⽤性和艺术性为⼀体的艺术瑰宝。
传统的印章容易被坏⼈、⼩⼈私刻;从⽽新闻鲜有报道某某私刻公章,侵吞国家财产。
随着计算机技术、加密技术及图像处理技术的发展,出现了电⼦签章。
电⼦签章是电⼦签名的⼀种表现形式,利⽤图像处理技术、数字加密技术将电⼦签名操作转化为与纸质⽂件盖章操作相同的可视效果,同时利⽤电⼦签名技术保障电⼦信息的真实性和完整性以及签名⼈的不可否认性。
电⼦签章与数字证书⼀样是⾝份验证的⼀种⼿段,泛指所有以电⼦形式存在,依附在电⼦⽂件并与其逻辑关联,可⽤以辨识电⼦⽂件签署者⾝份,保证⽂件的完整性,并表⽰签署者同意电⼦⽂件所陈述事实的内容。
⼀般来说对电⼦签章的认定都是从技术⾓度⽽⾔的。
主要是指通过特定的技术⽅案来鉴别当事⼈的⾝份及确保电⼦资料内容不被篡改的安全保障措施。
电⼦签章常于发送安全电⼦邮件、访问安全站点、⽹上招标投标、⽹上签约、安全⽹上公⽂传送、公司合同、电⼦处⽅笺等。
电⼦签章是⼀个很复杂的问题,⼤到有相关的电⼦签章系统;今天分享⼀下如何把电⼦签章应⽤到电⼦处⽅笺的PDF⽂件⾥。
⼆、技术选型⽬前主流处理PDF⽂件两个jar包分别是:1. 开源组织Apache的PDFBox,官⽹2. ⼤名⿍⿍adobe公司的iText,官⽹,其中iText⼜分为iText5和iText7如何在PDFBox、iText5和iText7选出合适⾃⼰项⽬的技术呢?对⽐PDFBox、iText5和iText7这三者:1. PDFBox的功能相对较弱,iText5和iText7的功能⾮常强悍;2. iText5的资料⽹上相对较多,如果出现问题容易找到解决⽅案;PDFBox和iText7的⽹上资料相对较少,如果出现问题不易找到相关解决⽅案;3. 通过阅读PDFBox代码⽬前PDFBox还没提供⾃定义签章的相关接⼝;iText5和iText7提供了处理⾃定义签章的相关实现;4. PDFBox只能实现把签章图⽚加签到PDF⽂件;iText5和iText7除了可以把签章图⽚加签到PDF⽂件,还可以实现直接对签章进⾏绘制,把⽂件绘制到签章上。
iText生成PDF全攻略首先还是看看文档。
看完了,你把我写的例子跑一遍你就会了。
PDF创建文档//创建一个文档对象,并设置他的初始化大小Rectangle pSize=new Rectangle(144,90);//文档的背景色pSize.setBackgroundColor(Color.blue);//常用页面大小 PageSize.A4;Document doc=new Document(pSize);try {//定义输出位置并把文档对象装入输出对象中PdfWriter.getInstance(doc, new FileOutputStream("c:/hello.pdf"));//打开文档对象doc.open();// 加入文字“Hello World”doc.add(new Paragraph("HelloWorld"));// 关闭文档对象,释放资源doc.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (DocumentException e) {e.printStackTrace();}设置字体亚洲国家的字体你可以从/downloads/iT extAsian.jar下载这个包。
然后把它直接放到你的ClassPath中就可以了BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);表格//定义一个表格Table table = new Table(2);//设置表格边框table.setBorderWidth(1);Cell cell = new Cell("Matrix III");cell.setHeader(true);//分列cell.setColspan(2);cell.setBackgroundColor(Color.blue);//分行Cell.setRowspan(2);table.addCell(cell);创建新页// 创建第2的页面document.newPage();document.add(new Paragraph("Hello Earth"));document.resetHeader();// 创建第3的页面document.newPage();document.add(new Paragraph("Hello Sun"));document.add(new Paragraph("Remark: the header has vanished!"));document.resetPageCount();设置布局PdfWriter writerA = PdfWriter.getInstance(document,new FileOutputStream("d:\\Chap0108a.pdf"));// 设置布局writerA.setViewerPreferences(PdfWriter.PageLayoutTwoColu mnLeft);PdfWriter writerB = PdfWriter.getInstance(document,new FileOutputStream("d:\\Chap0108b.pdf"));// 设置布局writerB.setViewerPreferences(PdfWriter.HideMenubar| PdfWriter.HideToolbar);PdfWriter writerC = PdfWriter.getInstance(document,new FileOutputStream("d:\\Chap0108c.pdf"));// 设置布局writerC.setViewerPreferences(PdfWriter.PageLayoutTwoColu mnLeft| PdfWriter.PageModeFullScreen| PdfWriter.NonFullScreenPageModeUseThumbs);加密document = new Document(PageSize.A4, 50, 50, 50, 50);PdfWriter writer = PdfWriter.getInstance(document,new FileOutputStream("d:\\Chap0109.pdf"));// setEncryption方法中可以设置如下内容(这样打开pdf时需要输入口令)// PdfWriter.STRENGTH128BITS, "userpass", "ownerpass",// PdfWriter.AllowCopy | PdfWriter.AllowPrintingwriter.setEncryption(PdfWriter.STRENGTH40BITS, "", "",PdfWriter.AllowCopy);)中看到了专门制作PDF文件的控件的介绍,暗喜之余,立马下载试验,果然非常轻松地制作出了想要的PDF文件,因为网站为英文,内容又多,读起来非常费力,在解决了自己的问题后,看到许多网友还在为PDF文件制作而郁闷,遂决定将该内容翻译为中文,由于本人英语水平一般,许多地方又晦涩难懂,故翻译质量不是很满意,敬请斧正,但大部分能看懂。
Itext基础知识和PDF解析操作⼀、Itext简介1、API地址:javadoc/index.html如 D:/MyJAR/原JAR包/PDF/itext-5.5.3/itextpdf-5.5.3-javadoc/index.html2、功能:a Free Java-PDF3、中⽂⽀持:iTextAsian.jar,现在⾼版本Itext不⽀持语⾔包。
4、使⽤的版本:iTextpdf-5.0.0.jar, iTextAsian-2.0.jar⼆、Itext API(⼀)PDF⽂档⽣成的5步/*** 5步⽣成⼀个PDF*/public void createPdf() throws Exception {// 1-创建⽂本对象 DocumentDocument document = new Document(PageSize.A4, 500, 150, 50, 50);// 2-初始化 pdf输出对象 PdfWriterPdfWriter.getInstance(document, out);// 3-打开 Documentdocument.open();// 4-往 Document 添加内容document.add(new Paragraph("Hello! PDF!!!"));// 5-关闭 Documentdocument.close();}</span>View Code(⼆)⽂档对象:Document、Rectangle、PageSize1、 Document — PDF对象1)构造⽅法:①、Document(Rectangle pageSize, float marginLeft, float marginRight, float marginTop,float marginBottom):分别指pdf页⾯⼤⼩和内容距离⽂档边的距离。
②、默认 Document()为:A4,36,36,36,362)属性:①、基本属性:版本(PdfVersionImp)、标题(Title)、作者(Author)、主题(Subject)、关键字(Keywords)、创建者(Creator)等等②、其他属性:页⾯空⽩(Margins和marginLeft各个⽅位)3)⽅法:①、 add()-添加内容,newPage()-下⼀页, addDocListener-监听器②、getPageNumber()-第⼏页,getPageSize-页⾯⼤⼩,top|left|right|bottom-页⾯预定义位置,置页眉页脚或者页码时有⽤,内部调⽤Rectangle的属性setJavaScript_onLoad(添加js)等等// 2-2 横向打印document = new Document(PageSize.A4.rotate());// 横向打印document = new Document(tRectangle.rotate());// 横向打印try {// 解析器PdfWriter writer= PdfWriter.getInstance(document, new FileOutputStream("pdf/pdfText.pdf"));// 3-为pdf添加属性信息document.addAuthor("作者");document.addTitle("标题");document.addSubject("主题");document.addKeywords("关键字");//页边空⽩document.setMargins(10, 20, 30, 40);document.open();// 4-PDF添加内容document.add(new Paragraph("Hello world"));// 5-添加Pagedocument.newPage();// writer.setPageEmpty(false);//显⽰空内容的页writer.setPageEmpty(true);//不会显⽰空内容的页document.newPage();document.add(new Paragraph("New page"));logger.debug("PDF创建结束....");View Code2、 Rectangle— 页⾯对象1)构造⽅法:Rectangle(final float llx, final float lly, final float urx, final float ury)Rectangle(PageSize.A4) -PageSize 封装常⽤的 Rectangle2)属性①、NO_BORDER-⽆边框(单元格),left|top|right|bottom3)⽅法①、rotate()-横向打印②、setBackgroundColor()-背景⾊,setBorder()-边框,setBorderColor()-边框颜⾊// 1-创建⼀个pdf⽂档,documentDocument document = null;document = new Document();// 默认PageSize.A4, 36, 36, 36, 36document = new Document(PageSize.A4);// 等效于上⾯的document = new Document(PageSize.A4, 50, 50, 50, 50);// PageSize封装了⼤量常⽤的Rectangle数据// 2-Rectangle(pdf页⾯)创建Document// ⼀般是四个参数表⽰:左下⾓的坐标和右上⾓的坐标Rectangle tRectangle = null;tRectangle = PageSize.A4;// PageSize封装了⼤量常⽤的Rectangle数据tRectangle = new Rectangle(800, 600);// 长宽tRectangle = new Rectangle(0, 0, 800, 600);// 等于上⾯// 2-1 其他页⾯属性:不能和PageSize封装的静态⼀起使⽤tRectangle.setBackgroundColor(BaseColor.BLACK);// 背景⾊tRectangle.setBorder(1220);// 边框tRectangle.setBorderColor(BaseColor.BLUE);tRectangle.setBorderWidth(244.2f);document = new Document(tRectangle);</span>View Code3、综合案例代码:<span style="font-family:SimSun;"> /*** 页⾯⼤⼩,页⾯背景⾊,页边空⽩,Title,Author,Subject,Keywords** @throws DocumentException*/public void myPDF() throws DocumentException {// 1- 页⾯的属性Rectangle tRectangle = new Rectangle(PageSize.A4); // 页⾯⼤⼩// tRectangle = new Rectangle(0, 0, 800, 600);tRectangle.setBackgroundColor(BaseColor.ORANGE); // 页⾯背景⾊tRectangle.setBorder(1220);// 边框tRectangle.setBorderColor(BaseColor.BLUE);// 边框颜⾊tRectangle.setBorderWidth(244.2f);// 边框宽度Document doc = new Document(tRectangle);// 定义⽂档doc = new Document(tRectangle.rotate());// 横向打印PdfWriter writer = PdfWriter.getInstance(doc, out);// 书写器// PDF版本(默认1.4)writer.setPdfVersion(PdfWriter.PDF_VERSION_1_2);// 2-PDF⽂档属性doc.addTitle("Title@sample");// 标题doc.addAuthor("Author@rensanning");// 作者doc.addSubject("Subject@iText sample");// 主题doc.addKeywords("Keywords@iText");// 关键字doc.addCreator("Creator@iText");// 谁创建的// 3-综合属性:doc.setMargins(10, 20, 30, 40);// 页边空⽩doc.open();// 打开⽂档doc.add(new Paragraph("Hello World"));// 添加内容// 4-添加下⼀页doc.newPage();writer.setPageEmpty(true);// fasle-显⽰空内容的页;true-不会显⽰doc.newPage();doc.add(new Paragraph("New page"));doc.close();}</span>View Code(三)内容对象:1、中⽂⽀持:1)BaseFont-确认⽀持中⽂2)Font-字体的设置,如颜⾊,字体,⼤⼩等3)固定⽤法如下:<span style="font-family:SimSun;"> /*** ⽀持中⽂** @return*/public Font getChineseFont() {BaseFont bfChinese;Font fontChinese = null;try {bfChinese = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// fontChinese = new Font(bfChinese, 12, Font.NORMAL);fontChinese = new Font(bfChinese, 12, Font.NORMAL, BaseColor.BLUE);} catch (DocumentException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return fontChinese;}}</span>View Code2、Element接⼝1)内容对象基本都实现这个接⼝。
使⽤itext⽣成简单pdf⽂件截⽌2021年7⽉,itext的最新版本是itext7,本⽂是基于itext5编写(itext的⼤版本号是4-5-7,没有6)itext5已于2020年9⽉停⽌维护相关依赖:<!-- https:///artifact/com.itextpdf/itextpdf --><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.2</version></dependency><!-- https:///artifact/com.itextpdf/itext-asian --><dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency>基本步骤⽤itext⽣成pdf⼤体分为5个步骤:os = response.getOutputStream();// 1.建⽴Document对象的实例Document doc = new Document();// 2.建⽴⼀个书写器(Writer)与document对象关联,通过书写器可以将⽂件写到输出流中PdfWriter.getInstance(doc, os);// 3.打开⽂档doc.open();// 4.向⽂档中添加内容,这部分之后会详细说明doc.add(new Paragraph("Hello World"));// 5.关闭⽂档doc.close();重点在第4步打开⽂档之后往⾥⾯加东西的操作。
如何在pdf上签字?pdf文件签字就用迅捷PDF编辑器
PDF文件可以内嵌多种媒体,比如音频、视频、图文等形式,而且文件的体积小,便于网络传输,打开文件后还能避免因为设备不同而出现的排版错乱等小问题,这些诸多优点都让PDF文件成为职场人和学习者的常用文档之一。
但如何在PDF文件上签字?给大家介绍这款迅捷PDF编辑器,它拥有在pdf文件上签字的功能哦!
使用软件:迅捷PDF编辑器
很多人都不知道可以直接对PDF文件进行编辑,英子最近发现一款迅捷PDF编辑器软件可以实现编辑的操作。
我们打开电脑上的软件,进入主界面窗口,在上方的菜单导航栏中点击【文档】——【数字签名】,在其子菜单栏下可以选择签名文档、放署签名等按钮(还可以清除所有签名)。
点击进去后按照提示进行操作便可完成添加签名的步骤了。
此外还有第二种方法,便是选择【数字签名】上方的【签名与缩写】按钮,点击【管理】按钮,进入新窗口。
这个方法相对前者来说比较个性化。
在【管理签名与缩写】的新窗口中,我们可点击【添加】按钮,选择【从文件导入】或【绘制签名】即可。
如果觉得签名不满意,直接选择删除或重新编辑。
大家有没有觉得这款软件操作很简单呢?在pdf文件上签字只需要简单几步,就可以实现啦!这么好用的工具分享给你们,记得点赞收藏起来哦!。
第40章 PDF 组件iText·895·第40章 PDF 组件iText本章将学习Java 的PDF 开源框架iText 。
通过实际的编程例子来学习如何生成pdf 文档,包括设置pdf 属性、在文档中显示格式化文本、显示图表、显示图像等。
完成本章的学习后,可以运用这些基本知识将数据转化成pdf 文件。
40.1 下载iText 组件iText 组件是著名的开放源码的站点sourceforge 一个项目,是用于生成PDF 文档的一个Java 类库。
通过iText 不仅可以生成pdf 或rtf 的文档,而且可以将XML 、Html 文件转化为pdf 文件。
iText 的官方网址是/iText/,如图40.1所示。
图40.1 iText 官方主页在项目主页/projects/itext/中单击“Download ”链接,下载最新版本的iText 类库。
下载完成之后会得到一个iText-2.1.2u.jar 包,运行程序时把这个包加入类路径中即可。
如果生成的PDF 文件中需要出现中文、日文、韩文字符,则还需要下载iTextAsian.jar 包,运行时也将其导入到类路径中。
第8篇 工具篇·896·40.2 输出pdf 的基本步骤pdf 文档输出有一个基本的框架。
首先看下面这个程序,它用iText 生成一个简单的pdf 文档,代码如下:代码40.1 FirstPDF.java package com.helloweenvsfei.itext;import java.io.FileOutputStream;import com.lowagie.text.Document;import com.lowagie.text.PageSize;import com.lowagie.text.Paragraph;import com.lowagie.text.pdf.PdfWriter;public class FirstPDF {public static void main(String[] args) {// 创建文档对象,A4纸大小Document document = new Document(PageSize.A4);try {// 输出为E:\itext.pdf 文件PdfWriter writer = PdfWriter.getInstance(document,new FileOutputStream("E:\\itext.pdf "));// 打开文档document.open();// 在pdf 文件中写入文字document.add(new Paragraph("Hello World, Hello iText")); // 关闭文档document.close();} catch (Exception e) {e.printStackTrace();}}}该程序运行后,将在E 盘的根目录下生成一个itext.pdf 文件,该pdf 文件打开后,效果如图40.2所示。
CA(证书授权中心)数字签名的原理涉及权威机构发行的数字证书和数字签名的应用。
首先,数字证书是由权威机构CA证书授权中心发行的,能提供在Internet上进行身份验证的一种权威性电子文档。
在PDF文件签名的过程中,通常需要先从CA机构申请一个证书,然后使用Adobe Acrobat等工具将证书应用于PDF文件,生成签名。
具体来说,技术原理包括以下几个步骤:
1. 获取PDF证书:成功在沃通CA申请证书后,会得到一个有密码的压缩包文件,输入证书密码后解压得到一个文件,该文件包含了证书持有者的信息和公钥。
2. 应用数字签名:使用Adobe Acrobat等工具设置基于证书的签名,并使用这些签名签署PDF文件。
点击签章图片,可以看到“数字证书”载明签发数字证书的CA名称、证书持有人名称、证书序列号、证书有效期等信息。
3. 安全性保证:CA机构的数字签名使得攻击者不能伪造和篡改证书。
在SET交易中,CA不仅对持卡人、商户发放证书,还要对获款的银行、网关发放证书。
CA是负责签发证书、认证身份的核心机构。
PDF文件数字签名和加密使用指南WoSign客户端数字证书不仅可以用于电子邮件数字签名和加密,以及登录企业内部管理系统的强身份认证,而且还可以用于数字签名和加密PDF文件,以实现企业内部管理系统的真正无纸化。
同时,WoSign代码签名证书也可以用于签名PDF文件。
如果您使用数字证书签名的PDF文件非常重要(如:合同),则建议您使用USB Key作为证书载体,以确保证书不会被非法滥用,从而保证了数字签名的权威性。
一、设置信任Windows根证书Adobe Acrobat 已经有了非常完善数字签名功能,但由于Adobe Reader和Adobe Acorbat的缺省设置是只信任由Adobe自己的根证书所签发的签名证书,所以,使用WoSign客户端数字证书和代码签名证书签名PDF文件时需要使用者(作者和读者)设置一下“信任Windows证书存储区中的所有根证书”,请按以下步骤设置:第 1 步:打开 Adobe Acrobat 7.0 和/或 Adobe Reader 7.0,点击“编辑”-“首选项”,再点击“安全性”,如下图 1 所示。
第 2 步:点击“高级首选项”,再点击“Windows 集成”,如下图 2 所示,打勾选中“启用'Windows'证书存储区导入和使用身份”、选中“确认签名”和“确认已验证的文档”,再点击“确定”即完成信任设置:二、数字签名PDF文件第 1 步:在Adobe Acrobat 7.0 的主菜单“高级” - “安全性设置” - “数字身份证”中点击“刷新”就可以看到您的Windows证书存储区中可用的签名证书,设置为默认签名和加密证书即可,如下图 3 所示:第 2 步:使用Adobe Acrobat打开PDF文件,点击主菜单上的“签名”即可,会让您选择是“数字签名”还是“验证文档”,如下图4所示,按照提示即可完成签名:请注意:数字签名PDF文件推荐使用WoSign客户端单位证书或代码签名证书,如下图5所示,Adobe Reader或Adobe Acrobat在打开已经签名的文档时就能显示签名人的姓名和单位名称:而由于WoSign客户端个人证书都没有验证单位名称,所以使用个人证书签名是会显示单位:Org. not validated(单位名称没有验证),如下图6所示,不适合于用于签名PDF文件。
PDF文件如何添加签名
PDF文件如何添加签名?在我们平常的工作中,许多文件都需要签名确认执行。
如果有一份PDF文件需要签名,屏幕前的你知道应该如何操作吗?如果你并不了解PDF文件应该如何添加签名,那么没关系,继续往下阅读你将会得到答案。
1、想要给PDF文件添加签名,我们需要用到PDF编辑器,这里我使用的是迅捷PDF编辑器进行操作。
2、首先我们需要点开文档按钮,在目录中选择签名与缩写,点开签名与缩写按钮我们可以看到,没有预设的签名在里面,所以我们点击管理。
3、点击过管理按钮,会弹出一个管理签名和缩写菜单来,在这里我们可以选择从文件夹中导入也可以自行绘制签名,按照个人需求进行选择。
这里我们点击从文件导入。
4、点击了从文件导入后,将会弹出一个文件框,我们在文件框中选择我们需要添加的签名文件,然后点击打开按钮。
5、点击了打开按钮之后,会弹出编辑签名/填写信息窗口。
在这个窗口中我们需要对签名名称进行设置,在这个窗口中我们还可以选择设置签名密码,这样这个签名只有设置密码的人可以使用,大大提高了安全性。
6、一切设置好后,我们点击文档按钮,然后再点击菜单中的签名与缩写,这时候我们发现刚刚设置的签名出现了,我们点击签名。
7、点击签名后,弹出输入密码框,在这里我们输入签名密码,
然后点击确认
8、这样,漂亮的签名就添加成功了。
PDF文件如何添加签名,小伙伴们现在知道该怎么操作了吗?如
果还有什么办公方面的问题,可以在下方给小编留言哦。
使用iText和证书对pdf签名,也可使用USB硬件
PdfReader reader = new PdfReader("d:\\work\\project\\sign\\test.pdf");
FileOutputStream fout = new FileOutputStream("d:\\work\\project\\sign\\test2.pdf");
PdfStamper stp = PdfStamper.createSignature(reader, fout, '\0', null,true);
PdfReader reader = new PdfReader("d:\\work\\project\\sign\\test.pdf");
FileOutputStream fout = new FileOutputStream("d:\\work\\project\\sign\\test2.pdf");
PdfStamper stp = PdfStamper.createSignature(reader, fout, '\0', null,true);
PdfSignatureAppearance sap = stp.getSignatureAppearance();
sap.setCertificationLevel(PdfSignatureAppearance.NOT_CERTIFIED);
sap.setVisibleSignature(new Rectangle(60, 100, 773, 231), 1,"SignatureField1");
// sap.setAcro6Layers(true);
sap.setSignatureGraphic(Image.getInstance("d:\\work\\project\\sign\\title.jpg"));
sap.setRenderingMode(PdfSignatureAppearance.RenderingMode.GRAPHIC);
PdfSignature dic = new PdfSignature(PdfName.ADOBE_PPKLITE, new
PdfName("adbe.pkcs7.detached"));
dic.setReason(sap.getReason());
dic.setLocation(sap.getLocation());
dic.setContact(sap.getContact());
dic.setDate(new PdfDate(sap.getSignDate()));
sap.setCryptoDictionary(dic);
int contentEstimated = 7000;
HashMap
exc.put(PdfName.CONTENTS, new Integer(contentEstimated * 2 + 2));
sap.setReason("this is the reason");
sap.setLocation("this is the location");
sap.preClose(exc);
InputStream data = sap.getRangeStream();
MessageDigest messageDigest = MessageDigest.getInstance("SHA1");
byte buf[] = new byte[8192];
int n;
while ((n = data.read(buf)) > 0) {
messageDigest.update(buf, 0, n);
}
byte hash[] = messageDigest.digest();
Calendar cal = Calendar.getInstance();
//这里的chain为公钥的证书链
PdfPKCS7 pk7 = new PdfPKCS7(null, chain, "SHA1", null, null, false);
byte[] sh = pk7.getAuthenticatedAttributeBytes(hash, cal, null, null,
null);
// 这里的sign(sh)为签名后的数据,可以将sh传给USB获取签名,网上都是获取私钥传给
iText然后对pdf签名,这种只适合文件证书,如果针对USB硬件或密码机就必须按照此文
档,研究iText的源码才发现,
pk7.setExternalDigest(sign(sh), null, "RSA");
byte[] sg = pk7.getEncodedPKCS7(hash, cal);
if (contentEstimated + 2 < sg.length)
throw new DocumentException("Not enough space");
byte[] paddedSig = new byte[contentEstimated];
System.arraycopy(sg, 0, paddedSig, 0, sg.length);
PdfDictionary dic2 = new PdfDictionary();
dic2.put(PdfName.CONTENTS, new PdfString(paddedSig) .setHexWriting(true));
sap.close(dic2);