软件编程
位置:首页>> 软件编程>> java编程>> java使用Abobe Acrobat DC生成模板

java使用Abobe Acrobat DC生成模板

作者:小码66  发布时间:2022-04-14 21:03:12 

标签:Java,Abobe,Acrobat,DC,模板

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

java使用Abobe Acrobat DC生成模板

说明:转换成pdf格式

二、Abobe Acrobat DC图解

利用Abobe Acrobat DC打开pdf

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

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

java使用Abobe Acrobat DC生成模板

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

java使用Abobe Acrobat DC生成模板

三、java后台代码

环境maven


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

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

java使用Abobe Acrobat DC生成模板

所需要生成新的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());
       }
   }

来源:https://blog.csdn.net/qq_41971605/article/details/115701174

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com