美文网首页
1,Java 制作pdf模板赋值

1,Java 制作pdf模板赋值

作者: 滔滔逐浪 | 来源:发表于2022-03-24 10:48 被阅读0次

1,先制作word文档;
2,把word文档转成pdf


image.png

3,打开pdf 在线制作工具

https://www.pdfescape.com/account/login/?des=o820D530C24C7B3BE275F55CD3A69266284C2D631093810DB

4,上传制作好的pdf 文件

5,给每个字段的对象属性赋字段值


image.png

6,在name 那里赋值就可以


image.png
7.pom.xml文件:
  <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itextpdf</artifactId>
            <version>5.4.3</version>
        </dependency>

8.工具类文件:

 public void instanceEnded() throws Exception {
        super.instanceEnded();
        Map params = po.getParameters();
        BtMettingsBeforeLogic logic = new BtMettingsBeforeLogic(dbc);
        Map data = logic.view(params);
        // 生成pdf并上传
        //http://localhost:8086/mss_cw/core/system/control/CommonDownload.jsp?groupId=pdfId 访问路径
        if(null != data){
            byte[] bytes = new BtMettingsBeforePDFLogic(dbc).getPdfBytes(data, "btmeetingsbefore_template.pdf");
         
        }
    }

package mss.bt.bt005.component;

import com.itextpdf.text.pdf.AcroFields;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import com.zbiti.core.SystemManager;
import com.zbiti.core.components.BaseComponent;
import com.zbiti.core.util.db.DBConnection;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.util.ArrayList;
import java.util.Map;

public class BtMettingsBeforePDFLogic extends BaseComponent {

    public BtMettingsBeforePDFLogic(DBConnection dbc) {
        super(dbc);
    }

    /**
     * 获取pdf模板路径
     *
     * @return
     */
    private String getFilePath() {
        String configPath = SystemManager.getConfigPath();
        String filePath = configPath + "mss" + File.separator
                + "bt" + File.separator + "pdfTemplate" + File.separator;
        return filePath;
    }

    /**
     * 获取pdf内容
     *
     * @param data
     * @param fileName
     * @return
     * @throws Exception
     */
    public byte[] getPdfBytes(Map<String, String> data, String fileName) throws Exception {
        // pdf模板所在路径
        PdfReader reader = new PdfReader(this.getFilePath() + fileName);
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        PdfStamper ps = new PdfStamper(reader, bos);
        // 使用中文字体
        BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
        ArrayList<BaseFont> fontList = new ArrayList<BaseFont>();
        fontList.add(bf);
        AcroFields fields = ps.getAcroFields();
        fields.setSubstitutionFonts(fontList);
        fillData(fields, data);
        //必须要调用这个,否则文档不会生成的
        ps.setFormFlattening(true);
        ps.close();

        byte[] bytes = bos.toByteArray();
        bos.close();
        reader.close();
        return bytes;
    }

    /**
     * 填充模板中的数据
     */
    private void fillData(AcroFields fields, Map<String, String> data) {
        try {
            for (String key : data.keySet()) {
                String value = data.get(key);
                // 为字段赋值,注意字段名称是区分大小写的
                fields.setField(key, value);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


相关文章

  • 1,Java 制作pdf模板赋值

    1,先制作word文档;2,把word文档转成pdf 3,打开pdf 在线制作工具 https://www.pdf...

  • JAVA实现PDF和EXCEL生成和数据动态插入以及导出

    一、Java 实现 PDF 的生成和数据动态插入、导出功能 1、第一步:PDF 制作模板 因为 PDF 常用的软件...

  • Java使用itext按模板生成PDF文件

    1. 制作PDF模板 目前制作PDF模板工具别无他物,唯有使用伟大的Adobe公司提供的Adobe Acrobat...

  • Java生成PDF

    Java生成PDF有两种办法:1.利用PDF模板,读入模板,填充数据,生成带数据的PDF。 ...

  • 【第13期】springboot: springboot操作pd

    原创文章,转载请注明原文章地址,谢谢! 一、pdf模板制作 1)word编辑模板 2)转成pdf模板 这个比较简单...

  • pdf生成

    Java生成PDF有两种办法:1.利用PDF模板,读入模板,填充数据,生成带数据的PDF。 Jasperrepor...

  • iText7 大批量文字时,html转pdf操作文档

    一、准备工作 1.根据原有的pdf模板,制作html模板。 图一为原有的pdf格式的模板,图中的蓝色区域是可以填充...

  • iText使用PDF模板生成输出PDF

    下载Adobe Acrobat 工具制作PDF模板,对模板中的变量使用表单进行设置,如下图: 代码实现: 执行代码...

  • Kotlin基础

    1.val 常量 相当于java final修饰的变量 2.var 变量 可以重新赋值的变量 3.字符串模板 ${...

  • 小程序制作案例

    小程序制作案例 1.选择模板. 选择小程序制作下的模板市场,选择合适的模板点击使用模板。 2 .初步认识模板界面的...

网友评论

      本文标题:1,Java 制作pdf模板赋值

      本文链接:https://www.haomeiwen.com/subject/yaykjrtx.html