Java PDF模板生成PDF

简介: Java PDF模板生成PDF

一、 制作PDF模板,使用AdobeAcrobat DC,必须使用这个来制作from域。使用AdobeAcrobat DC将Word导成PDF文档进行文本字段的制作

对模板内容的设置如下:

二、将需要动态传入模板的值进行业务写入


主要是写入的方法


/**
     * 根据PDF模板生成PDF文件
     * @param sourceFile 原模板文件
     * @param targetFile 动态输入写入的文件
     * @param fieldMap 动态数据值
     */
    public static void toPDFWriteValue(String sourceFile,String fileName,String targetFilePath,Map<String,Object> fieldMap)throws Exception{
        try {
            PdfReader reader = new PdfReader(sourceFile)
            ByteArrayOutputStream bos = new ByteArrayOutputStream()
            PdfStamper ps = new PdfStamper(reader, bos)
            AcroFields s = ps.getAcroFields()
            //解决中文
            com.itextpdf.text.pdf.BaseFont bfChinese = com.itextpdf.text.pdf.BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", false)
            s.addSubstitutionFont(bfChinese)
            //判断写入文件是否存在,不存在创建
            File file = new File(targetFilePath)
            if (!file.exists()) {
                file.mkdirs()
            }
            String fileSavePath = targetFilePath + fileName
            File file1 = new File(fileSavePath)
            if (!file1.exists()) {
                file1.createNewFile()
            }
            //将值封装至map中
            for(String key:fieldMap.keySet()){
                //遍历赋值
                s.setField(key,fieldMap.get(key).toString())
            }
            ps.setFormFlattening(true)
            ps.close()
            FileOutputStream fos = new FileOutputStream(fileSavePath)
            fos.write(bos.toByteArray())
        } catch (FileNotFoundException e) {
            logger.error("生成PDF文件异常", e)
        } catch (Exception e) {
            logger.error("生成PDF文件异常", e)
        }
    }
目录
相关文章
|
22天前
|
搜索推荐 Java 数据库连接
Java|在 IDEA 里自动生成 MyBatis 模板代码
基于 MyBatis 开发的项目,新增数据库表以后,总是需要编写对应的 Entity、Mapper 和 Service 等等 Class 的代码,这些都是重复的工作,我们可以想一些办法来自动生成这些代码。
29 6
|
29天前
|
Java Apache Maven
Java将word文档转换成pdf文件的方法?
【10月更文挑战第13天】Java将word文档转换成pdf文件的方法?
135 1
|
1月前
|
存储 Java API
如何使用 Java 中的 API 更改 PDF 纸张大小
如何使用 Java 中的 API 更改 PDF 纸张大小
42 11
|
1月前
|
算法 Java Linux
java制作海报四:java BufferedImage 转 InputStream 上传至OSS。png 图片合成到模板(另一个图片)上时,透明部分变成了黑色
这篇文章主要介绍了如何将Java中的BufferedImage对象转换为InputStream以上传至OSS,并解决了png图片合成时透明部分变黑的问题。
60 1
|
1月前
|
小程序
java--微信小程序发送模板消息
java--微信小程序发送模板消息
102 0
|
3月前
|
小程序 Java
【aspose-words】Aspose.Words for Java模板语法详细剖析
本文通过详细分析Aspose.Words for Java模板语法,介绍了使用条件块、变量和动态合并表格单元格三个常用模板标签,并结合实际案例进行演示。通过这三个标签的实操,帮助读者更好地掌握Aspose.Words的使用技巧。此外,还提供了官方文档链接以便进一步学习。
141 0
【aspose-words】Aspose.Words for Java模板语法详细剖析
|
2月前
|
Java Apache Maven
Java中使用poi+poi-tl实现根据模板导出word文档
这个过程不仅简化了文档生成的工作,而且保证了生成文档的一致性与准确性,特别适合于那些需要生成大量文档的自动化场景。通过以上步骤,Java开发人员可以实现高效、可靠的Word文档导出功能。
1287 0
|
3月前
|
JavaScript Java Python
【Azure 应用服务】在Azure App Service for Windows 中部署Java/NodeJS/Python项目时,web.config的配置模板内容
【Azure 应用服务】在Azure App Service for Windows 中部署Java/NodeJS/Python项目时,web.config的配置模板内容
|
8天前
|
安全 Java 测试技术
Java并行流陷阱:为什么指定线程池可能是个坏主意
本文探讨了Java并行流的使用陷阱,尤其是指定线程池的问题。文章分析了并行流的设计思想,指出了指定线程池的弊端,并提供了使用CompletableFuture等替代方案。同时,介绍了Parallel Collector库在处理阻塞任务时的优势和特点。
|
4天前
|
安全 Java 开发者
深入解读JAVA多线程:wait()、notify()、notifyAll()的奥秘
在Java多线程编程中,`wait()`、`notify()`和`notifyAll()`方法是实现线程间通信和同步的关键机制。这些方法定义在`java.lang.Object`类中,每个Java对象都可以作为线程间通信的媒介。本文将详细解析这三个方法的使用方法和最佳实践,帮助开发者更高效地进行多线程编程。 示例代码展示了如何在同步方法中使用这些方法,确保线程安全和高效的通信。
23 9