一、先创建pdf模板

1.先用word做出界面

5b46a9ea0d8d

image.png

2.再转换成pdf格式

5b46a9ea0d8d

image.png

5b46a9ea0d8d

image.png

3.用Adobe Acrobat 打开你刚刚用word转换成的pdf

5b46a9ea0d8d

image.png

会出现如下界面

5b46a9ea0d8d

image.png

下一步

5b46a9ea0d8d

image.png

点击浏览,选择刚才你转换好的pdf

5b46a9ea0d8d

image.png

下一步

4.打开后它会自动侦测并命名表单域,右键表单域,点击属性,出现文本域属性对话框,有的人说要改成中文字体,可是我没有改一样成功啦

5b46a9ea0d8d

image.png

5.一般情况下不需要修改什么东西,至少我没有修改哦

5b46a9ea0d8d

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目录下。

5b46a9ea0d8d

image.png

java pdf模版的遍历_java使用itext操作填充pdf模板相关推荐

  1. java pdf模板 表单 多页_java使用itext操作填充pdf模板,(根据一个模板生成多页数据)...

    //我自己的数据源 final List rows = pa.getRows(); //每一条数据代表一个pdf表格 Listlist = new ArrayList(); try { PdfStam ...

  2. java 设置纸张大小设置_java 用itext设置pdf纸张大小操作

    做快递面单打印模板,快递要求纸张大小100 x 150mm. PageSize.A4=595 x 842 A4尺寸=210mm×297mm 故设置纸张大小: public static final R ...

  3. java epub 删除一页_java如何实现批量删除pdf指定的页数

    依赖: org.apache.pdfbox pdfbox-app 1.8.10 java 用PDFBox 删除 PDF文件中的某一页,前n页,后n页,效率低,不推荐使用 package com.eve ...

  4. java pdf 首行缩进_java使用iText生成pdf文档的对齐方式

    一.前言 在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成PDF报表的Java组件--iText.通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超级连接显示或 ...

  5. java读pdf一行_java 用itext解析一个pdf文件, 一行数据为一个对象,怎么解析

    展开全部 一.iText介绍 iText是着名的开放源e68a843231313335323631343130323136353331333431363536码的站点sourceforge一个项目,是 ...

  6. java pdf 转txt文件_java – 使用iText将TXT文件转换为PDF(保持格式化)

    我正在尝试使用iText库将.txt文件转换为.pdf文件. 我面临的问题如下: 我在txt文件中有一个清晰的格式,类似于: TEXT ******************* Other text h ...

  7. java html转pdf 无法支持中文_java项目实现html转pdf的需求(支持中文和CSS样式)

    java项目中用到了html转pdf的需求,现在写一个自己认为最优方案的总结,虽然还是有一些小的bug 为了保证中文的支持需要在被转换的html添加body的添加中文字体样式,保持这个字体和后边转换p ...

  8. java 树的层次遍历_Java遍历树的层级 - osc_jegm3yg5的个人空间 - OSCHINA - 中文开源技术交流社区...

    非科班出身,欢迎指正. 要实现的逻辑是,在一棵树中,给出任意一个节点,获取到该节点下的N个层级. 一.树型结构 下图的树中,节点上的字母代表节点的名字,字母下的代表该节点的下单金额. 二.数据准备 组 ...

  9. java arraylist枚举器遍历_Java基础(七)泛型数组列表ArrayList与枚举类Enum

    一.泛型数组列表ArrayList 1.在Java中,ArrayList类可以解决运行时动态更改数组的问题.ArrayList使用起来有点像数组,但是在添加或删除元素时,具有自动调节数组容量的功能,而 ...

最新文章

  1. 华三h3c交换机最详细的配置实例手册_华为/思科/华三基本命令对比
  2. Android数据存储之SharedPreferencesSave存储(保存数据,读取数据的操作)
  3. 炸弹人游戏开发系列(6):实现碰撞检测,设置移动步长
  4. aes256加密java_使用Java和JCEKS进行AES-256加密
  5. 服务器主板北桥芯片组有哪些,主板芯片组_目前的主板芯片组都有哪些?
  6. python数据预处理_Python数据预处理——缺失值、重复值
  7. STM32F103使用内部Flash保存参数
  8. 动态规划——有趣的数(ccf)
  9. 微模式重金招聘高级图像算法工程师
  10. 学习笔记:可持久化线段树(主席树):静态 + 动态
  11. UniversalVideoView
  12. 我狂揽16个offer:面试常问的这些问题你准备了吗?
  13. c++ 的 stl模板库_C ++中的标准模板库(STL)
  14. kernel 3.2.0 上加入自己的板级文件
  15. 在vscode中php语言配置,vscode配置go语言开发环境
  16. 所有网站都是用虚拟服务器吗,哪类网站不适合使用虚拟主机?
  17. 华胜天成收购中天安泰10%股权 出手网络信息安全
  18. 数字逻辑复习(Wust)
  19. 福昕:十年暗战Adobe
  20. 利用PPT删除图片背景(PPT图片删除背景)

热门文章

  1. Scratch《跳一跳》游戏源码.sb
  2. Springboot实现短信登录验证
  3. android app 适应不同大小屏幕_Android UI自适应不同分辨率屏幕2套解决方案
  4. [Pytorch系列-33]:数据集 - torchvision与MNIST数据集
  5. 蜘蛛纸牌 java代码_源代码-Java实现蜘蛛纸牌.doc
  6. 解读央行《区块链能做什么、不能做什么?》
  7. 脱离996,Chrome DevTools 面板全攻略!!!(收藏)
  8. Go语言实现简单的留言本
  9. 为什么微信开始限制公共账号,营销号该如何转型
  10. 一个简单进程调度器的实现和分析