这个博客自己现在没时间写,等后面有时间了,自己再写。

这中需求是在实际的项目开发中是会经常遇到的。

下面我们先从简单入手一步一步开始。

1.首先,使用word创建一个6行两列的表格。

点击插入-6行2列的表格,如图所示:

2.将创建好的word文档表格,保存成pdf格式,这里,我使用的是wps,当然office办公软件也是可以的。

3.安装Adobe Acrobat 软件,这是一款非常好用的pdf编辑软件,大家可以百度下载安装和破解,(个人建议:最好全程断网安装)

4.使用Adobe Acrobat软件打开文档1.pdf文件  接下来按照我红色的箭头一步一步执行就OK

当然生成表单的的每个输入框的命名是软件默认给取的,你也可以修改,我这里就先不改了。

5.ctrl+s直接保存就可以了。这样一个正真意义上的pdf模板制作好了就。

6.进行重要的编码工作。

7.首先准备操作pdf文件的的重要jar包,需要在pom.xml文件中进行引入。

<dependency>
  <groupId>com.itextpdf</groupId>
  <artifactId>itextpdf</artifactId>
  <version>5.5.10</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.itextpdf/itext-asian -->
<dependency>
      <groupId>com.itextpdf</groupId>
      <artifactId>itext-asian</artifactId>
      <version>5.2.0</version>
</dependency>

8.编写相应的处理类

 package com.sinosoft.lis.mgubq.zhaoyongqiang;

 import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException; import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.AcroFields;
import com.itextpdf.text.pdf.PdfCopy;
import com.itextpdf.text.pdf.PdfImportedPage;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper; /**
* 使用Java操作PDM文件.
*/
public class PDFDemo {
public static void main(String[] args) {
// 模板路径
String templatePath = "D:/pdm/one.pdf";
// 生成的新文件路径
String newPDFPath = "D:/pdm/practise.pdf";
PdfReader reader;
FileOutputStream out;
ByteArrayOutputStream bos;
PdfStamper stamper;
try {
out = new FileOutputStream(newPDFPath);// 输出流
reader = new PdfReader(templatePath);// 读取pdf模板
bos = new ByteArrayOutputStream();
stamper = new PdfStamper(reader, bos);
AcroFields form = stamper.getAcroFields(); String[] str = {"123456789", "TOP__ONE", "男", "2000-01-01", "130222111133338888", "河北省张家口市"};
int i = 0;
java.util.Iterator<String> it = form.getFields().keySet().iterator();
while (it.hasNext()) {
String name = it.next().toString();
System.out.println(name);
form.setField(name, str[i++]);
}
stamper.setFormFlattening(true);// 如果为false那么生成的PDF文件还能编辑,一定要设为true
stamper.close(); Document doc = new Document();
PdfCopy copy = new PdfCopy(doc, out);
doc.open();
PdfImportedPage importPage = copy.getImportedPage(new PdfReader(bos.toByteArray()), 1);
copy.addPage(importPage);
doc.close(); } catch (IOException e) {
e.printStackTrace();
System.out.println(e.toString());
} catch (DocumentException e) {
e.printStackTrace();
System.out.println(e.toString());
} } }

运行结果:

这个是form表单中的属性名。你起什么它就叫什么。

9.这是生成的practise.pdf文件

靠,中文乱码,稍等,,,,,,,,,,

10.

https://blog.csdn.net/top__one/article/details/65442390  这是别人的博客园

最新文章

  1. 如何在MAC OS X下安装配置java开发工具
  2. JS之BOM、客户端检测和DOM
  3. iOS阶段学习第30天笔记( UIViewController—Delegate(代理) )
  4. Java 实现MapReduce函数
  5. 【转载】Linux系统启动流程
  6. scala学习笔记:控制抽象
  7. Makefile学习(三)执行make
  8. CSS--table之min-height
  9. pdo 抽象层连接数据库
  10. 2017全球互联网技术大会回顾(附PPT)
  11. Nodejs最好的ORM - TypeORM
  12. 借助csv用PHP生成excel文件
  13. Python的控制语句
  14. Netty学习笔记(一):接收nodejs模拟表单上传的文件
  15. [Swift]LeetCode255.验证二叉搜索树的先序序列 $ Verify Preorder Sequence in Binary Search Tree
  16. 新浪微博 [异常问题] 414 Request-URL Too Large
  17. 极高效内存池实现 (cpu-cache)
  18. GridView监听器
  19. demo02
  20. laravel 表单接收

热门文章

  1. LeetCode 540. 有序数组中的单一元素(Single Element in a Sorted Array) 42
  2. 防范sql注入值得注意地方
  3. Codeforces Round #604
  4. [cf 1236 E] Alice and the Unfair Game
  5. 【简解】C2CRNI - Crni
  6. [BZOJ2157]旅游(树链剖分/LCT)
  7. git 学习笔记 --从远程库克隆
  8. Redis运维利器 -- RedisManager
  9. WebServices 使用Session
  10. kubernetes使用securityContext和sysctl