需求是浏览器里直接将服务器上的图片文件(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多页合并问题)相关推荐

  1. java/spring/springboot 的一些基础知识点

    Java开发基础部分 1.&和&&的区别. &和&&都表示与的意思,既表达式俩边都成立,结果才成立. &&是逻辑运算符,&&am ...

  2. springboot 使用itextpdf 框架实现多个图片合成一个pdf文件

    以下两个方法引入头 import com.lowagie.text.*; import com.lowagie.text.pdf.PdfWriter; import org.apache.pdfbox ...

  3. Java项目:宠物医院预约挂号系统(java+JSP+Spring+SpringBoot+MyBatis+html+layui+maven+Mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 功能包括: 用户分为宠物,医生,管理员,宠物主人可进行注册选择医生挂号,选择日期,选择号源,医生可进行宠物接诊,管理员可对宠物 ...

  4. Spring中利用java注解声明切面

    Spring中利用java注解声明切面 第一步:确定在Spring的XML文件中包含AOP的命名空间: 第二步:在Spring的XML文件中输入<aop:aspectj-autoproxy/&g ...

  5. java spring 数据库_JAVA - SpringBoot项目引用MyBatis操作数据库

    JAVA - SpringBoot项目引用MyBatis操作数据库 添加POM依赖: org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.1 ...

  6. 基于javaweb+mysql的教务管理系统(java+jsp+spring+springboot+layui)

    基于javaweb+mysql的教务管理系统(java+jsp+spring+springboot+layui) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/mye ...

  7. Java项目:教务管理系统(java+JSP+Spring+SpringBoot+layui+maven)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 功能包括: 三角色教师 管理员,学生教务管理系统,包括院系管理,课题综合管理,信息管理,以及差旅管理,学生选题等等. 二.项目 ...

  8. 基于javaweb+mysql的教务管理系统(java+JSP+Spring+SpringBoot+layui+maven)

    一.项目简述 功能包括: 三角色教师 管理员,学生教务管理系统,包括院系管理,课题综合管理,信息管理,以及差旅管理,学生选题等等. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + ...

  9. spring springboot springcloud常用注解

    @SpringBootApplication 组合注解,用在启动类上,源码: @Retention(RetentionPolicy.RUNTIME) @SpringBootConfiguration ...

  10. 近100个Spring/SpringBoot常用注解汇总!

    作者 | Guide 来源 | JavaGuide(微信公众号) 毫不夸张地说,这篇文章介绍的 Spring/SpringBoot 常用注解基本已经涵盖你工作中遇到的大部分常用的场景.对于每一个注解我 ...

最新文章

  1. Android SharedPreferences保存和读取对象
  2. python 下载图片损坏_爬虫爬取出的图片下载出错,图片文件直接损坏
  3. 【已解决】Nacos启动报错:java.io.IOException: java.lang.IllegalArgumentException: db.num is null
  4. 极速搭建一个个人博客网站
  5. pythonlinux版本_Linux_Python版本控制
  6. Ubuntu MPEG-4 AAC 与 H.264 解码器安装
  7. 从君臣到战友:《谦逊领导力》就是敏捷领导力
  8. 添加Bigboss源
  9. 论文中常用的对word页眉页脚的操作
  10. XXXXX was compiled with optimization - stepping may behave oddly; variables may not be available.
  11. 肾有多好,人就有多年轻。男女通用
  12. 华为HCIE RS笔记-20 OSPF的V-Link
  13. 链新:区块链大赛火热,成为技术与创意的练兵场
  14. 栈 括号匹配问题(C语言)
  15. 优派vx2480功能简评
  16. ABAP SY-SUBRC含义
  17. 织梦选php哪个版本,织梦DedeCMS网站及其版本的判断
  18. 局域网共享工具_局域网共享精灵,一款助力于局域网环境下文件共享和打印机共享的系统工具软件...
  19. 2011分区联赛模拟试题 电子眼(树形dp)
  20. GBase 8s与Oracle对比分析

热门文章

  1. 计算机语言异或符号,异或门的电路符号表达_XOR的电路实现
  2. 8、Ndk开发小记一
  3. idea打包jar程序
  4. EXCEL对比两列中查找相同的数据
  5. 2020-12-06 高等数学:常用积分公式
  6. digester_Apache Digester示例–轻松配置
  7. 最全常见算法工程师面试题目整理
  8. 企业资源计划(ERP)原理与实践 第三章 需求计划
  9. Hadoop | 初学基础原理
  10. python ffmpeg剪辑视频_FFMPEG剪辑大法