目录

  • 1 导入jar包
  • 2 工具类
  • 3 效果

需求比较简单就是Java实现图片转化为pdf,原本要求html转图片再转pdf,看了几种方案其实都很差劲,不如后端直接转保证清晰度。

1 导入jar包

方法一:导入

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

2 工具类

使用的时候,需要修改 ImageTransformPDF()函数中的输入图片路径和输出pdf路径

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Image;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.PdfWriter;
import com.minyeling.xxx.controller.ImageTransformPDF;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;/*** 使用时,需要修改 ImageTransformPDF()函数中的输入图片和输出pdf*/
public class Main4 {public static String ImageTransformPDF(){new ImageTransformPDF().imgOfPdf("输出pdf的路径和文件名(带后缀)", "需要转化成pdf的文件的路径");return "200!ok";}//为终极函数做铺垫public static File Pdf(ArrayList<String> imageUrllist, String mOutputPdfFileName) {Document doc = new Document(PageSize.A4, 0, 0, 0, 0); //new一个pdf文档try {PdfWriter.getInstance(doc, new FileOutputStream(mOutputPdfFileName)); //pdf写入doc.open();//打开文档for (int i = 0; i < imageUrllist.size(); i++) {  //循环图片List,将图片加入到pdf中doc.newPage();  //在pdf创建一页Image png1 = Image.getInstance(imageUrllist.get(i)); //通过文件路径获取imagefloat heigth = png1.getHeight();float width = png1.getWidth();int percent = getPercent2(heigth, width);png1.setAlignment(Image.MIDDLE);png1.scalePercent(percent + 3);// 表示是原来图像的比例;doc.add(png1);}doc.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (DocumentException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}File mOutputPdfFile = new File(mOutputPdfFileName);  //输出流if (!mOutputPdfFile.exists()) {mOutputPdfFile.deleteOnExit();return null;}return mOutputPdfFile; //反回文件输出流}public static int getPercent(float h, float w) {int p = 0;float p2 = 0.0f;if (h > w) {p2 = 297 / h * 100;} else {p2 = 210 / w * 100;}p = Math.round(p2);return p;}public static int getPercent2(float h, float w) {int p = 0;float p2 = 0.0f;p2 = 530 / w * 100;p = Math.round(p2);return p;}/*** @Description: 通过图片路径及生成pdf路径,将图片转成pdf* @Author: zd* @Date: 2019/9/29*/public void imgOfPdf(String filepath, String imgUrl) {try {ArrayList<String> imageUrllist = new ArrayList<String>(); //图片list集合String[] imgUrls = imgUrl.split(",");for (int i=0; i<imgUrls.length; i++) {imageUrllist.add(imgUrls[i]);}String pdfUrl =  filepath;  //输出pdf文件路径File file = this.Pdf(imageUrllist, pdfUrl);//生成pdffile.createNewFile();} catch (IOException e) {e.printStackTrace();}}
}

3 效果

耗时大概1s左右,创建空白的Document较慢,建议提前创建对象

Java实现图片转化为pdf相关推荐

  1. java将图片转化为pdf并输出

    1.导入依赖 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox< ...

  2. Itext学习(二)----实现把图片转化为pdf

    实现 图像转化为pdf 把图片转化为pdf 实现效果图 itext 逻辑代码 import java.io.File; import java.io.FileNotFoundException; im ...

  3. xsd文件转图片_如何将图片转化为PDF格式?分享一个超简单的方法给你

    如何将图片转化为PDF格式?有些朋友经常需要将图片转换成PDF格式文件,这样比较方便保存和传输.熟悉文件转换的朋友是知道该怎么操作的,不了解的朋友不用担心,今天我来教大家一个方法,能够帮助我们简单快速 ...

  4. python将图片转化为pdf,selenium自动化测试,xpath的语法

    一:python将图片转化为pdf import glob import fitz import osfrom matplotlib import pyplot as pltdef pic2pdf(p ...

  5. Java 将图片组合成PDF文件

    程序界面图: 代码清单: package 将图片组合成PDF文件; import java.awt.event.ActionEvent; import java.awt.event.ActionLis ...

  6. JAVA 将图片转换成pdf文件

    /** * 将图片转换成pdf文件 *imgFilePath 需要被转换的img所存放的位置. 例如imgFilePath="D:\\projectPath\\55555.jpg" ...

  7. 计算机桌面上的照片转pdf免费,如何把图片转化为pdf,图片转换pdf工具推荐

    我们经常遇到要将图片转换成pdf文件输出的情况,那么我们有什么办法能更快更好进行转换呢?小编今天给大家带来两个办法,一个是手机上操作的,另一个是电脑上的方法,实测好用! 手机端转换 手机上小编一般会使 ...

  8. windows下用Python把png图片转化为pdf文件

    windows下用Python把pdf文件转化为图片:https://blog.csdn.net/apollo_miracle/article/details/100601499 不扯没用的,直接上代 ...

  9. Python把图片转化为pdf代码实例

    更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接:好看站 http://www.nrso.net/ python安装reportlab pip install r ...

  10. 图片怎么转化为pdf格式?

    图片现在已经成为大多数朋友经常接触使用的文件格式,就像我们每个人手机里都存有大量的照片,所以说图片是大家日常接触使用最多的文件格式.但是大量的图片在使用储存的时候,确实很麻烦,无论我们上传到网络云盘, ...

最新文章

  1. hdu 1116 Play on Words
  2. 怎么修改与服务器的操作系统,怎么修改与服务器的操作系统
  3. Struts2漏洞为互联网带来严重安全风险
  4. 一体化机柜在县级支行机房标准化建设中的应用
  5. PXE+kickstart自动安装ubuntu14.04
  6. json在android的应用,JSON解析在android应用程序
  7. springmvc的执行流程_springmvc执行流程
  8. av linux,AV Linux 新版发布,多少人知道
  9. Java工作笔记-JPA中Repository新增自定义更新操作
  10. Effective C++ 读后感
  11. MSDN 查找 步骤
  12. SSM实现会议室预约管理系统
  13. vue2使用 relation-graph 展示关系图谱
  14. iOS永久不掉签名工具,TrollStore超详使用教程
  15. 云痕大数据 家长登录_云痕大数据——苏州云痕教育科技有限公司
  16. 爬虫python技术分享_Python技术分享:爬虫
  17. SharpDevelop安装与配置
  18. 洛谷 P1919 【模板】A*B Problem升级版 【快速傅里叶变换 FFT】
  19. 老挑毛 win7 linux,老挑毛u盘装系统步骤|老挑毛u盘一键装系统
  20. 如何成为技术大神(文末有抽奖)

热门文章

  1. 食品科学与工程与计算机论文,2010食品科学与工程专业毕业论文
  2. Java多线程系列--“JUC集合”10之 ConcurrentLinkedQueue
  3. 如何只用一个软件制作大屏图表
  4. 两种曲线下面积AUC(Area Under the ROC Curve):ROC-AUC、PR-AUC(性能度量)
  5. 高通QCC5100系列蓝牙音频模块芯片
  6. iphone测试内存读取速度软件,iPhone7内存不同读写速度有差? 实测差距惊人!
  7. RealSense 图形识别之路 2.0
  8. 合取式/合取范式/主合取范式/重言式/矛盾式 基本概念
  9. 在MySQL数据库中进行模糊查询_如何实现mysql数据库单表的模糊查询?
  10. MACHINE LEARNING ----BY HUNGYILEE (love u)