Java实现图片转化为pdf
目录
- 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相关推荐
- java将图片转化为pdf并输出
1.导入依赖 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox< ...
- Itext学习(二)----实现把图片转化为pdf
实现 图像转化为pdf 把图片转化为pdf 实现效果图 itext 逻辑代码 import java.io.File; import java.io.FileNotFoundException; im ...
- xsd文件转图片_如何将图片转化为PDF格式?分享一个超简单的方法给你
如何将图片转化为PDF格式?有些朋友经常需要将图片转换成PDF格式文件,这样比较方便保存和传输.熟悉文件转换的朋友是知道该怎么操作的,不了解的朋友不用担心,今天我来教大家一个方法,能够帮助我们简单快速 ...
- python将图片转化为pdf,selenium自动化测试,xpath的语法
一:python将图片转化为pdf import glob import fitz import osfrom matplotlib import pyplot as pltdef pic2pdf(p ...
- Java 将图片组合成PDF文件
程序界面图: 代码清单: package 将图片组合成PDF文件; import java.awt.event.ActionEvent; import java.awt.event.ActionLis ...
- JAVA 将图片转换成pdf文件
/** * 将图片转换成pdf文件 *imgFilePath 需要被转换的img所存放的位置. 例如imgFilePath="D:\\projectPath\\55555.jpg" ...
- 计算机桌面上的照片转pdf免费,如何把图片转化为pdf,图片转换pdf工具推荐
我们经常遇到要将图片转换成pdf文件输出的情况,那么我们有什么办法能更快更好进行转换呢?小编今天给大家带来两个办法,一个是手机上操作的,另一个是电脑上的方法,实测好用! 手机端转换 手机上小编一般会使 ...
- windows下用Python把png图片转化为pdf文件
windows下用Python把pdf文件转化为图片:https://blog.csdn.net/apollo_miracle/article/details/100601499 不扯没用的,直接上代 ...
- Python把图片转化为pdf代码实例
更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接:好看站 http://www.nrso.net/ python安装reportlab pip install r ...
- 图片怎么转化为pdf格式?
图片现在已经成为大多数朋友经常接触使用的文件格式,就像我们每个人手机里都存有大量的照片,所以说图片是大家日常接触使用最多的文件格式.但是大量的图片在使用储存的时候,确实很麻烦,无论我们上传到网络云盘, ...
最新文章
- hdu 1116 Play on Words
- 怎么修改与服务器的操作系统,怎么修改与服务器的操作系统
- Struts2漏洞为互联网带来严重安全风险
- 一体化机柜在县级支行机房标准化建设中的应用
- PXE+kickstart自动安装ubuntu14.04
- json在android的应用,JSON解析在android应用程序
- springmvc的执行流程_springmvc执行流程
- av linux,AV Linux 新版发布,多少人知道
- Java工作笔记-JPA中Repository新增自定义更新操作
- Effective C++ 读后感
- MSDN 查找 步骤
- SSM实现会议室预约管理系统
- vue2使用 relation-graph 展示关系图谱
- iOS永久不掉签名工具,TrollStore超详使用教程
- 云痕大数据 家长登录_云痕大数据——苏州云痕教育科技有限公司
- 爬虫python技术分享_Python技术分享:爬虫
- SharpDevelop安装与配置
- 洛谷 P1919 【模板】A*B Problem升级版 【快速傅里叶变换 FFT】
- 老挑毛 win7 linux,老挑毛u盘装系统步骤|老挑毛u盘一键装系统
- 如何成为技术大神(文末有抽奖)
热门文章
- 食品科学与工程与计算机论文,2010食品科学与工程专业毕业论文
- Java多线程系列--“JUC集合”10之 ConcurrentLinkedQueue
- 如何只用一个软件制作大屏图表
- 两种曲线下面积AUC(Area Under the ROC Curve):ROC-AUC、PR-AUC(性能度量)
- 高通QCC5100系列蓝牙音频模块芯片
- iphone测试内存读取速度软件,iPhone7内存不同读写速度有差? 实测差距惊人!
- RealSense 图形识别之路 2.0
- 合取式/合取范式/主合取范式/重言式/矛盾式 基本概念
- 在MySQL数据库中进行模糊查询_如何实现mysql数据库单表的模糊查询?
- MACHINE LEARNING ----BY HUNGYILEE (love u)