激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 實例講解Java處理PDF圖章的方法

實例講解Java處理PDF圖章的方法

2021-07-14 16:08Java之家 Java教程

在本篇文章里小編給大家分享了關于Java處理PDF圖章的方法,對此有需要的朋友們可以學習下。

圖章(印章)是一種在合同、票據(jù)、公文等文件中表明法律效應、部門機關權威的重要指示物,常見于各種格式的文件、文檔中。對于紙質文檔可以手動蓋章,但對于電子文檔,則需要通過特定的方法來實現(xiàn)。本篇文檔分享通過java代碼在pdf文檔中添加圖章的方法。內容將分兩部分介紹:

1. 添加圖片圖章。即通過加載現(xiàn)有的圖章(以圖片形式),添加到pdf指定頁面位置

2. 添加動態(tài)圖章。即加載pdf文檔,并在動態(tài)的添加印章內容,包括印章字樣、日期、時間、經(jīng)辦人、組織名稱等。

使用工具:free spire.pdf for java v2.0.0

關于jar文件導入:

步驟1:步驟1:在java程序中新建一個文件夾可命名為lib。并將產(chǎn)品包中的2個jar文件復制到新建的文件夾下。

實例講解Java處理PDF圖章的方法

步驟2:復制文件后,添加到引用類庫:選中這兩個jar文件,點擊鼠標右鍵,選擇“build path” – “add to build path”。完成引用。

實例講解Java處理PDF圖章的方法

java示例(供參考)

1. 添加圖片圖章

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
import com.spire.pdf.fileformat;
 
import com.spire.pdf.pdfdocument;
 
import com.spire.pdf.pdfpagebase;
 
import com.spire.pdf.annotations.pdfrubberstampannotation;
 
import com.spire.pdf.annotations.appearance.pdfappearance;
 
import com.spire.pdf.graphics.pdfimage;
 
import com.spire.pdf.graphics.pdftemplate;
 
 
 
import java.awt.geom.rectangle2d;
 
 
 
public class imagestamp {
 
 
 
 public static void main(string[] args) {
 
 
 
  //創(chuàng)建pdfdocument對象,加載pdf測試文檔
 
  pdfdocument doc = new pdfdocument();
 
  doc.loadfromfile("test.pdf");
 
 
 
  //獲取文檔第3頁
 
  pdfpagebase page = doc.getpages().get(2);
 
 
 
  //加載印章圖片
 
  pdfimage image = pdfimage.fromfile("stamp.png");
 
  //獲取印章圖片的寬度和高度
 
  int width = image.getwidth();
 
  int height = image.getheight();
 
 
 
  //創(chuàng)建pdftemplate對象
 
  pdftemplate template = new pdftemplate(width, height);
 
  //將圖片繪制到模板
 
  template.getgraphics().drawimage(image, 0, 0, width, height);
 
 
 
  //創(chuàng)建pdfrubebrstampannotation對象,指定大小和位置
 
  rectangle2d rect = new rectangle2d.float((float) (page.getactualsize().getwidth() - width - 10), (float) (page.getactualsize().getheight() - height - 60), width, height);
 
  pdfrubberstampannotation stamp = new pdfrubberstampannotation(rect);
 
 
 
  //創(chuàng)建pdfappearance對象
 
  pdfappearance pdfappearance = new pdfappearance(stamp);
 
  //將模板應用為pdfappearance的一般狀態(tài)
 
  pdfappearance.setnormal(template);
 
  //將pdfappearance 應用為圖章的樣式
 
  stamp.setappearance(pdfappearance);
 
 
 
  //添加圖章到pdf
 
  page.getannotationswidget().add(stamp);
 
 
 
  //保存文檔
 
  doc.savetofile("imagestamp.pdf",fileformat.pdf);
 
 }
 
}

圖片圖章添加效果:

實例講解Java處理PDF圖章的方法

2.添加動態(tài)圖章

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
import com.spire.pdf.pdfdocument;
 
import com.spire.pdf.pdfpagebase;
 
import com.spire.pdf.annotations.pdfrubberstampannotation;
 
import com.spire.pdf.annotations.appearance.pdfappearance;
 
import com.spire.pdf.graphics.*;
 
 
 
import java.awt.*;
 
import java.awt.geom.point2d;
 
import java.awt.geom.rectangle2d;
 
import java.text.simpledateformat;
 
 
 
public class dynamicstamp {
 
 
 
 public static void main(string[] args) {
 
 
 
  //創(chuàng)建pdfdocument對象
 
  pdfdocument document = new pdfdocument();
 
 
 
  //加載pdf文檔
 
  document.loadfromfile("test.pdf");
 
 
 
  //獲取第3頁
 
  pdfpagebase page = document.getpages().get(2);
 
 
 
  //創(chuàng)建pdftamplate對象
 
  pdftemplate template = new pdftemplate(185, 50);
 
 
 
  //創(chuàng)建兩種字體
 
  pdftruetypefont font1 = new pdftruetypefont(new font("arial unicode ms", font.plain ,15), true);
 
  pdftruetypefont font2 = new pdftruetypefont(new font("arial unicode ms", font.plain ,10), true);
 
 
 
  //創(chuàng)建畫刷
 
  pdfsolidbrush solidbrush = new pdfsolidbrush(new pdfrgbcolor(color.blue));
 
  rectangle2d rect1 = new rectangle2d.float();
 
  rect1.setframe(new point2d.float(0,0),template.getsize()); 
 
 
 
  //創(chuàng)建圓角矩形路徑
 
  int cornerradius = 20;
 
  pdfpath path = new pdfpath();
 
  path.addarc(template.getbounds().getx(), template.getbounds().gety(), cornerradius, cornerradius, 180, 90);
 
  path.addarc(template.getbounds().getx() + template.getwidth() - cornerradius,template.getbounds().gety(), cornerradius, cornerradius, 270, 90);
 
  path.addarc(template.getbounds().getx() + template.getwidth() - cornerradius, template.getbounds().gety()+ template.getheight() - cornerradius, cornerradius, cornerradius, 0, 90);
 
  path.addarc(template.getbounds().getx(), template.getbounds().gety() + template.getheight() - cornerradius, cornerradius, cornerradius, 90, 90);
 
  path.addline( template.getbounds().getx(), template.getbounds().gety() + template.getheight() - cornerradius, template.getbounds().getx(), template.getbounds().gety() + cornerradius / 2);
 
 
 
  //繪制路徑到模板,并進行填充 
 
  template.getgraphics().drawpath(pdfpens.getblue(), path);
 
 
 
  //在模板上繪制文字及動態(tài)日期
 
  string s1 = "已審核\n";
 
  string s2 = "社區(qū)管理中心 " + datetostring(new java.util.date(),"yyyy-mm-dd hh:mm:ss");
 
  template.getgraphics().drawstring(s1, font1, solidbrush, new point2d.float(5, 5));
 
  template.getgraphics().drawstring(s2, font2, solidbrush, new point2d.float(5, 28));
 
 
 
  //創(chuàng)建pdfrubberstampannotation對象,并指定其位置和大小
 
  rectangle2d rect2= new rectangle2d.float();
 
  rect2.setframe(new point2d.float((float)(page.getactualsize().getwidth()-250),(float)(page.getactualsize().getheight()-150)), template.getsize());
 
  pdfrubberstampannotation stamp = new pdfrubberstampannotation(rect2);
 
 
 
  //創(chuàng)建pdfappearance對象,應用模板為一般狀態(tài)
 
  pdfappearance appearance = new pdfappearance(stamp);
 
  appearance.setnormal(template);
 
 
 
  //應用樣式到圖章
 
  stamp.setappearance(appearance);
 
 
 
  //添加圖章到annotation集合
 
  page.getannotationswidget().add(stamp);
 
 
 
  //保存文檔
 
  document.savetofile("dynamicstamp.pdf");
 
  document.close();
 
 }
 
 
 
 //將日期轉化成字符串
 
 public static string datetostring(java.util.date podate,string pcformat) {
 
  simpledateformat loformat = new simpledateformat(pcformat);
 
  return loformat.format(podate);
 
 }
 
}

動態(tài)圖章添加效果:

實例講解Java處理PDF圖章的方法

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成人啪啪色婷婷久 | 色爽爽爽 | 99最新地址| 羞羞的网址 | 国产精品美女一区二区 | 亚洲最新无码中文字幕久久 | 久久99综合久久爱伊人 | 成人富二代短视频 | 欧美一级一区二区三区 | 国产国语毛片 | 大尺度福利视频 | 香蕉视频网站在线观看 | www.com超碰| 超污视频在线看 | 97干色 | 欧美国产日韩在线观看成人 | 免费毛片随便看 | 国产一区二区三区四区五区在线 | 斗罗破苍穹在线观看免费完整观看 | 斗破苍穹在线观看免费完整观看 | 圆产精品久久久久久久久久久 | 久久国产精品久久久久久久久久 | av电影网站在线观看 | 日韩毛片在线看 | 午夜视频久久久 | 羞羞的视频在线免费观看 | 久久久日韩精品一区二区 | 久久免费视频1 | 亚洲啊v在线观看 | 水多视频在线观看 | 91久久国产综合久久91猫猫 | 97精品国产高清在线看入口 | 媚药按摩痉挛w中文字幕 | 91真视频 | 亚洲国产精品高潮呻吟久久 | 黄色特级片黄色特级片 | 欧美不卡| 久久99久久99精品 | 久久影院免费观看 | 91久久国产综合精品女同国语 | 欧美囗交 |