123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- package cn.keking.utils;
- import com.lowagie.text.Document;
- import com.lowagie.text.Image;
- import com.lowagie.text.Rectangle;
- import com.lowagie.text.pdf.PdfWriter;
- import com.sun.media.jai.codec.ImageCodec;
- import com.sun.media.jai.codec.ImageEncoder;
- import com.sun.media.jai.codec.JPEGEncodeParam;
- import org.springframework.stereotype.Component;
- import javax.media.jai.JAI;
- import javax.media.jai.RenderedOp;
- import java.io.*;
- @Component
- public class ConvertPicUtil {
- /**
- * 图片 转 JPG。
- * 支持输入格式如下:BMP、GIF、FlashPix、JPEG、PNG、PMN、TIFF、WBMP
- * @param strInputFile 输入文件的路径和文件名
- * @param strOutputFile 输出文件的路径和文件名
- * @return
- */
- public static File convertPic2Jpg(String strInputFile, String strOutputFile) {
- // 读取源图片文件
- RenderedOp roInput = JAI.create("fileload", strInputFile);
- try {
- strOutputFile = strOutputFile.replaceAll("\\\\", "/");
- File fileJpgPath = new File(strOutputFile.substring(0, strOutputFile.lastIndexOf("/")));
- if(!fileJpgPath.exists()){
- fileJpgPath.mkdirs();
- }
- File fileJpg=new File(strOutputFile);
- OutputStream ops = new FileOutputStream(fileJpg);
- // 文件存储输出流
- JPEGEncodeParam param = new JPEGEncodeParam();
- ImageEncoder image = ImageCodec.createImageEncoder("JPEG", ops,
- param); // 指定输出格式
- // 解析输出流进行输出
- image.encode(roInput);
- // 关闭流
- ops.close();
- return fileJpg;
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
- /**
- * 将Jpg图片转换为Pdf文件
- * @param strJpgFile 输入的jpg的路径和文件名
- * @param strPdfFile 输出的pdf的路径和文件名
- * @return
- */
- public static File convertJpg2Pdf(String strJpgFile, String strPdfFile) {
- Document document = new Document();
- // 设置文档页边距
- document.setMargins(0,0,0,0);
- FileOutputStream fos = null;
- try {
- fos = new FileOutputStream(strPdfFile);
- PdfWriter.getInstance(document, fos);
- // 打开文档
- document.open();
- // 获取图片的宽高
- Image image = Image.getInstance(strJpgFile);
- float floatImageHeight=image.getScaledHeight();
- float floatImageWidth=image.getScaledWidth();
- // 设置页面宽高与图片一致
- Rectangle rectangle = new Rectangle(floatImageWidth, floatImageHeight);
- document.setPageSize(rectangle);
- // 图片居中
- image.setAlignment(Image.ALIGN_CENTER);
- //新建一页添加图片
- document.newPage();
- document.add(image);
- } catch (Exception ioe) {
- ioe.printStackTrace();
- return null;
- } finally {
- //关闭文档
- document.close();
- try {
- fos.flush();
- fos.close();
- File filePDF = new File(strPdfFile);
- return filePDF;
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- return null;
- }
- }
|