需求

需要将pdf转图片,用作预览,图片需要与pdf页的长宽大小保持一致。

依赖

org.apache.pdfbox:pdfbox:2.0.26

分析过程

pdfbox源码中,设置图片长宽大小的方法如下:

public BufferedImage PDFRenderer.renderImage(int pageIndex, float scale);

我们要分析的是scale参数设置为多少才能保证图片的长宽大小与pdf一致。
分析源码可以看到,pdf的长宽单位是pt, 图片的长宽单位是px,如下图:

因为pt与px的关系是 pt = px * 0.75,所以scale = pt / 0.75,也就是 scale = pt * 1.333333...

示例代码

public static List<File> pdfToImagePath(String filePath, String fileName) {List<File> previewFileList = new ArrayList<>();try {PDDocument doc = PDDocument.load(new File(filePath, fileName));PDFRenderer renderer = new PDFRenderer(doc);int pageCount = doc.getNumberOfPages();for (int i = 0; i < pageCount; i++) {// 1.3333f保持pdf页的长和宽BufferedImage image = renderer.renderImage(i, 1.3333f);File imgFile =new File(filePath + "/" + fileName.substring(0, fileName.indexOf(".")) + "_" + i + ".jpg");ImageIO.write(image, "PNG", imgFile);previewFileList.add(imgFile);}} catch (IOException e) {log.warn("pdf 转图片失败", e);}return previewFileList;}

pdfbox pdf转图片,图片长宽大小与pdf保持一致相关推荐

  1. java拼接图片大小_Java实现图片拼接(注:图片需长宽一致)

    /** * 拼接图片(注:图片需长宽一致) * @param files img1 ,img2 * @param type 1:横向拼接 2:纵向拼接 * @param targetFile 合成新的 ...

  2. java图像处理002---JAVA图片压缩_图片缩放_图片按照比例缩放_图片指定长宽缩放_Java使用google开源工具Thumbnailator实现图片压缩

    JAVA技术交流QQ群:170933152 前言 作为靠谱的java服务端程序员,图片这个事情一直是个头疼的事情. 现在很多网站上,都有上传图片这个功能,而图片对于现在的很多手机来说,拍摄出来的都是高 ...

  3. java获取图片的长宽尺寸(毫米)

    java获取图片的长宽尺寸(毫米) 现在有个需求是附上 附件图片,同时要标注图片的一些属性,比较麻烦的要标识图片的长宽尺寸(毫米),网上找了半天都是获取图片的长宽像素,但是想了想 图片的长宽尺寸不应该 ...

  4. java实现图片固定长宽的缩放和裁剪

    java实现图片固定长宽的缩放和裁剪 实现对aa文件夹进行深层遍历并将图片按长600宽400进行缩放和裁剪 import java.awt.Color; import java.awt.Graphic ...

  5. 获取网络图片或本地图片的长宽的方法

    获取长宽的方法: 1.网络图片 try {BufferedImage image= ImageIO.read(new URL(imgeUrl).openStream());int width = im ...

  6. php相机图片的长宽比例,照片常用的长宽比介绍,裁剪照片原来还有这么多选择...

    在拍摄照片的时候我们往往会在后期进行二次构图,在裁剪的时候有不同的相片长宽比供我们选择,不同的长宽比带给观众的感受也不一样.这里为大家介绍一下照片拍摄中常用到长宽比例. 3:2(6:4) 这张照片是用 ...

  7. matlab 改变图片的长宽,Matlab怎么调整图片的大小,使它成为特定的长宽

    满意答案 whymhm 推荐于 2017.12.15 采纳率:53%    等级:6 已帮助:2557人 一般而言,只需对目标图像进行图形句柄对象和坐标轴句柄对象进行操作即可.MATLAB中分别用gc ...

  8. 怎么更改图片尺寸?怎么修改图片的长宽尺寸?

    在实际应用中,我们常常需要将图片改大小(https://www.yasuotu.com/size),以适应不同的场景和需求,比如在制作海报.PPT等场合,修改图片尺寸后使其更适合展现,下面小编就带大家 ...

  9. php相机图片的长宽比例,单反相机的 长宽比 创意滤镜 如何使用 什么意思 怎么理解这些内容...

    根据拍摄意图改变长宽比 就像使用不同的镜头改变视角可获得不同感觉的照片一样,变更长宽比也能大幅改变照片效果.通过改变长宽比使照片效果大为改观也颇有意思.另外,图像记录画质选择RAW+JPEG的话,可以 ...

最新文章

  1. CCNA11月14日战报
  2. [转]MySQL 5.6 my.cnf配置优化
  3. 最长上升子序列——动态规划
  4. jeecg 根据数据类型key查询数据字典
  5. AOP——基于AspectJ的注解来实现AOP操作
  6. SQL 之后,GQL 成为 ISO/IEC 国际标准数据库语言项目
  7. WebPack 简明学习教程
  8. Spring提供的iBatis的SqlMap配置
  9. DLUTOJ #1394 Magic Questions
  10. matplotlib画的图保存为emf格式
  11. 可作为工质状态参数的是_§2工质的热力状态及其基本状态参数
  12. 交互式应用安全测试(IAST)学习笔记
  13. html 悬浮qq,js悬浮QQ在线客服代码(支持拖动)
  14. WinPE (老毛桃最终修改版) V09.11 硬盘安装操作系统详细图解
  15. 本地部署iOS应用OTA安装 Go + Goland详细实现步骤
  16. 【雅思】【绿宝书错词本】List13~24
  17. 在美国OpenSky电商平台上使用MasterCard虚拟信用卡海淘购物攻略教程
  18. 2022考研捡漏经验贴
  19. 浏览器开机自启动及全屏配置
  20. 2022年最新吉林道路运输安全员模拟真题题库及答案

热门文章

  1. Surfaceview调用Camera实现拍照
  2. 2.15范冰增长黑客读书笔记
  3. 100%正确率识别票据从金融领域切入挖掘文字识别的巨大价值
  4. 为什么所有APP都想获取你的定位?
  5. 《孩子,你慢慢来》的读书笔记与读后感2600字
  6. android手机屏幕总是闪烁,手机屏幕闪烁是什么原因
  7. 资深工程师专业评测--安卓免费的银行卡识别SDK,华为 HMS MLKit 和Card IO哪个好?
  8. 在学习少儿编程中体会AI乐趣
  9. K8S环境快速部署Kafka(K8S外部可访问)
  10. java 模板 word转pdf 可分页 带图片