利用iText将多张图处转为一个pdf
来源:互联网 发布:健身教程软件 编辑:程序博客网 时间:2024/06/03 17:18
项目需要将多张JPG格式的图片转为一个PDF再进行后续处理,百度查资源看博客发现用iText比较简单,也没想到会这么简单,刷新了我的彩虹心,话不多说,直接上code。
项目用的是maven进行管理的,所以最开始需要引入依赖,如下:
<dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.10</version></dependency>另外需要引入一个包,用来输出中文
<dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2.0</version></dependency>
如果需要用到密码设置之类,还需要再引入一个
<dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</artifactId> <version>1.54</version></dependency>
准备工作做完后就可以开始上手了,直接上一个最终版
import com.itextpdf.text.*;import com.itextpdf.text.pdf.PdfWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.*;/** * Created by Administrator on 2017/12/22. */public class JPGTPDF { public static void main(String[] args)throws FileNotFoundException,DocumentException,IOException{ Document document=new Document(PageSize.A5,50,50,50,50); PdfWriter pdfWriter=PdfWriter.getInstance(document,new FileOutputStream("E:/work/test.pdf")); document.open(); //document.setPageSize(PageSize.A4); //设置页面大小// document.add(new Paragraph("Hello World")); document.addTitle("this is a title D"); document.addAuthor("mld"); document.addSubject("this is a subject D"); document.addKeywords("Keywords D"); document.addCreationDate(); Image image=null;// image=Image.getInstance("E:/picSource/20170905100453_3245.jpg"); File file=new File("E:/picSource"); File[] fileList=file.listFiles(); for(int i=0;i<fileList.length;i++){ image=Image.getInstance("E:/picSource/"+fileList[i].getName()); Map<String,Float> param=new HashMap<String,Float>(); param=getHeighWidth(image); image.scaleAbsolute(param.get("imageWidth"),param.get("imageHeight")); image.setAlignment(Element.ALIGN_CENTER); //设置元素居中 //image.setAlignment(1); //设置元素居中 document.add(image); } document.close(); } public static Map<String,Float> getHeighWidth(Image image){ Float imageHeight=image.getScaledHeight(); Float imageWidth=image.getScaledWidth(); Map<String,Float> resultParam=new HashMap<String, Float>(); int i=0; while(imageHeight>500||imageWidth>500){ image.scalePercent(100-i); i++; imageHeight=image.getScaledHeight(); imageWidth=image.getScaledWidth(); } resultParam.put("imageWidth",imageWidth); resultParam.put("imageHeight",imageHeight); return resultParam; }
貌似上面丢了个大括号,反正即使是小白也能根据这个过程实现自己的需求。另外,不管什么需求,千万要动手做,光是想是想不出来了。满满的IT自豪感,哈哈。
阅读全文
0 0
- 利用iText将多张图处转为一个pdf
- 利用iText写PDF
- 利用ITEXT操作PDF
- 利用iText写PDF心得
- 利用iText写PDF心得
- 利用iText生成PDF文档
- 利用iText生成PDF报表
- 利用itext创建PDF表格
- 利用iText生成pdf报表
- 利用itext生成pdf文档
- java利用itext编辑pdf
- 利用iText操作PDF文件
- Java利用Itext导出pdf
- java利用itext编辑pdf
- 利用iText 给PDF文件添加附件
- 利用itext创建pdf表格文件(java)
- 利用IText生成word、pdf文档
- 利用 iText 实现 PDF 报表下载
- SEO如何优化让用户喜欢上网站标题
- 锚点概念的理解
- Java Json Post 请求
- Python--小甲鱼学习笔记--第33课:异常处理(try-except, try-finally, raise)
- Socket连接错误之toString() unavailable
- 利用iText将多张图处转为一个pdf
- 机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用
- 不错的MAVEN教程
- node npm的基本指令
- 作业六
- java 实现 视频格式转换。
- python subprocess用ctrl+c 的方式终止
- Xilinx Arm 8的内容介绍
- vs中产生验证码