java pdf模版的遍历_java使用itext操作填充pdf模板
一、先创建pdf模板
1.先用word做出界面
image.png
2.再转换成pdf格式
image.png
image.png
3.用Adobe Acrobat 打开你刚刚用word转换成的pdf
image.png
会出现如下界面
image.png
下一步
image.png
点击浏览,选择刚才你转换好的pdf
image.png
下一步
4.打开后它会自动侦测并命名表单域,右键表单域,点击属性,出现文本域属性对话框,有的人说要改成中文字体,可是我没有改一样成功啦
image.png
5.一般情况下不需要修改什么东西,至少我没有修改哦
image.png
6.直接另存为就行了
二、代码部分:
1、java项目引入依赖
com.itextpdf
itextpdf
${itextpdf.version}
2、java实现
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import org.junit.Test;
import com.itextpdf.text.pdf.AcroFields;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
public class TestPdf {
@Test
public void testPdf() {
String inputFileName = "E:\\1\\2.pdf";
String outputFileName = "E:\\1\\3.pdf";
OutputStream os = null;
PdfStamper ps = null;
PdfReader reader = null;
try {
os = new FileOutputStream(new File(outputFileName));
// 2 读入pdf表单
reader = new PdfReader(inputFileName);
// 3 根据表单生成一个新的pdf
ps = new PdfStamper(reader, os);
// 4 获取pdf表单
AcroFields form = ps.getAcroFields();
// 5给表单添加中文字体 这里采用系统字体。不设置的话,中文可能无法显示
// BaseFont bf = BaseFont.createFont("C:/Windows/Fonts/SIMYOU.TTF",
// BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
// 方法二:使用iTextAsian.jar中的字体
// BaseFont baseFont =
// BaseFont.createFont("STSong-Light",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
BaseFont bf = BaseFont.createFont("/SIMYOU.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
form.addSubstitutionFont(bf);
// 6查询数据================================================
Map data = new HashMap();
data.put("question", "你叫什么名字?");
data.put("answer", "张三");
// 7遍历data 给pdf表单表格赋值
for (String key : data.keySet()) {
form.setField(key, data.get(key).toString());
}
ps.setFormFlattening(true);
System.out.println("===============PDF导出成功=============");
} catch (Exception e) {
System.out.println("===============PDF导出失败=============");
e.printStackTrace();
} finally {
try {
ps.close();
reader.close();
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
注意:SIMYOU.TTF放在resources目录下。
image.png
java pdf模版的遍历_java使用itext操作填充pdf模板相关推荐
- java pdf模板 表单 多页_java使用itext操作填充pdf模板,(根据一个模板生成多页数据)...
//我自己的数据源 final List rows = pa.getRows(); //每一条数据代表一个pdf表格 Listlist = new ArrayList(); try { PdfStam ...
- java 设置纸张大小设置_java 用itext设置pdf纸张大小操作
做快递面单打印模板,快递要求纸张大小100 x 150mm. PageSize.A4=595 x 842 A4尺寸=210mm×297mm 故设置纸张大小: public static final R ...
- java epub 删除一页_java如何实现批量删除pdf指定的页数
依赖: org.apache.pdfbox pdfbox-app 1.8.10 java 用PDFBox 删除 PDF文件中的某一页,前n页,后n页,效率低,不推荐使用 package com.eve ...
- java pdf 首行缩进_java使用iText生成pdf文档的对齐方式
一.前言 在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成PDF报表的Java组件--iText.通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超级连接显示或 ...
- java读pdf一行_java 用itext解析一个pdf文件, 一行数据为一个对象,怎么解析
展开全部 一.iText介绍 iText是着名的开放源e68a843231313335323631343130323136353331333431363536码的站点sourceforge一个项目,是 ...
- java pdf 转txt文件_java – 使用iText将TXT文件转换为PDF(保持格式化)
我正在尝试使用iText库将.txt文件转换为.pdf文件. 我面临的问题如下: 我在txt文件中有一个清晰的格式,类似于: TEXT ******************* Other text h ...
- java html转pdf 无法支持中文_java项目实现html转pdf的需求(支持中文和CSS样式)
java项目中用到了html转pdf的需求,现在写一个自己认为最优方案的总结,虽然还是有一些小的bug 为了保证中文的支持需要在被转换的html添加body的添加中文字体样式,保持这个字体和后边转换p ...
- java 树的层次遍历_Java遍历树的层级 - osc_jegm3yg5的个人空间 - OSCHINA - 中文开源技术交流社区...
非科班出身,欢迎指正. 要实现的逻辑是,在一棵树中,给出任意一个节点,获取到该节点下的N个层级. 一.树型结构 下图的树中,节点上的字母代表节点的名字,字母下的代表该节点的下单金额. 二.数据准备 组 ...
- java arraylist枚举器遍历_Java基础(七)泛型数组列表ArrayList与枚举类Enum
一.泛型数组列表ArrayList 1.在Java中,ArrayList类可以解决运行时动态更改数组的问题.ArrayList使用起来有点像数组,但是在添加或删除元素时,具有自动调节数组容量的功能,而 ...
最新文章
- 华三h3c交换机最详细的配置实例手册_华为/思科/华三基本命令对比
- Android数据存储之SharedPreferencesSave存储(保存数据,读取数据的操作)
- 炸弹人游戏开发系列(6):实现碰撞检测,设置移动步长
- aes256加密java_使用Java和JCEKS进行AES-256加密
- 服务器主板北桥芯片组有哪些,主板芯片组_目前的主板芯片组都有哪些?
- python数据预处理_Python数据预处理——缺失值、重复值
- STM32F103使用内部Flash保存参数
- 动态规划——有趣的数(ccf)
- 微模式重金招聘高级图像算法工程师
- 学习笔记:可持久化线段树(主席树):静态 + 动态
- UniversalVideoView
- 我狂揽16个offer:面试常问的这些问题你准备了吗?
- c++ 的 stl模板库_C ++中的标准模板库(STL)
- kernel 3.2.0 上加入自己的板级文件
- 在vscode中php语言配置,vscode配置go语言开发环境
- 所有网站都是用虚拟服务器吗,哪类网站不适合使用虚拟主机?
- 华胜天成收购中天安泰10%股权 出手网络信息安全
- 数字逻辑复习(Wust)
- 福昕:十年暗战Adobe
- 利用PPT删除图片背景(PPT图片删除背景)
热门文章
- Scratch《跳一跳》游戏源码.sb
- Springboot实现短信登录验证
- android app 适应不同大小屏幕_Android UI自适应不同分辨率屏幕2套解决方案
- [Pytorch系列-33]:数据集 - torchvision与MNIST数据集
- 蜘蛛纸牌 java代码_源代码-Java实现蜘蛛纸牌.doc
- 解读央行《区块链能做什么、不能做什么?》
- 脱离996,Chrome DevTools 面板全攻略!!!(收藏)
- Go语言实现简单的留言本
- 为什么微信开始限制公共账号,营销号该如何转型
- 一个简单进程调度器的实现和分析