依赖

<dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13</version>
</dependency>

中文字体,我是在windows 10 上找的宋体C:\Windows\Fonts\STSONG.TTF

放在springboot的resources目录font下面

简单的工具类

package com.cgw.utils;import com.itextpdf.text.*;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfWriter;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.core.io.ClassPathResource;import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;public class PdfUtil {/*** 将图片写入pdf** @param imageFiles* @return* @throws IOException*/public static File generatePdf(File... imageFiles) throws IOException, DocumentException {if (ArrayUtils.isEmpty(imageFiles)) {return null;}File pdfFile = FileUtil.createTempFile("tmp.pdf");ClassPathResource resource = new ClassPathResource("font/STSONG.TTF");BaseFont baseFont = BaseFont.createFont(resource.getURL().toString(), BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);Font font = new Font(baseFont);// 创建文件Document document = new Document();// 建立一个书写器PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(pdfFile));writer.setStrictImageSequence(true);// 打开文件document.open();// 添加内容Paragraph paragraph = new Paragraph("你好世界,hello world", font);paragraph.setAlignment(Element.ALIGN_CENTER);document.add(paragraph);float scalePercentage = (72 / 300f) * 100.0f;for (File imageFile : imageFiles) {// 图片Image image = Image.getInstance(imageFile.getAbsolutePath());image.scalePercent(scalePercentage, scalePercentage);image.setAlignment(Element.ALIGN_CENTER);// 将图片1添加到pdf文件中document.add(image);}// 关闭文档document.close();// 关闭书写器writer.close();return pdfFile;}
}

FileUtil.java

package com.casic.dataapplication.utils;import org.apache.commons.io.FileUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import java.io.*;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.UUID;public class FileUtil {private static Logger logger = LoggerFactory.getLogger(FileUtil.class);private static final String TMP_FILE_NAME = "file.tmp"public static Path getTempPath() {String realPath = System.getProperty("java.io.tmpdir");String id = UUID.randomUUID().toString().replace("-", "");Path path = Paths.get(realPath, id);try {FileUtils.forceMkdir(path.toFile());} catch (IOException e) {logger.error("创建临时目录异常:{}", e);throw new RuntimeException(e);}return path;}/*** 创建一个临时文件** @param filename* @return*/public static File createTempFile(String filename) {return getTempPath().resolve(filename).toFile();}/*** 创建一个临时文件** @return*/public static File createTempFile() {return getTempPath().resolve(TMP_FILE_NAME).toFile();}/*** 删除一个文件*/public static boolean deleteFile(File file) {logger.debug("删除文件:{}", file.getAbsolutePath());return FileUtils.deleteQuietly(file);}/*** 删除一个文件同时删除父目录** @return true删除成功,false删除失败*/public static boolean deleteFileAndParentPath(File file) {logger.debug("删除文件和父目录:{}", file.getAbsolutePath());return FileUtils.deleteQuietly(file) && FileUtils.deleteQuietly(file.getParentFile());}}

调用时传的图片资源

效果图

使用itextpdf生成pdf,设置图片和中文相关推荐

  1. itextpdf 怎么下划线_Java itext生成pdf设置下划线,itextpdf,package cn.o

    Java itext生成pdf设置下划线,itextpdf,package cn.opackage cn.outofmemory.example.itextpdf;import com.itextpd ...

  2. java pdf 页眉_itext生成PDF设置页眉页脚的实例详解

    itext生成PDF设置页眉页脚的实例详解 实例代码: /** * ITextTest * iText生成PDF加入列表,注释等内容,同时设置页眉和页脚及页码等. */ package com.lab ...

  3. java用itextPDF生成PDF文件保存至本地并上传至ftp服务器

    标题java用itextPDF生成PDF文件保存至本地并上传至ftp服务器 所需jar :itext-asian-5.2.0.jar,itextpdf-5.5.5.jar,commons-net-3. ...

  4. java导出pdf页码设置_itext生成PDF设置页眉页脚的实例详解

    itext生成pdf设置页眉页脚的实例详解 实例代码: /** * itexttest * itext生成pdf加入列表,注释等内容,同时设置页眉和页脚及页码等. */ package com.lab ...

  5. java itext 横线,Java itext生成pdf设置下划线,,package cn.o

    Java itext生成pdf设置下划线,,package cn.opackage cn.outofmemory.example.itextpdf;import com.itextpdf.text.C ...

  6. java pdf 中文_java-pdf-itext 生成pdf 文档(支持中文字体)

    java-pdf-itext 生成pdf 文档(支持中文字体) itext 版本:2.1.7 package com.demo.preview; import java.io.ByteArrayOut ...

  7. java使用itextpdf生成pdf文档指定图片印章位置

    项目结构 1.引包 <dependencies><!-- itextpdf--><dependency><groupId>com.itextpdf< ...

  8. Java生成pdf设置两行页脚_Itextpdf 5 html生成pdf 页眉页脚

    效果图 QQ图片20190117140345.png 继承PdfPageEventHelper重写onEndPage方法 package com.xuqiang.itext.test; import ...

  9. 【Java中级篇】使用itextpdf生成PDF

    我们可以发现很多求职网站都会将我们录入的信息来生成一个PDF简历文件.所以我这里提供了用itextpdf生成的PDF的代码. 一.步骤 1.1.使用Adobe Acrobat Pro工具编辑PDF模板 ...

最新文章

  1. 光大银行分布式实战:国内最大缴费平台的数据库架构转型
  2. BZOJ1935 园丁的烦恼
  3. windows安装Python模块:requests
  4. Leetcode:371.Sum Of Two Integer
  5. App乱世,3721离我们有多远
  6. 企业级 CICD 工具部署 Serverless 应用的落地实践
  7. js函数中参数的传递
  8. 武新博士:新型MPP数据库将支撑起大数据时代
  9. BZOJ 3404: [Usaco2009 Open]Cow Digit Game又见数字游戏(博弈论)
  10. 最经典沙盒游戏《我的世界》部分开源:微软出手,称人人可用
  11. 开课吧Java课堂:如何使用迭代函数
  12. UnityHub破解Unity破解
  13. 机器学习可以应用在哪些场景
  14. django 1.11 文档
  15. 从壹开始前后端分离【重要】║最全的部署方案 最丰富的错误分析
  16. mybatis错误:Could not resolve resource location pattern [classpath:com/demon/user/mapper/*.xml]: class
  17. java测试开发工程师,必须要明白的几处知识(附面试问题)
  18. js实现 base64 转码解码
  19. router vue 页签文字_vueRouter点击打开新页签
  20. windows11编译OpenCV4.5.0 with CUDA(附注意事项)

热门文章

  1. 牛津通识读本:数学(中文版) 蒂莫西·高尔斯笔记1
  2. CleanMyMac X2023电脑深度清理软件
  3. 第5章 - 二阶多智能体系统的协同控制 --> 连续时间含时延系统一致性【程序代码】
  4. 缓和曲线计算机编程,fx5800缓和曲线计算程序.docx
  5. 解决 Invalid App Store Icon - The App Store Icon in the asset catalog in ‘HBuilder.app‘ can‘t
  6. 雷蛇被曝0day漏洞 插入鼠标或键盘可快速获得最高用户权限
  7. 条码防窜货管理系统的应用
  8. 【darknet源码】:导入训练数据
  9. 万佳安联手腾讯云,传统安企开启 AI 新征程
  10. TCP 服务器/客户端(实现下载)