java使用itext填充pdf模板,超简单教学,有手就行

java使用itext填充pdf模板

  • 1、先去建一个Word文件,设置好想要填充的地方,留好位置,设置好下划线
  • 2、将Word另存为pdf
  • 3、打开电脑中的Adobe Acrobat pro DC(这个应该win10 都有,搜索一下就出来了),点击 文件→创建→创建表单
  • 4、然后导入刚刚生成的pdf
    • 会出来这个页面
    • 双击这个阴影部分,将名称改成你要设置的名称,后面要根据这个名称来给他赋值
    • 全部设置好以后就可以另存为了
  • 5、前期的pdf模板准备好了,就开始上代码!
    • 1、首先导入我们所需要的依赖
    • 2、上代码
    • 3、字体需要放在resources目录下
  • 6、开始测试
  • 7、看看效果
    • ok,非常完美!
      • 如果觉得这种pdf模板的方式不好,可以参考我的另一篇博文,可以不用设置pdf模板就直接生成pdf
    • 问题总结:

1、先去建一个Word文件,设置好想要填充的地方,留好位置,设置好下划线

在这里插入图片描述

2、将Word另存为pdf

在这里插入图片描述

3、打开电脑中的Adobe Acrobat pro DC(这个应该win10 都有,搜索一下就出来了),点击 文件→创建→创建表单

在这里插入图片描述

4、然后导入刚刚生成的pdf

在这里插入图片描述

会出来这个页面

在这里插入图片描述

双击这个阴影部分,将名称改成你要设置的名称,后面要根据这个名称来给他赋值

在这里插入图片描述

全部设置好以后就可以另存为了

在这里插入图片描述
在这里插入图片描述

5、前期的pdf模板准备好了,就开始上代码!

1、首先导入我们所需要的依赖

<dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13</version></dependency>

2、上代码

package com.icaremgt.admin.test;import com.itextpdf.text.Image;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.*;
import org.junit.Test;import java.io.*;
import java.util.HashMap;
import java.util.Map;public class TestPdf {@Testpublic void testPdf() {// 模板文件路径String inputFileName = "F:\\pdfWork\\1\\mytests.pdf";// 生成的文件路径String outputFileName = "F:\\pdfWork\\2\\test9.pdf";OutputStream os = null;PdfStamper ps = null;PdfReader reader = null;PdfStamper stamper = null;try {os = new FileOutputStream(new File(outputFileName));// 2 读入pdf表单reader = new PdfReader(inputFileName);// 3 根据表单生成一个新的pdfps = new PdfStamper(reader, os);// 4 获取pdf表单AcroFields form = ps.getAcroFields();// 5给表单添加中文字体BaseFont bf = BaseFont.createFont("Font/SIMYOU.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);form.addSubstitutionFont(bf);// 6查询数据================================================Map<String, Object> data = new HashMap<String, Object>();data.put("childrenName", "李四");data.put("gender", "男");data.put("year", "2021");data.put("month", "09");data.put("day", "23");data.put("userName", "张三");data.put("address", "河南省案发时发放手动阀是的");// 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();}}}}

3、字体需要放在resources目录下

BaseFont bf = BaseFont.createFont("Font/SIMYOU.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

这个SIMYOU.TTF就是字体 (字体下载地址)
在这里插入图片描述

6、开始测试

在这里插入图片描述
导出成功!
在这里插入图片描述

7、看看效果

在这里插入图片描述

ok,非常完美!

可以关注我,下一期讲java使用itext将图片放到pdf模板的指定位置

如果觉得这种pdf模板的方式不好,可以参考我的另一篇博文,可以不用设置pdf模板就直接生成pdf

java使用itext直接生成pdf,无需模板

问题总结:

@gao1123576431 这位老哥提出问题说赋值了,但是最后导出的PDF是没有值得,后来他给出了解决办法,引入itext-asian

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570410.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java使用itext将图片放到pdf模板的指定位置

java使用itext将图片放到pdf模板的指定位置前面的准备步骤可以参考我的上一篇文章这里直接上代码这里用的图片是路径的形式&#xff0c;还有种情况是图片是base64的时候&#xff0c;这种情况就需要转一下图片格式了&#xff0c;具体代码如下&#xff1a;前面的准备步骤可以参考…

KVM使用

这里使用的是Ubuntu18.04桌面版虚拟机 关于KVM可以看一下我之前的博客,有一些简单的介绍。 1.在打开虚拟机之前先开启此虚拟机的虚拟化功能。 2.安装KVM及其依赖项 wywy-virtual-machine:~$ sudo apt install qemu qemu-kvm libvirt-bin bridge-utils virt-manager 3.安装完成…

mybatis-plus3.5.1学习笔记

1、ID 1>id策略有6种&#xff1a; 想要id自增就在id上面添加 TableId(type IdType.AUTO)mybaits-plus的默认的主键策略是&#xff1a; TableId(type IdType.ID_WORKER)这样生成的是19位的数字id。 有的人喜欢使用UUID&#xff1a; TableId(type IdType.UUID)2、cre…

Python网络编程之socket编程

什么是Socket&#xff1f; Socket是应用层与TCP/IP协议族通信的中间软件抽象层&#xff0c;它是一组接口。在设计模式中&#xff0c;Socket其实就是一个门面模式&#xff0c;它把复杂的TCP/IP协议族隐藏在Socket接口后面&#xff0c;对用户来说&#xff0c;一组简单的接口就是全…

idea必装插件

1、lombok 这个是自动生成getter,setter的插件工具&#xff0c;现在idea已经集成了&#xff0c;好像不用单独去插件市场下载。 2、Free MyBatis Tool 官方话术&#xff1a; Free MyBatis Tool 是一款增强idea对mybatis支持的插件 主要功能如下&#xff1a; 生成mapper xml文…

mongodb查询分页优化

mongodb查询分页优化 转自&#xff1a;https://blog.csdn.net/chunqiuwei/article/details/11669885项目中需要用mongodb来进行数据测存储和查询,其中涉及到分页:分页的要求如下 1)每页显示10条 由于数据量太大,cursor.count()获取的符合条件的数据量也很大,导致分页得分好几万…

Contest Hunter 0103最短Hamilton路径 【状压dp】 By cellur925

题目传送门 Hamilton路径的定义&#xff1a;从0&#xff08;起点&#xff09;到n-1&#xff08;终点&#xff09;不重不漏地经过每个点恰好一次。 由于数据范围非常小&#xff0c;考虑状压。如NOIP2017宝藏一题&#xff0c;把状态压缩设为n个点是否已到达的二进制数。1表示到达…

Failed to execute operation: No such file or directory解决办法

在给Linux服务器安装docker的时候报错解决办法&#xff1a;1&#xff0c;在/etc/systemd/system/目录下创建docker.service2&#xff0c;进入docker.service文件3&#xff0c;将下面的代码复制进去4&#xff0c;复制进去以后&#xff0c;按Esc&#xff0c;在输入&#xff1a;wq…

The goal you specified requires a project to execute but there is no POM in this directory

使用maven安装jar包到本地仓库时遇到The goal you specified requires a project to execute but there is no POM in this directory我的命令是 mvn install:install-file -DfileD:\cao\gofastdfs-2.0.jar -DgroupIdcom.aaa-DartifactIdgofastdfs -Dversion2.0 找遍了百度才…

python实现二叉树的镜像

题目描述 操作给定的二叉树&#xff0c;将其变换为源二叉树的镜像。输入描述: 二叉树的镜像定义&#xff1a;源二叉树 8/ \6 10/ \ / \5 7 9 11镜像二叉树8/ \10 6/ \ / \11 9 7 5 # -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # …

java使用itext生成pdf,超简单教学,有手就行

前言&#xff1a;以前出过两期用itext填充pdf的文章&#xff0c;有人说那个会那字体加入到pdf中&#xff0c;导致pdf占用内存过大&#xff0c;那么今天就来分享一期另外的方法。 java使用itext生成pdf1、导包2、直接贴代码&#xff0c;然后大家看注释3、效果1、导包 <depen…

2018-2019-1 20165221 《信息安全系统设计基础》第一周学习总结

2018-2019-1 20165221 《信息安全系统设计基础》第一周学习总结 教材学习总结 有关vim 打开方式&#xff1a;vim [文件名]按i会进入insert模式&#xff0c;可以对代码进行编辑按Esc会进入普通模式&#xff0c;此时可以使用快捷键进行编辑&#xff0c;编辑方式为&#xff1a; 指…

itext5固定段落Paragraph,指定段落位置

前几期分析了怎么用itext生成pdf&#xff0c;有兴趣的可以去看看。 1&#xff0c;java使用itext生成pdf&#xff0c;超简单教学&#xff0c;有手就行 2&#xff0c;java使用itext填充pdf模板&#xff0c;超简单教学&#xff0c;有手就行 然后现在有了新的需求&#xff0c;需…

wordcount C

Gitee 代码链接&#xff1a;https://gitee.com/huangxue1111/codes/12rfs3ztj5ga8ymce7qi910 #include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>#define IN 1#define OUT 0void main() {FILE *fp;int length;fp fopen("…

PS中如何使用通道计算来进行美白

打开本机的Photoshow&#xff0c;把要美白的图片添加进来。 通过快捷键ctrlj 创建一个图层副本。 然后选择通道中的蓝色&#xff0c;复制通道&#xff0c;这里说明一下为什么要选择蓝色&#xff1a;因为蓝色和绿色是较暗的&#xff0c;把暗的选出来&#xff0c;目的是为了更…

[学习笔记]质数

&#xff08;本篇并不适合初学者看&#xff09; 质数&#xff1a;除1和本身之外&#xff0c;没有一个数能够整除它。&#xff08;否则是合数&#xff09; 1.质数判定&#xff1a; ①根号试除法。 优点&#xff1a;容易写&#xff0c;对于少量的需要判断的质数&#xff0c;比较可…

Eclipse中导入Java项目出现“No projects are found to import”

如图所示&#xff1a; &#xff0c; 这其实是你的项目中缺少了两个文件&#xff1a;.classpath文件和 .project文件 所以eclipse找不到你的项目了。 解决办法&#xff1a; 在你的Eclipse中再新建一个新的项目&#xff0c;项目的类型和项目名和你想要导入的项目名一样&am…

USB 设备驱动(写给自己看的)

集线器与控制器&#xff08;USB地址7bit&#xff09;设备&#xff0c;配置&#xff0c;端点&#xff0c;接口USB1.0&#xff08;低速1.2&#xff09;&#xff0c;1.1&#xff08;全速450m&#xff09;,2.0&#xff08;高速&#xff0c;电流传输&#xff09;区别引脚4根&#xf…

为什么tomcat在eclipse中启动了,访问不了

tomcat在eclipse中启动不了&#xff0c;有很多中情况。 我把这些可能出现的情况总结了起来&#xff1a; 原因1&#xff1a; 项目的发布目录没有在tomcat下的webapps文件下&#xff0c;导致项目启动不了。 解决&#xff1a;先把tomcat中的服务remove出来 然后双击test1服务…

数据库(表)导入导出备份

一、介绍逻辑备份是指使用工具export将数据对象的结构和数据导出到文件的过程。逻辑恢复是指当数据库对象被误操作而损坏后使用工具import利用备份的文件把数据对象导入到数据库的过程。物理备份即可在数据库open的状态下进行也可在关闭数据库后进行&#xff0c;但是逻辑备份和…