我们可以发现很多求职网站都会将我们录入的信息来生成一个PDF简历文件。所以我这里提供了用itextpdf生成的PDF的代码。

一、步骤

1.1、使用Adobe Acrobat Pro工具编辑PDF模板

1.2、根据PDF模板文件路径创建一个PDFReader对象

1.3、创建一个输出流对象,用于存放生成的PDF文件

1.4、利用前面的对象,创建一个PDF印章,并获取PDF表单

1.5、设置支持中文

1.6、填充数据

1.7、关闭流

二、具体操作和编码

2.1、编辑PDF模板

打开求职信模板,如下所示:

点击准备表单,然后就可以向这个PDF文件中添加各种表单组件了

我这里添加了四个文本域:name、mobile、email、position,然后保存文件,这样我们的模板文件就编辑好了。

编辑好的模板下载

2.2、具体编码

我这里使用Maven来构建工程,需要在pom.xml中添加依赖

     <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.6</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency>

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.AcroFields;
import com.itextpdf.text.pdf.AcroFields.FieldPosition;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;public class PDF {public static void main(String[] args) throws IOException, DocumentException {// 1、创建PDFReader对象PdfReader reader = new PdfReader("C:\\Users\\cc\\Desktop\\求职信模板.pdf");// 模板文件的路径// 2、创建输出流对象FileOutputStream fos = new FileOutputStream("C:\\Users\\cc\\Desktop\\我的求职信.pdf");// 最后输出文件的路径// 3、创建印章对象PdfStamper ps = new PdfStamper(reader, fos);// 4、获取PDF表单AcroFields fields = ps.getAcroFields();// 5、设置支持中文BaseFont bfChinese = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", false);fields.addSubstitutionFont(bfChinese);// 6、数据填充(没有图片的话下面可以省略)List<FieldPosition> signature = fields.getFieldPositions("image");for (int i = 0; i < signature.size(); i++) {Image img = Image.getInstance("C:\\Users\\cc\\Desktop\\1.png");float x = signature.get(i).position.getLeft();float y = signature.get(i).position.getBottom();float width = signature.get(i).position.getWidth();float height = signature.get(i).position.getHeight();img.setAlignment(Image.DEFAULT);// 设置对齐位置img.setAbsolutePosition(x, y);// 设置坐标位置img.scaleAbsolute(width, height);// 设置图片大小:宽200,高90// img.scalePercent(5);//设置图片百分比PdfContentByte contentByte = ps.getOverContent(signature.get(i).page);contentByte.addImage(img);// 添加图片}fields.setField("name", "张三");fields.setField("mobile", "17017511125");fields.setField("email", "1658633515@qq.com");fields.setField("position", "Java开发工程师");ps.setFormFlattening(true);// 7、流关闭ps.close();fos.close();}}

【Java中级篇】使用itextpdf生成PDF相关推荐

  1. java用itextPDF生成PDF文件保存至本地并上传至ftp服务器

    标题java用itextPDF生成PDF文件保存至本地并上传至ftp服务器 所需jar :itext-asian-5.2.0.jar,itextpdf-5.5.5.jar,commons-net-3. ...

  2. java使用itextpdf生成PDF批量打印荣誉证书(指定位置输出文字)

    最近公司项目有个需求,批量打印荣誉证书,一开始尝试过传统的网络打印,控件打印,JS调用浏览器打印方法,遇到各种问题,比如定位不准,分页问题,​​缩放问题等.然后就自己研究,整理了一套打印方案,项目已测 ...

  3. Java使用itextpdf生成PDF文件,用浏览器下载

    浏览器下载生成PDF文件 1.引入jar包 <dependency><groupId>com.itextpdf</groupId><artifactId> ...

  4. Java通过itextpdf生成PDF

    通过Java生成PDF我用的是itextpdf,需要引入的pop坐标如下 <!-- https://mvnrepository.com/artifact/com.itextpdf/itextpd ...

  5. java使用itextpdf生成pdf并填充自定义数据

    项目中有个需求,对于已有的数据生成对应的发票pdf或者合同pdf,这些pdf具有一些特性,就是pdf有固定的格式,类似于表格,我们只要往表格里面填充数据即可.当然,也会涉及到签章,二维码等需求. 总体 ...

  6. java使用itextpdf生成pdf文档指定图片印章位置

    项目结构 1.引包 <dependencies><!-- itextpdf--><dependency><groupId>com.itextpdf< ...

  7. 使用itextpdf生成pdf

    因为工作需要,最近项目中有一个需求需要生成带有项目信息的pdf,并且pdf中还需要有附带项目信息的二维码方便用户扫码.         做这个功能中踩了不少坑,写个博客提醒一下 springboot版 ...

  8. JAVA根据模板填充,生成PDF文件

    项目场景: 需求:根据客户模板,生成对应PDF文件. 例如:客户的doc模板文件: 最终效果展示: 话不多说,上操作: 首先引入pdf相关的依赖 <dependency><group ...

  9. java maven 读写pdf_Java动态生成pdf文件(使用itext编辑pdf)

    一.创建pdf模板 使用PDFelement制作pdf模板(数据域的名称对应后面插入的key) 二.导入maven依赖 com.itextpdf itextpdf 5.5.13 com.itextpd ...

最新文章

  1. os的进程调度(读书笔记)
  2. 的g极串一个电阻_Ohm#39;s Law 简单系列D:从惠斯通(会石头)测电阻开始说
  3. unet_3plus
  4. 用C++的类重载高精度加法,乘法和等于符号
  5. 子查询in和表连接效率
  6. input的readonly属性与TextBox的ReadOnly和Enabled属性区别
  7. 织梦dedecms出现DedeCMS Error: (PHP 5.3 and above) Please set 'request_order' ini value to i解决办法...
  8. Java黑皮书课后题第6章:6.11(金融应用:计算酬金)编写方法,利用编程练习题5.39中的方法计算酬金。方法头如下所示。编写程序,显示下面表格
  9. c++11- Alias Template
  10. 带线的无限级下拉树列表-完整示例篇
  11. python爬虫实战(1)——爬取知乎热门回答图片
  12. c语言strTrimed函数用法介绍,c语言对字符串实现高效trim函数
  13. WIN10 VMWARE 虚拟机安装WIN10 64系统
  14. 《运算放大器权威指南(Op Amps for Everyone)》读书笔记(一)
  15. IPD——从战略到执行的全面研发管理体系
  16. CNTV数据库高级经理田发明:SQL审核与开发规范
  17. 如何运行element ui
  18. python 小甲鱼小游戏_Python 小甲鱼教程 Easygui 篇
  19. 近期做笔试题总结和思考(百度,滴滴,360)
  20. 夏日炎炎玩转新加坡:盘点室内景点和夜游好去处

热门文章

  1. ServiceComb中的数据最终一致性方案
  2. vaex 处理海量数据_核心业务“瘦身”进行时!手把手带你搭建海量数据实时处理架构...
  3. python zip压缩_Python zip压缩与解压(zipfile模块实例)
  4. python制作简单网页_python 跑服务器,访问自己制作的简单页面
  5. 服务器 独立显卡 显示不出来,dell服务器R720+独立显卡GTX1650,进不去系统,UEIF报错...
  6. mindi linux 使用教程,Linux使用入门教程之tuned
  7. MySQL5.7.x 安装 Linux7环境
  8. linux 目录挂载
  9. Linux Shell脚本_历史命令显示操作时间
  10. 使用Navicat Premium 12 连接远程Oracle数据库