当前位置:首页 » 《关注互联网》 » 正文

java 根据pdf模板生成文件,插入文字、选项、签名、公章(详细步骤和代码)

0 人参与  2024年11月03日 18:41  分类 : 《关注互联网》  评论

点击全文阅读


java 根据pdf模板生成文件,插入文字、选项、签名、公章(详细步骤和代码)

成果使用word,制作一个模板。使用pdf编辑器,生成pdf模板。1.从做好的word导入来创建pdf2.插入文字域3.插入选项域4.插入图片域,预插入签名和公章5.模板做好了,我们进行保存。 java 实现引入依赖代码实现 执行测试

成果

在这里插入图片描述

使用word,制作一个模板。

在这里插入图片描述

使用pdf编辑器,生成pdf模板。

我这里使用福昕pdf编辑器,其他pdf编辑器(如Adobe Acrobat)也可以用但是大多要钱。

1.从做好的word导入来创建pdf

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

2.插入文字域

在这里插入图片描述

右键文字域,填入字段与属性
在这里插入图片描述

3.插入选项域

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

导出值不要忘记填写,与代码对应上。
在这里插入图片描述

4.插入图片域,预插入签名和公章

在这里插入图片描述
注意:外观这里的边框和填充都选无色,否则图片会被填充色盖住;
在这里插入图片描述
注意:选项这里我们选择只显示标签。
在这里插入图片描述

5.模板做好了,我们进行保存。

在这里插入图片描述

java 实现

引入依赖

<!-- pdf --><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.2</version></dependency><!--中文字体--><dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency><!--html xml 转为pdf--><dependency><groupId>com.itextpdf.tool</groupId><artifactId>xmlworker</artifactId><version>5.5.11</version></dependency>

代码实现

package com.tencent.qcloud.roomservice.webrtc.utils;import com.alibaba.fastjson.JSONObject;import com.itextpdf.text.Image;import com.itextpdf.text.Rectangle;import com.itextpdf.text.pdf.*;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileOutputStream;import java.util.Map;/** * @author dume * @ClassName PdfTest * @description: pdf模板操作 * @date 2024年07月26日 * @version: 1.0 */public class PdfTest {    public static void main(String[] args) {        //测试执行        FillTemplate(                "C:\\test\\申请表.pdf",                "C:\\test\\新申请表.pdf",                "杜小七",                "辽宁大连",                "跑步",                "Yes",                "Yes",                "Yes",                "C:\\test\\电子签名.png",                "C:\\test\\公章.png"        );    }    /**     * 根据模板生成pdf     * @param sourcesPath 原文件路径     * @param targetPath  生成文件路径     * @param name     参数     * @param address  参数     * @param hobby    参数     * @param select_1  选项     * @param select_2  选项     * @param select_3  选项     * @param signPath  签名图片路径     * @param gongzhangPath  公章图片路径     */    public static void FillTemplate(            String sourcesPath,            String targetPath,            String name,            String address,            String hobby,            String select_1,            String select_2,            String select_3,            String signPath,            String gongzhangPath            ){        //设置参数        JSONObject jsonObject = new JSONObject();        jsonObject.put("name",name);        jsonObject.put("address",address);        jsonObject.put("hobby",hobby);        jsonObject.put("select_1",select_1);        jsonObject.put("select_2",select_2);        jsonObject.put("select_3",select_3);        // 填充创建pdf        PdfReader reader = null;        PdfStamper stamp = null;        ByteArrayOutputStream baos =null;        try {            reader = new PdfReader( sourcesPath);            File deskFile = new File(targetPath);            stamp = new PdfStamper(reader, new FileOutputStream(deskFile));            // 取出报表模板中的所有字段            AcroFields form = stamp.getAcroFields();            System.out.println(form.getFields().keySet());            //设置宋体            BaseFont song =BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);            if (jsonObject != null) {                for (Map.Entry<String, Object> entry : jsonObject.entrySet()) {                    String key = entry.getKey();                    String value = entry.getValue().toString();                    //保存选项                    if (key.startsWith("select")) {                        form.setField(key, value, true);                    //保存文字                    }else {                        form.setFieldProperty(key, "textfont", song, null);                        form.setField(key, value);                    }                }            }            //插入签名            insertImage(form,stamp,"sign",signPath);            //插入公章            insertImage(form,stamp,"gongzhang",gongzhangPath);            //保存修改            stamp.setFormFlattening(true);        }catch (Exception e){            e.printStackTrace();        }finally {            if (stamp != null) {                try{                    stamp.close();                }catch (Exception e){                    e.printStackTrace();                }            }            if (reader != null) {                try{                    reader.close();                }catch (Exception e){                    e.printStackTrace();                }            }            if (baos != null) {                try{                    baos.close();                }catch (Exception e){                    e.printStackTrace();                }            }        }    }    /**     * pdf模板插入图片     * @param form     * @param stamper     * @param filedName     * @param url     * @return     */    public  static boolean insertImage(AcroFields form, PdfStamper stamper, String filedName, String url) {        try {            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);        }catch (Exception e){            return false;        }        return true;    }}

执行测试

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


点击全文阅读


本文链接:http://zhangshiyu.com/post/181986.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 祖母寿宴,侯府冒牌嫡女被打脸了(沈屿安秦秀婉)阅读 -
  • 《雕花锦年,昭都旧梦》(裴辞鹤昭都)完结版小说全文免费阅读_最新热门小说《雕花锦年,昭都旧梦》(裴辞鹤昭都) -
  • 郊区41号(许洛竹王云云)完整版免费阅读_最新全本小说郊区41号(许洛竹王云云) -
  • 负我情深几许(白诗茵陆司宴)完结版小说阅读_最热门小说排行榜负我情深几许白诗茵陆司宴 -
  • 九胞胎孕妇赖上我萱萱蓉蓉免费阅读全文_免费小说在线看九胞胎孕妇赖上我萱萱蓉蓉 -
  • 为保白月光,侯爷拿我抵了债(谢景安花田)小说完结版_完结版小说全文免费阅读为保白月光,侯爷拿我抵了债谢景安花田 -
  • 陆望程映川上官硕《我的阿爹是带攻略系统的替身》最新章节阅读_(我的阿爹是带攻略系统的替身)全章节免费在线阅读陆望程映川上官硕
  • 郑雅琴魏旭明免费阅读_郑雅琴魏旭明小说全文阅读笔趣阁
  • 头条热门小说《乔书意贺宴临(乔书意贺宴临)》乔书意贺宴临(全集完整小说大结局)全文阅读笔趣阁
  • 完结好看小说跨年夜,老婆初恋送儿子故意出车祸_沈月柔林瀚枫完结的小说免费阅读推荐
  • 热推《郑雅琴魏旭明》郑雅琴魏旭明~小说全文阅读~完本【已完结】笔趣阁
  • 《你的遗憾与我无关》宋怀川冯洛洛无弹窗小说免费阅读_免费小说大全《你的遗憾与我无关》宋怀川冯洛洛 -

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1