国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

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

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

服務器之家 - 編程語言 - Java教程 - Java創建和填充PDF表單域方法

Java創建和填充PDF表單域方法

2021-07-12 15:03Java之家 Java教程

在本篇文章中小編給大家分享了關于Java創建和填充PDF表單域方法和步驟,有需要的朋友們學習下。

表單域,可以按用途分為多種不同的類型,常見的有文本框、多行文本框、密碼框、隱藏域、復選框、單選框和下拉選擇框等,目的是用于采集用戶的輸入或選擇的數據。下面的示例中,將分享通過java編程在pdf中添加以及填充表單域的方法。這里填充表單域可分為2種情況,一種是在創建表單域時填充,一種是加載已經創建好表單域的文檔進行填充。此外,對于已經創建表單域并填寫好的文檔,也可以設置只讀,防止修改、編輯。

要點概括:

1.創建表單域

2.填充表單域

3.設置表單域只讀

工具:free spire.pdf for java v2.0.0(免費版)

jar文件導入

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

Java創建和填充PDF表單域方法

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

Java創建和填充PDF表單域方法

java代碼示例(供參考)

1.創建并填充pdf表單域

?
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
import java.awt.*;
import java.awt.geom.point2d;
import java.awt.geom.rectangle2d;
import com.spire.pdf.fileformat;
import com.spire.pdf.pdfdocument;
import com.spire.pdf.pdfpagebase;
import com.spire.pdf.fields.*;
import com.spire.pdf.graphics.*;
 
public class addformfieldstopdf {
 
 public static void main(string[] args) throws exception {
   
  //創建pdfdocument對象,并添加頁面
  pdfdocument doc = new pdfdocument(); 
  pdfpagebase page = doc.getpages().add();
 
  //初始化位置變量
  float basex = 100;
  float basey = 0;
 
  //創建畫刷對象
  pdfsolidbrush brush1 = new pdfsolidbrush(new pdfrgbcolor(color.blue));
  pdfsolidbrush brush2 = new pdfsolidbrush(new pdfrgbcolor(color.black));
   
  //創建truetype字體
  pdftruetypefont font= new pdftruetypefont(new font("arial unicode ms",font.plain,10),true);
 
  //添加文本框
  string text = "姓名:";//添加文本
  page.getcanvas().drawstring(text, font, brush1, new point2d.float(0, basey));//在pdf中繪制文字
  rectangle2d.float tbxbounds = new rectangle2d.float(basex, basey , 150, 15);//創建rectangle2d對象
  pdftextboxfield textbox = new pdftextboxfield(page, "textbox");//創建文本框對象
  textbox.setbounds(tbxbounds);//設置文本框的bounds
  textbox.settext("劉興");//填充文本框
  textbox.setfont(font);//應用文本框的字體
  doc.getform().getfields().add(textbox);//添加文本框到pdf域的集合
  basey +=25;
 
  //添加復選框
  page.getcanvas().drawstring("所在院系:", font, brush1, new point2d.float(0, basey));
  java.awt.geom.rectangle2d.float rec1 = new java.awt.geom.rectangle2d.float(basex, basey, 15, 15);
  pdfcheckboxfield checkboxfield = new pdfcheckboxfield(page, "checkbox1");//創建第一個復選框對象
  checkboxfield.setbounds(rec1);
  checkboxfield.setchecked(false);//填充復選框
  page.getcanvas().drawstring("經管系", font, brush2, new point2d.float(basex + 20, basey));
  java.awt.geom.rectangle2d.float rec2 = new java.awt.geom.rectangle2d.float(basex + 70, basey, 15, 15);
  pdfcheckboxfield checkboxfield1 = new pdfcheckboxfield(page, "checkbox2");//創建第二個復選框對象
  checkboxfield1.setbounds(rec2);
  checkboxfield1.setchecked(true);//填充復選框
  page.getcanvas().drawstring("創新班", font, brush2, new point2d.float(basex+90, basey)); 
  doc.getform().getfields().add(checkboxfield);//添加復選框到pdf
  basey += 25;
 
  //添加列表框
  page.getcanvas().drawstring("錄取批次:", font, brush1, new point2d.float(0, basey));
  java.awt.geom.rectangle2d.float rec = new java.awt.geom.rectangle2d.float(basex, basey, 150, 50);
  pdflistboxfield listboxfield = new pdflistboxfield(page, "listbox");//創建列表框對象
  listboxfield.getitems().add(new pdflistfielditem("第一批次", "item1"));
  listboxfield.getitems().add(new pdflistfielditem("第二批次", "item2"));
  listboxfield.getitems().add(new pdflistfielditem("第三批次", "item3"));;
  listboxfield.setbounds(rec);
  listboxfield.setfont(font);
  listboxfield.setselectedindex(0);//填充列表框
  doc.getform().getfields().add(listboxfield);//添加列表框到pdf
  basey += 60;
 
  //添加單選按鈕
  page.getcanvas().drawstring("招收方式:", font, brush1, new point2d.float(0, basey));
  pdfradiobuttonlistfield radiobuttonlistfield = new pdfradiobuttonlistfield(page, "radio");//創建單選按鈕對象
  pdfradiobuttonlistitem radioitem1 = new pdfradiobuttonlistitem("item1");//創建第一個單選按鈕
  radioitem1.setbounds(new rectangle2d.float(basex, basey, 15, 15));
  page.getcanvas().drawstring("全日制", font, brush2, new point2d.float(basex + 20, basey));
  pdfradiobuttonlistitem radioitem2 = new pdfradiobuttonlistitem("item2");//創建第二個單選按鈕
  radioitem2.setbounds(new rectangle2d.float(basex + 70, basey, 15, 15));
  page.getcanvas().drawstring("成人教育", font, brush2, new point2d.float(basex + 90, basey));
  radiobuttonlistfield.getitems().add(radioitem1);
  radiobuttonlistfield.getitems().add(radioitem2);
  radiobuttonlistfield.setselectedindex(0);//選擇填充第一個單選按鈕
  doc.getform().getfields().add(radiobuttonlistfield);//添加單選按鈕到pdf
  basey += 25;
 
  //添加組合框
  page.getcanvas().drawstring("最高學歷:", font, brush1, new point2d.float(0, basey));
  rectangle2d.float cmbbounds = new rectangle2d.float(basex, basey, 150, 15);//創建cmbbounds對象
  pdfcomboboxfield comboboxfield = new pdfcomboboxfield(page, "combobox");//創建comboboxfield對象
  comboboxfield.setbounds(cmbbounds);
  comboboxfield.getitems().add(new pdflistfielditem("博士", "item1"));
  comboboxfield.getitems().add(new pdflistfielditem("碩士", "itme2"));
  comboboxfield.getitems().add(new pdflistfielditem("本科", "item3"));
  comboboxfield.getitems().add(new pdflistfielditem("大專", "item4"));
  comboboxfield.setselectedindex(0); 
  comboboxfield.setfont(font);
  doc.getform().getfields().add(comboboxfield);//添加組合框到pdf
  basey += 25;
 
  //添加簽名域
  page.getcanvas().drawstring("本人簽字確認\n以上信息屬實:", font, brush1, new point2d.float(0, basey));
  pdfsignaturefield sgnfield= new pdfsignaturefield(page,"sgnfield");//創建sgnfield對象
  rectangle2d.float sgnbounds = new rectangle2d.float(basex, basey, 150, 80);//創建sgnbounds對象
  sgnfield.setbounds(sgnbounds);  
  doc.getform().getfields().add(sgnfield);//添加sgnfield到pdf
  basey += 90;
 
  //添加按鈕
  page.getcanvas().drawstring("", font, brush1, new point2d.float(0, basey));
  rectangle2d.float btnbounds = new rectangle2d.float(basex, basey, 50, 15);//創建btnbounds對象
  pdfbuttonfield buttonfield = new pdfbuttonfield(page, "button");//創建buttonfield對象
  buttonfield.setbounds(btnbounds);
  buttonfield.settext("提交");//設置按鈕顯示文本
  buttonfield.setfont(font);
  doc.getform().getfields().add(buttonfield);//添加按鈕到pdf
   
  //保存文檔
  doc.savetofile("result.pdf", fileformat.pdf);   
 }
}

創建(填充)效果:

Java創建和填充PDF表單域方法

2.加載并填充已有的表單域文檔

測試文檔如下:

Java創建和填充PDF表單域方法

?
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
import com.spire.pdf.fileformat;
import com.spire.pdf.pdfdocument;
import com.spire.pdf.fields.pdffield;
import com.spire.pdf.widget.*;
 
public class fillformfield_pdf{
 public static void main(string[] args){
   
  //創建pdfdocument對象,并加載pdf文檔
  pdfdocument doc = new pdfdocument();
  doc.loadfromfile("output.pdf");
 
  //獲取文檔中的域
  pdfformwidget form = (pdfformwidget) doc.getform(); 
  //獲取域控件集合
  pdfformfieldwidgetcollection formwidgetcollection = form.getfieldswidget();
 
  //遍歷域控件并填充數據
  for (int i = 0; i < formwidgetcollection.getcount(); i++) {
    
   pdffield field = formwidgetcollection.get(i);  
   if (field instanceof pdftextboxfieldwidget) {
    pdftextboxfieldwidget textboxfield = (pdftextboxfieldwidget) field;
    textboxfield.settext("吳 敏");
   }
   if (field instanceof pdfcheckboxwidgetfieldwidget) {
    pdfcheckboxwidgetfieldwidget checkboxfield = (pdfcheckboxwidgetfieldwidget) field;
    switch(checkboxfield.getname()){
    case "checkbox1":
     checkboxfield.setchecked(true);
     break;
    case "checkbox2":
     checkboxfield.setchecked(true);
     break;
    }
   }
   if (field instanceof pdfradiobuttonlistfieldwidget) {
    pdfradiobuttonlistfieldwidget radiobuttonlistfield = (pdfradiobuttonlistfieldwidget) field;
    radiobuttonlistfield.setselectedindex(1);
   }
   if (field instanceof pdflistboxwidgetfieldwidget) {
    pdflistboxwidgetfieldwidget listbox = (pdflistboxwidgetfieldwidget) field;
    listbox.setselectedindex(1);
   }
    
   if (field instanceof pdfcomboboxwidgetfieldwidget) {
    pdfcomboboxwidgetfieldwidget comboboxfield = (pdfcomboboxwidgetfieldwidget) field;
    comboboxfield.setselectedindex(1);
   }
  }
   
  //保存文檔
  doc.savetofile("fillformfields.pdf", fileformat.pdf);
 }
}

填充效果:

Java創建和填充PDF表單域方法

3.限制表單域編輯(只讀)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import com.spire.pdf.pdfdocument;
 
public class fieldreadonly_pdf {
 public static void main(string[] args) throws exception {
 {
 //創建pdfdocument對象,并加載包含表單域的pdf文檔
 pdfdocument pdf = new pdfdocument();
 pdf.loadfromfile("test.pdf");
  
  //將文檔中的所有表單域設置為只讀
  pdf.getform().setreadonly(true);
  
  //保存文檔
  pdf.savetofile("result.pdf");
  }
 }

生成的文檔中,表單域將不可編輯,為只讀狀態

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 在线午夜| 91精彩视频 | 毛片在线网站 | 日本不卡一区二区三区在线观看 | 精品国产子伦久久久久久小说 | 欧美在线综合 | 免费观看的黄色 | 北条麻妃99精品青青久久 | 日韩91| 国产欧美精品一区二区三区四区 | 国产成人精品一区二区在线 | 免费看黄色的视频 | 91香蕉视频 | 中日韩欧美风情视频 | 欧美成人a| 成人深夜在线 | 国产精品成人在线观看 | 亚洲艹| 激情六月婷 | 一区二区不卡视频 | 久久人人av | 日日骚一区 | 国产一区a| 久久久999成人 | 不卡一区 | 久久国产精品99国产精 | 中文视频在线 | 黄色一级片看看 | 欧美性猛交一区二区三区精品 | 五月婷婷在线视频 | 2022天天操| 国产福利在线观看 | 日本在线视频一区二区 | 黄色美女网站在线观看 | 爱色影wwwcom| 日韩激情一区二区 | 久久亚洲综合 | 欧美福利网址 | 色aaaa| 欧美福利视频 | 国产欧美日韩一级大片 |