国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看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圖章的方法,對此有需要的朋友們可以學習下。

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

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

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

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

關于jar文件導入:

步驟1:步驟1:在java程序中新建一個文件夾可命名為lib。并將產品包中的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) {
 
 
 
  //創建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();
 
 
 
  //創建pdftemplate對象
 
  pdftemplate template = new pdftemplate(width, height);
 
  //將圖片繪制到模板
 
  template.getgraphics().drawimage(image, 0, 0, width, height);
 
 
 
  //創建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);
 
 
 
  //創建pdfappearance對象
 
  pdfappearance pdfappearance = new pdfappearance(stamp);
 
  //將模板應用為pdfappearance的一般狀態
 
  pdfappearance.setnormal(template);
 
  //將pdfappearance 應用為圖章的樣式
 
  stamp.setappearance(pdfappearance);
 
 
 
  //添加圖章到pdf
 
  page.getannotationswidget().add(stamp);
 
 
 
  //保存文檔
 
  doc.savetofile("imagestamp.pdf",fileformat.pdf);
 
 }
 
}

圖片圖章添加效果:

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

2.添加動態圖章

?
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) {
 
 
 
  //創建pdfdocument對象
 
  pdfdocument document = new pdfdocument();
 
 
 
  //加載pdf文檔
 
  document.loadfromfile("test.pdf");
 
 
 
  //獲取第3頁
 
  pdfpagebase page = document.getpages().get(2);
 
 
 
  //創建pdftamplate對象
 
  pdftemplate template = new pdftemplate(185, 50);
 
 
 
  //創建兩種字體
 
  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);
 
 
 
  //創建畫刷
 
  pdfsolidbrush solidbrush = new pdfsolidbrush(new pdfrgbcolor(color.blue));
 
  rectangle2d rect1 = new rectangle2d.float();
 
  rect1.setframe(new point2d.float(0,0),template.getsize()); 
 
 
 
  //創建圓角矩形路徑
 
  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);
 
 
 
  //在模板上繪制文字及動態日期
 
  string s1 = "已審核\n";
 
  string s2 = "社區管理中心 " + 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));
 
 
 
  //創建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);
 
 
 
  //創建pdfappearance對象,應用模板為一般狀態
 
  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);
 
 }
 
}

動態圖章添加效果:

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美日韩第一页 | 欧美精品网站 | 91久久精品一区二区二区 | 亚洲一区中文 | 中文字幕视频在线 | 亚洲小视频 | 在线中文视频 | 国产高清精品在线 | 操老逼 | 国产日韩视频 | 欧美区 日韩区 | 中文字幕在线观看 | 午夜国产 | 狠狠中文字幕 | 激情综合五月 | 欧美亚洲在线 | 91cn在线观看| 精品第一页 | 日韩精品久久久 | 国产成人一区 | 国产精品久久久久久久久久久久午夜片 | 欧州一区二区三区 | 亚洲国产成人av | 99精品网站 | 视频一区中文字幕 | 国产免费av在线 | 五月天黄色片 | 九色porny国模私拍av | 日本视频中文字幕 | 天天干天天操 | 日本高清无卡码一区二区久久 | 日韩高清在线一区 | 日韩欧美一级 | 成人精品视频免费在线观看 | 国产成人av在线 | 伊人精品影院 | 婷婷久久五月天 | 99久久99| 羞涩网站| 国产精品久久久久久 | 国产精品美女久久久久久久网站 |