返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java 使用 itext 向PDF插入数据和图片
  • 355
分享到

Java 使用 itext 向PDF插入数据和图片

javapdf 2023-09-03 09:09:50 355人浏览 独家记忆
摘要

Java 使用 itext 向pdf插入数据和图片 一、下载Adobe Acrobat DC 二、制作模板 1、准备一个Word模板,并转换成PDF格式 2、使用Adobe Acrobat DC打

Java 使用 itext 向pdf插入数据和图片

一、下载Adobe Acrobat DC

在这里插入图片描述

二、制作模板

1、准备一个Word模板,并转换成PDF格式

在这里插入图片描述

2、使用Adobe Acrobat DC打开PDF文档,并在右侧搜索框搜索表单,点击准备表单

在这里插入图片描述

3、点击开始,制作PDF表单

在这里插入图片描述

4、扫描完成后如下图,蓝白色框就是可编辑表单

在这里插入图片描述

5、点击表单编辑表单名称以及插入时的字体大小样式等,如果没有设置字体大小,数据写入时会将字体会根据表单的高度自适应大小

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

6、编辑完成后保存PDF模板

三、在Java中使用

import com.itextpdf.text.DocumentException;import com.itextpdf.text.Image;import com.itextpdf.text.Rectangle;import com.itextpdf.text.pdf.*;import java.io.*;import java.NIO.file.Files;import java.util.Calendar;import java.util.HashMap;import java.util.Map;public class PDFUtil {    private static void insertImage(AcroFields fORM, PdfStamper stamper, String filedName, String url) throws IOException, DocumentException {        int pageNo = form.getFieldPositions(filedName).get(0).page;        Rectangle signRect = form.getFieldPositions(filedName).get(0).position;        float x = signRect.getLeft();        float y = signRect.getBottom();        Image image = Image.getInstance(url);        // 获取操作的页面        PdfContentByte under = stamper.getOverContent(pageNo);        // 根据域的大小缩放图片        image.scaleToFit(signRect.getWidth(), signRect.getHeight());        // 添加图片        image.setAbsolutePosition(x, y);        under.addImage(image);    }    public static Boolean pdfTemplateInsert(String templateUrl, String outputFileUrl, Map<String, Object> templateValueMap, Map<String, String> templateImageMap) {        boolean success = true;        OutputStream os = null;        PdfStamper ps = null;        PdfReader reader = null;        try {            os = Files.newOutputStream(new File(outputFileUrl).toPath());            //读取pdf表单            reader = new PdfReader(templateUrl);            //根据表单生成一个新的pdf文件            ps = new PdfStamper(reader, os);            //获取pdf表单            AcroFields form = ps.getAcroFields();            //给表单中添加中文字体            BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);            form.addSubstitutionFont(bf);            if (null != templateValueMap && !templateValueMap.isEmpty()) {                for (String key : templateValueMap.keySet()) {                    form.setField(key, String.valueOf(templateValueMap.get(key)));                }            }            if (null != templateImageMap && !templateImageMap.isEmpty()) {                for (String key : templateImageMap.keySet()) {                    insertImage(form, ps, key, templateImageMap.get(key));                }            }            ps.setFormFlattening(true);        } catch (Exception e) {            success = false;        } finally {            try {                ps.close();                reader.close();                os.close();            } catch (Exception e) {                e.printStackTrace();            }        }        return success;    }    public static void main(String[] args) {        //模板路径        String inputUrl = "E:/Desktop/test/demo/itext-demo.pdf";        //生成的文件路径        String outputUrl = "E:/Desktop/test/demo/itext-demo-output.pdf";        Map<String, Object> data = new HashMap<>();        data.put("name", "张山");        data.put("year", "2000年10月");        data.put("phone", "13032451234");        data.put("gangwei", "Java开发");        data.put("introduceOneself", "熟练使用Java常用框架springmybatis等");        //图片地址        String imageUrl = "E:/Desktop/test/demo/1.jpeg";        Map<String, String> templateImageMap = new HashMap<>();        templateImageMap.put("image", imageUrl);        PDFUtil.pdfTemplateInsert(inputUrl, outputUrl, data, templateImageMap);    }}

执行结果

在这里插入图片描述

来源地址:https://blog.csdn.net/HP1004/article/details/131912387

--结束END--

本文标题: Java 使用 itext 向PDF插入数据和图片

本文链接: https://lsjlt.com/news/391998.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java 使用 itext 向PDF插入数据和图片
    Java 使用 itext 向PDF插入数据和图片 一、下载Adobe Acrobat DC 二、制作模板 1、准备一个word模板,并转换成PDF格式 2、使用Adobe Acrobat DC打...
    99+
    2023-09-03
    java pdf
  • java利用pdfbox+poi往pdf插入数据
    目录指定页码插入/替换思路1(插入):思路2(替换):啰嗦几句总结指定页码插入/替换 pdfbox好像没有专门提供这个方法,但是现有的方法多重组合起来也能实现这个功能, 需求:一个p...
    99+
    2024-04-02
  • 使用java怎么向mysql数据库批量插入数据
    今天就跟大家聊聊有关使用java怎么向mysql数据库批量插入数据,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. An...
    99+
    2023-06-14
  • java中怎么用pdfbox+poi往pdf插入数据
    今天小编给大家分享一下java中怎么用pdfbox+poi往pdf插入数据的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。指定...
    99+
    2023-06-29
  • 使用java怎么向数组插入元素
    这篇文章将为大家详细讲解有关使用java怎么向数组插入元素,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分...
    99+
    2023-06-14
  • 【Java】itext 实现 html根据模板生成pdf 中文不显示/图片不显示问题解决
    引言: 工作中需要使用生成pdf记录,选取使用的是itext 生成 pdf方式。分享下实现方式及遇到的问题。 实现效果 这里随便找个html课程表作为示例,添加了几张图片为了展示图片转pdf功能。 ...
    99+
    2023-10-27
    java html pdf
  • 如何使用 PHP 函数向数据库中插入数据?
    向数据库中插入数据需要使用 php 的 mysqli_query() 函数,步骤如下:1. 连接到数据库。2. 准备查询语句。3. 准备语句。4. 绑定参数。5. 设置要插入的值。6. ...
    99+
    2024-05-03
    数据库 php mysql
  • Java怎么实现pdf和Excel的生成及数据动态插入、导出
    本篇内容介绍了“Java怎么实现pdf和Excel的生成及数据动态插入、导出”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读...
    99+
    2024-04-02
  • Qt数据库应用之实现图片转pdf
    目录一、前言二、功能特点三、体验地址四、效果图五、相关代码一、前言 用户的需求真的是千奇百怪,刚做完不同页面横向纵向排版的需求,又来个需要图片转pdf的需求,提供静态函数直接使用。 ...
    99+
    2024-04-02
  • 如何使用 JDBC 将图像插入数据库
    您可以使用以下步骤使用JDBC将图像插入数据库:1. 首先,您需要创建一个数据库表来存储图像。表中的列应包括一个用于存储图像二进制数...
    99+
    2023-10-10
    JDBC
  • java中向mysql数据库插入中文数据出现乱码
    数据库插入中文乱码首先需要排除的问题是,MySQL的默认字符集和对应database的字符集是什么通常为了以后的兼容性,建议将整个MySQL的默认字符集都设置成utf-8。可以使用以下命令查看默认字符集:mysql> SHOW VARIAB...
    99+
    2014-07-23
    java入门 java mysql 中文 乱码
  • Java怎么实现pdf和Excel的生成及数据动态插入与导出
    这篇文章主要介绍“Java怎么实现pdf和Excel的生成及数据动态插入与导出”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java怎么实现pdf和Excel的生成及数据动态插入与导出”文章能帮助大...
    99+
    2023-06-27
  • 数据库中如何插入修改图片BLOB字段
    插入示例 1.     利用存储过程进行插入数据 -- 创建存储图片的表 CREATE TABLE IMAGE_LOB ( T_ID VARCHAR2 ...
    99+
    2024-04-02
  • 如何使用.NET向SQL Server数据库存取图片
    这篇文章主要介绍“如何使用.NET向SQL Server数据库存取图片”,在日常操作中,相信很多人在如何使用.NET向SQL Server数据库存取图片问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用....
    99+
    2023-06-18
  • Java使用pdfbox实现给pdf文件加图片水印
    目录引入依赖代码效果引入依赖 <dependency> <groupId>org.apache.pdfbox</groupId&...
    99+
    2022-11-16
    Java pdfbox PDF添加图片水印 Java PDF添加图片水印 Java PDF水印
  • java向mysql插入数据出现乱码解决方法
    Java 向mysql插入数据乱码出现问号解决方法:(推荐:java视频教程)java向数据库插入数据出现问号的乱码问题,首先确定数据库的编码格式是否正确,可以在mysql的数据库中insert一个语句看看是不是可以正常显示中文,如果可以正...
    99+
    2018-04-06
    java
  • Java实现百万级数据量向MySQL批量插入
    业务背景: 大数据向mysql表同步百万级数量,我们需要将大数据表里同步过来的数据分别向三张业务表做数据同步,最终将业务表的数据展示给前台进行相关业务操作。 数据量级 大数据表:700w数据量 三张业务表分别需要同步:23w、80w、680...
    99+
    2023-08-25
    mysql java mybatis
  • java怎么将图片存入mysql数据库
    要将图片存入MySQL数据库,可以使用以下步骤: 1、首先,将图片转换为字节数组。可以使用Java的FileInputStream和...
    99+
    2024-04-19
    java mysql
  • 用python 修改word中表格数据,插入图片 +实例分析
    今天学习了关于word表格修改数据,插入图片的知识。Word表格跟对普通的文章段落处理不太一样,下面我就用我学校的请假条表格来带大家一一分析。 1.导入python-docx库 在cmd中导入该库 pip install python...
    99+
    2024-04-02
  • 4.SQL--创建成绩表和向表内插入数据
    --创建成绩表,并向表内插入数据create table SC(Scid varchar(10),Cid varchar(10),score decimal(18,1))--向表内插入数...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作