Java/Spring/SpringBoot利用itextpdf将JPG/PNG/TIF等输出为PDF(解决TIF多页合并问题)
需求是浏览器里直接将服务器上的图片文件(JPG,PNG,TIF)输出PDF, TIF还可能是多页的,这里需要把TIF合并,项目是用的Spring/SpringBoot
首先引入itextpdf依赖,编辑pom.xml
<dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.2</version>
</dependency>
配置Controller,输出的格式是PDF,这样浏览器能认出是PDF文档
@Controller
@RequestMapping("/api")
public class ApiController {@RequestMapping(value = "/drawings_{no}.pdf", method = RequestMethod.GET)public String drawings(@PathVariable("no") String no, HttpServletRequest request, HttpServletResponse response) {try {//processDrawings就是处理输出PDF的,我们在下一个方法介绍byte[] contents = processDrawings(no);String filename = "drawings_" + no + ".pdf";response.setContentType("application/pdf");//比较关键的是Content-Disposition是inline而不是attachment,这样提示浏览器来显示文档而不是下载response.setHeader("Content-Disposition", "inline; fileName=" + filename);response.setContentLength(contents.length);response.getOutputStream().write(contents);response.getOutputStream().flush();} catch (Exception e) {//request.setAttribute("message", "无法输出图号为: " + no + " 的图纸" + (e.getMessage() == null ? "" : ("<br/>" + e.getMessage())));//return "forward:/message";throw new HttpClientErrorException(HttpStatus.NOT_FOUND);}return null;}
}
itextpdf处理图像文件输出为PDF的方法 详见我的博客 https://blog.terrynow.com/2021/01/20/spring-springboot-output-pdf-from-jpg-png-tif-images/
更多开发和运维过程中遇到的坑已经解决问题的方案、干货分享请访问 https://blog.terrynow.com/
Java/Spring/SpringBoot利用itextpdf将JPG/PNG/TIF等输出为PDF(解决TIF多页合并问题)相关推荐
- java/spring/springboot 的一些基础知识点
Java开发基础部分 1.&和&&的区别. &和&&都表示与的意思,既表达式俩边都成立,结果才成立. &&是逻辑运算符,&&am ...
- springboot 使用itextpdf 框架实现多个图片合成一个pdf文件
以下两个方法引入头 import com.lowagie.text.*; import com.lowagie.text.pdf.PdfWriter; import org.apache.pdfbox ...
- Java项目:宠物医院预约挂号系统(java+JSP+Spring+SpringBoot+MyBatis+html+layui+maven+Mysql)
源码获取:博客首页 "资源" 里下载! 一.项目简述 功能包括: 用户分为宠物,医生,管理员,宠物主人可进行注册选择医生挂号,选择日期,选择号源,医生可进行宠物接诊,管理员可对宠物 ...
- Spring中利用java注解声明切面
Spring中利用java注解声明切面 第一步:确定在Spring的XML文件中包含AOP的命名空间: 第二步:在Spring的XML文件中输入<aop:aspectj-autoproxy/&g ...
- java spring 数据库_JAVA - SpringBoot项目引用MyBatis操作数据库
JAVA - SpringBoot项目引用MyBatis操作数据库 添加POM依赖: org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.1 ...
- 基于javaweb+mysql的教务管理系统(java+jsp+spring+springboot+layui)
基于javaweb+mysql的教务管理系统(java+jsp+spring+springboot+layui) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/mye ...
- Java项目:教务管理系统(java+JSP+Spring+SpringBoot+layui+maven)
源码获取:博客首页 "资源" 里下载! 一.项目简述 功能包括: 三角色教师 管理员,学生教务管理系统,包括院系管理,课题综合管理,信息管理,以及差旅管理,学生选题等等. 二.项目 ...
- 基于javaweb+mysql的教务管理系统(java+JSP+Spring+SpringBoot+layui+maven)
一.项目简述 功能包括: 三角色教师 管理员,学生教务管理系统,包括院系管理,课题综合管理,信息管理,以及差旅管理,学生选题等等. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + ...
- spring springboot springcloud常用注解
@SpringBootApplication 组合注解,用在启动类上,源码: @Retention(RetentionPolicy.RUNTIME) @SpringBootConfiguration ...
- 近100个Spring/SpringBoot常用注解汇总!
作者 | Guide 来源 | JavaGuide(微信公众号) 毫不夸张地说,这篇文章介绍的 Spring/SpringBoot 常用注解基本已经涵盖你工作中遇到的大部分常用的场景.对于每一个注解我 ...
最新文章
- Android SharedPreferences保存和读取对象
- python 下载图片损坏_爬虫爬取出的图片下载出错,图片文件直接损坏
- 【已解决】Nacos启动报错:java.io.IOException: java.lang.IllegalArgumentException: db.num is null
- 极速搭建一个个人博客网站
- pythonlinux版本_Linux_Python版本控制
- Ubuntu MPEG-4 AAC 与 H.264 解码器安装
- 从君臣到战友:《谦逊领导力》就是敏捷领导力
- 添加Bigboss源
- 论文中常用的对word页眉页脚的操作
- XXXXX was compiled with optimization - stepping may behave oddly; variables may not be available.
- 肾有多好,人就有多年轻。男女通用
- 华为HCIE RS笔记-20 OSPF的V-Link
- 链新:区块链大赛火热,成为技术与创意的练兵场
- 栈 括号匹配问题(C语言)
- 优派vx2480功能简评
- ABAP SY-SUBRC含义
- 织梦选php哪个版本,织梦DedeCMS网站及其版本的判断
- 局域网共享工具_局域网共享精灵,一款助力于局域网环境下文件共享和打印机共享的系统工具软件...
- 2011分区联赛模拟试题 电子眼(树形dp)
- GBase 8s与Oracle对比分析