使用itextpdf生成pdf,设置图片和中文
依赖
<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,设置图片和中文相关推荐
- itextpdf 怎么下划线_Java itext生成pdf设置下划线,itextpdf,package cn.o
Java itext生成pdf设置下划线,itextpdf,package cn.opackage cn.outofmemory.example.itextpdf;import com.itextpd ...
- java pdf 页眉_itext生成PDF设置页眉页脚的实例详解
itext生成PDF设置页眉页脚的实例详解 实例代码: /** * ITextTest * iText生成PDF加入列表,注释等内容,同时设置页眉和页脚及页码等. */ package com.lab ...
- java用itextPDF生成PDF文件保存至本地并上传至ftp服务器
标题java用itextPDF生成PDF文件保存至本地并上传至ftp服务器 所需jar :itext-asian-5.2.0.jar,itextpdf-5.5.5.jar,commons-net-3. ...
- java导出pdf页码设置_itext生成PDF设置页眉页脚的实例详解
itext生成pdf设置页眉页脚的实例详解 实例代码: /** * itexttest * itext生成pdf加入列表,注释等内容,同时设置页眉和页脚及页码等. */ package com.lab ...
- java itext 横线,Java itext生成pdf设置下划线,,package cn.o
Java itext生成pdf设置下划线,,package cn.opackage cn.outofmemory.example.itextpdf;import com.itextpdf.text.C ...
- java pdf 中文_java-pdf-itext 生成pdf 文档(支持中文字体)
java-pdf-itext 生成pdf 文档(支持中文字体) itext 版本:2.1.7 package com.demo.preview; import java.io.ByteArrayOut ...
- java使用itextpdf生成pdf文档指定图片印章位置
项目结构 1.引包 <dependencies><!-- itextpdf--><dependency><groupId>com.itextpdf< ...
- Java生成pdf设置两行页脚_Itextpdf 5 html生成pdf 页眉页脚
效果图 QQ图片20190117140345.png 继承PdfPageEventHelper重写onEndPage方法 package com.xuqiang.itext.test; import ...
- 【Java中级篇】使用itextpdf生成PDF
我们可以发现很多求职网站都会将我们录入的信息来生成一个PDF简历文件.所以我这里提供了用itextpdf生成的PDF的代码. 一.步骤 1.1.使用Adobe Acrobat Pro工具编辑PDF模板 ...
最新文章
- 光大银行分布式实战:国内最大缴费平台的数据库架构转型
- BZOJ1935 园丁的烦恼
- windows安装Python模块:requests
- Leetcode:371.Sum Of Two Integer
- App乱世,3721离我们有多远
- 企业级 CICD 工具部署 Serverless 应用的落地实践
- js函数中参数的传递
- 武新博士:新型MPP数据库将支撑起大数据时代
- BZOJ 3404: [Usaco2009 Open]Cow Digit Game又见数字游戏(博弈论)
- 最经典沙盒游戏《我的世界》部分开源:微软出手,称人人可用
- 开课吧Java课堂:如何使用迭代函数
- UnityHub破解Unity破解
- 机器学习可以应用在哪些场景
- django 1.11 文档
- 从壹开始前后端分离【重要】║最全的部署方案 最丰富的错误分析
- mybatis错误:Could not resolve resource location pattern [classpath:com/demon/user/mapper/*.xml]: class
- java测试开发工程师,必须要明白的几处知识(附面试问题)
- js实现 base64 转码解码
- router vue 页签文字_vueRouter点击打开新页签
- windows11编译OpenCV4.5.0 with CUDA(附注意事项)
热门文章
- 牛津通识读本:数学(中文版) 蒂莫西·高尔斯笔记1
- CleanMyMac X2023电脑深度清理软件
- 第5章 - 二阶多智能体系统的协同控制 --> 连续时间含时延系统一致性【程序代码】
- 缓和曲线计算机编程,fx5800缓和曲线计算程序.docx
- 解决 Invalid App Store Icon - The App Store Icon in the asset catalog in ‘HBuilder.app‘ can‘t
- 雷蛇被曝0day漏洞 插入鼠标或键盘可快速获得最高用户权限
- 条码防窜货管理系统的应用
- 【darknet源码】:导入训练数据
- 万佳安联手腾讯云,传统安企开启 AI 新征程
- TCP 服务器/客户端(实现下载)