java使用Abobe Acrobat DC生成模板

 更新时间:2021年04月21日 15:47:52   作者:小码66  
这篇文章主要介绍了java使用Abobe Acrobat DC生成模板,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下

一、利用word生成一个文档转成pdf

word模板

说明:转换成pdf格式

二、Abobe Acrobat DC图解

利用Abobe Acrobat DC打开pdf

步骤:文件 ---->创建------>创建表单----->选择文件(你转换成pdf文件)

这里是所要增加的文本域、图片域等功能按钮

在这里插入图片描述

在你需要的位置增加你说要的功能完成之后进行保存

在这里插入图片描述

三、java后台代码

环境maven

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

生成的模板文件放到适当的位置

在这里插入图片描述

所需要生成新的pdf代码

public @ResponseBody Object getFaceVerificationPdf(GzFaceVerification gzFaceVerification, HttpServletRequest request) throws IOException {
        try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
            try (PdfDocument document = new PdfDocument(new PdfReader(
                    new ClassPathResource("static/moban.pdf").getInputStream()), new PdfWriter(outputStream))) {

                    PdfAcroForm pdfAcroForm = PdfAcroForm.getAcroForm(document, true);
                    //对图片进行处理(如果不处理在模板中显示不出图片)
                    PdfFormField pdfFormField = pdfAcroForm.getField("frontIdCardUrl");
                    InputStream is = new FileInputStream(new File(gzFaceVerification.getFrontIdCardUrl()));
                    String str = Base64.encodeBytes(StreamUtil.inputStreamToArray(is));
                    pdfFormField.setValue(str);
                    pdfAcroForm.addField(pdfFormField);

                    PdfFormField pdfFormField1 = pdfAcroForm.getField("reverseIdCardUrl");
                    InputStream is1 = new FileInputStream(new File(gzFaceVerification.getReverseIdCardUrl()));
                    String str1 = Base64.encodeBytes(StreamUtil.inputStreamToArray(is1));
                    pdfFormField1.setValue(str1);
                    pdfAcroForm.addField(pdfFormField1);

                    PdfFormField pdfFormField2 = pdfAcroForm.getField("photo");
                    InputStream is2 = new FileInputStream(new File(gzFaceVerification.getPhoto()));
                    String str2 = Base64.encodeBytes(StreamUtil.inputStreamToArray(is2));
                    pdfFormField2.setValue(str2);
                    pdfAcroForm.addField(pdfFormField2);

                    pdfAcroForm.getField("frontIdCardUrl").setValue(gzFaceVerification.getFrontIdCardUrl());
                    pdfAcroForm.getField("reverseIdCardUrl").setValue(gzFaceVerification.getReverseIdCardUrl());
                    pdfAcroForm.getField("photo").setValue(gzFaceVerification.getPhoto());
                    pdfAcroForm.getField("comparisonResults").setValue(gzFaceVerification.getComparisonResults());
                    pdfAcroForm.getField("createTime").setValue(gzFaceVerification.getCreateTime());
                    pdfAcroForm.flattenFields();

            }
            HttpHeaders httpHeaders = new HttpHeaders();
            httpHeaders.setContentType(MediaType.APPLICATION_PDF);
            httpHeaders.setContentDispositionFormData("attachment", "test.pdf", Charset.forName("UTF-8"));

            return ResponseEntity.ok().headers(httpHeaders).body(outputStream.toByteArray());
        }
    }

到此这篇关于java使用Abobe Acrobat DC生成模板的文章就介绍到这了,更多相关Abobe Acrobat DC生成模板内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • myeclipse8.5优化技巧详解

    myeclipse8.5优化技巧详解

    本文详细介绍了myeclipse8.5优化技巧,在这里和大家分享一下,希望对大家有用。
    2017-09-09
  • 详解SpringBoot 使用Spring Initializr 快速构建工程(官方推荐)

    详解SpringBoot 使用Spring Initializr 快速构建工程(官方推荐)

    本篇文章主要介绍了SpringBoot 使用Spring Initializr 快速构建工程(官方推荐),非常具有实用价值,需要的朋友可以参考下
    2017-10-10
  • java关于并发模型中的两种锁知识点详解

    java关于并发模型中的两种锁知识点详解

    在本篇文章了小编给大家整理的是一篇关于java关于并发模型中的两种锁知识点详解内容,有兴趣的朋友们可以学习下。
    2021-04-04
  • 如何解决EasyExcel导出文件LocalDateTime报错问题

    如何解决EasyExcel导出文件LocalDateTime报错问题

    这篇文章主要介绍了如何解决EasyExcel导出文件LocalDateTime报错问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 分布式锁实例教程之防止重复提交

    分布式锁实例教程之防止重复提交

    订单重复问题已经是老生常谈的问题了,下面这篇文章主要给大家介绍了关于分布式锁实例教程之防止重复提交的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2021-11-11
  • 详解SpringBoot修改启动端口server.port的四种方式

    详解SpringBoot修改启动端口server.port的四种方式

    这篇文章主要介绍了详解SpringBoot修改启动端口server.port的四种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Java利用DelayQueue实现延迟任务代码实例

    Java利用DelayQueue实现延迟任务代码实例

    这篇文章主要介绍了Java利用DelayQueue实现延迟任务代码实例,DelayQueue 是一个支持延时获取元素的阻塞队列, 内部采用优先队列 PriorityQueue 存储元素,同时元素必须实现 Delayed 接口,需要的朋友可以参考下
    2023-12-12
  • SpringBoot集成企业微信开发的实现

    SpringBoot集成企业微信开发的实现

    本文将详细介绍如何使用 Spring Boot 集成企业微信开发,通过企业微信 API 可以实现企业内部的一些自动化业务流程,提高工作效率,感兴趣的可以了解一下
    2023-07-07
  • 详解如何为SpringBoot Web应用的日志方便追踪

    详解如何为SpringBoot Web应用的日志方便追踪

    在Web应用程序领域,有效的请求监控和可追溯性对于维护系统完整性和诊断问题至关重要,SpringBoot是一种用于构建Java应用程序的流行框架,在本文中,我们探讨了在SpringBoot中向日志添加唯一ID的重要性,需要的朋友可以参考下
    2023-11-11
  • Java Zip文件读写操作详解

    Java Zip文件读写操作详解

    这篇文章主要为大家详细介绍了如何利用Java ZipInputstream、ZipOutputStream实现获取每个文件中的内容与写入内容,感兴趣的可以动手尝试一下
    2022-11-11

最新评论