首页 > 编程语言 >java操作pdf文本域填充内容

java操作pdf文本域填充内容

时间:2024-11-16 16:07:09浏览次数:1  
标签:kernel java 填充 itextpdf import pdf document com

引入jar包

    <dependencies>

        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itext7-core</artifactId>
            <version>7.2.5</version>
            <type>pom</type>
        </dependency>

    </dependencies>

  代码

package org.example.TestPdf;
import com.itextpdf.forms.PdfAcroForm;
import com.itextpdf.kernel.colors.DeviceRgb;
import com.itextpdf.kernel.font.PdfFont;
import com.itextpdf.kernel.font.PdfFontFactory;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.PdfWriter;
import java.util.HashMap;
import java.util.Map;

/**
 * @author pei
 */
public class Mypdf {

    public static void main(String[] args) {
        PdfDocument document =null;
        try {
            document =  new PdfDocument(new PdfReader("C:\\Users\\pei\\Desktop\\888999.pdf"),new PdfWriter("C:\\Users\\pei\\Desktop\\666666.pdf"));
            System.out.println("document==="+document);
            PdfAcroForm form = PdfAcroForm.getAcroForm(document,false);
            System.out.println("from=="+form);
            // 设置字体 times_roman
            PdfFont font = PdfFontFactory.createFont("STSong-Light", "UniGB-UCS2-H", PdfFontFactory.EmbeddingStrategy.PREFER_NOT_EMBEDDED);
            //设置颜色
            DeviceRgb color = new DeviceRgb(0,0,0);
            //文本填充
            Map<String,String> map = new HashMap<>();
            map.put("name","张三");
            map.put("name1","李四");
            for(Map.Entry<String,String> entry:map.entrySet()){
                System.out.println("key==="+entry.getKey());
                form.getFormFields().get(entry.getKey()).setValue(entry.getValue()).setColor(color).setFont(font);

            }

            //清除格式
            form.flattenFields();

        }catch (Exception e){
           e.printStackTrace();
        }finally {
            if(null !=document){
                //关闭流
                document.close();
            }

        }

    }

}

  

 

原文地址

https://blog.csdn.net/FBB360JAVA/article/details/131449577

 

标签:kernel,java,填充,itextpdf,import,pdf,document,com
From: https://www.cnblogs.com/xianz666/p/18549435

相关文章

  • Java基础——网络编程
    可以让设备中的程序与网络上其他设备中的程序进行数据交互(实现网络通信的)。1.基本的通信架构基本的通信架构有2种形式:CS架构(Client客户端/Server服务端)、BS架构(Browser浏览器/Server服务端)无论CS架构,还是BS架构的软件都必须依赖网络编程2.网络通信的三要素2.1.IP全称互......
  • Java基础——多线程
    1.线程是一个程序内部的一条执行流程程序中如果只有一条执行流程,那这个程序就是单线程的程序2.多线程指从软硬件上实现的多条执行流程的技术(多条线程由CPU负责调度执行)2.1.如何创建多条线程Java通过java.lang.Thread类的对象来代表线程2.1.1.方式一:继承Thread类//1......
  • Java-面向对象(下)
    下面让我们继续学习面向对象类的继承在现有类的基础上去构建一个新的类。现有类叫做基类(baseclass)、超类(superclass)新的类叫做派生类(derivedclass)、子类(孩子类)(childclass)如果一个类想要继承另外一个类,需要用到extends关键字。class基类{}class子类extends......
  • #Java-面向对象进阶-1
    1.static静态属性static是Java中的一个修饰符,可用来修饰成员变量、成员方法a.静态变量被static修饰的成员变量称为静态变量静态变量被该类的所有成员共享调用方式:类名调用(推荐)对象名调用例:创建方法//在创建的类中:publicstaticStringname;调用:假设类为:Stud......
  • #Java-面向对象进阶-多态
    1.多态多态是面向对象三大特征之一,表示同类型的对象表现不同的形态表现形式:父类类型对象名称=子类对象;多态的前提:有继承关系有父类引用子类Fuf=newZi();有方法重写使用场景举例:当需要写一个注册的方法,但是这个方法要能实现不同对象的注册例如:老......
  • Java序列化与反序列化深度解析
    一、引言在Java开发中,序列化与反序列化是非常重要的概念和技术手段。它允许我们将对象转换为字节流以便于存储或传输,然后在需要的时候再将字节流还原为对象。这一机制在很多场景中都有着广泛的应用,例如数据持久化、分布式系统中的远程方法调用(RMI)、缓存等。本文将深入探讨......
  • 7.Java 注解和元注解(三种注解、四种元注解)
    一、注解概述注解也被称为元数据,用于修饰包、类、方法等数据信息和注释一样,注解不影响程序逻辑,但注解可以被编译或运行,相当于嵌入在代码中的补充信息在JavaSE中,注解使用的目的比较简单,例如标记过时的功能,忽略警告等JavaEE中注解会充当更加重要的角色二、三种注......
  • JavaScript判断用户设备类型:PC端与移动端的区分方法
    在JavaScript中,可以通过检查用户代理字符串(UserAgentString)来判断用户设备类型,即访问网站的是PC端还是移动端设备。用户代理字符串是浏览器在发送HTTP请求时附带的一段信息,它包含了浏览器类型、版本、操作系统以及设备类型等信息。以下是一个简单的示例代码,用于判断用户......
  • 一文详解Java反射技术
    Java反射什么是Java反射以及引出反射的背景?Class类如何获取一个class的Class实例Class类的使用获取属性获取调用方法获取注解信息获取构造方法反射的应用什么是Java反射以及引出反射的背景?Java程序中的对象有两种类型,编译时类型和运行时类型,而很多时候编译......
  • Java反序列化-Commons Collections3利用链分析详解
    介绍CC3与CC1和CC6的主要区别在于,CC1和CC6依赖反射机制来执行Runtime.getRuntime().exec()等危险命令,而如果服务器将这些方法列入黑名单,这两种方式就会失效。相比之下,CC3通过类加载器动态加载恶意类来执行危险函数,绕过黑名单限制,从而达到命令执行的目的。公众号:T......