图片批量转换pdf文件
生活随笔
收集整理的這篇文章主要介紹了
图片批量转换pdf文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 依賴
- 2. 工具類抽取
1. 依賴
<!--圖片轉換pdf Start--><!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13</version></dependency><!-- https://mvnrepository.com/artifact/com.lowagie/itext --><dependency><groupId>com.lowagie</groupId><artifactId>itext</artifactId><version>4.2.1</version></dependency><!--圖片轉換pdf End-->2. 工具類抽取
package com.gblfy.ly.util;package com.sinosoft.cmiip.modular.taskbatch.util;import com.itextpdf.text.Document; import com.itextpdf.text.Image; import com.itextpdf.text.Rectangle; import com.itextpdf.text.pdf.PdfWriter; import org.slf4j.Logger; import org.slf4j.LoggerFactory;import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList;/*** 圖片批量轉換pdf** @author gblfy* @date 2020-11-20*/ public class PicToPdfUtil {private final static Logger logger = LoggerFactory.getLogger(PicToPdfUtil.class);/*** 圖片轉pdf文件** @param source 圖片路徑* @param target pdf文件路徑*/public static void convert(String source, String target) {Document document = new Document();// 設置文檔頁邊距document.setMargins(0, 0, 0, 0);FileOutputStream fos = null;try {fos = new FileOutputStream(target);PdfWriter.getInstance(document, fos);// 打開文檔document.open();// 獲取圖片的寬高Image image = Image.getInstance(source);float imageHeight = image.getScaledHeight();float imageWidth = image.getScaledWidth();// 設置頁面寬高與圖片一致Rectangle rectangle = new Rectangle(imageWidth, imageHeight);document.setPageSize(rectangle);// 圖片居中image.setAlignment(Image.ALIGN_CENTER);// 新建一頁添加圖片document.newPage();document.add(image);} catch (Exception ioe) {logger.error("轉換出現異常:", ioe.getMessage());} finally {// 關閉文檔document.close();try {fos.flush();fos.close();} catch (IOException e) {e.printStackTrace();}}logger.info("圖片轉換完成!!!");}/*** 圖片批量轉換pdf入口** @param picFilePath* @param pdfFilePaths*/public static void getPathFileList(String picFilePath, String pdfFilePaths) {ArrayList<String> files = getFiles(picFilePath);getFileName(files, pdfFilePaths);}/*** 將pic圖片文件批量換換位pdf文件** @param files* @return*/public static void getFileName(ArrayList<String> files, String pdfFilePath) {for (int i = 0; i < files.size(); i++) {String fileName = files.get(i);String picFileName = fileName.substring(fileName.lastIndexOf(File.separator) + 1);String[] split = picFileName.split("\\.");String pdfFileName = split[0];String pdfSuffix = ".pdf";//文件轉換統一處理convert(fileName, pdfFilePath + pdfFileName + pdfSuffix);}}/*** 獲取指定目錄下的文件絕對路徑列表** @param picFilePath 目錄* @return*/public static ArrayList<String> getFiles(String picFilePath) {ArrayList<String> files = new ArrayList<String>();File file = new File(picFilePath);File[] fileList = file.listFiles();for (int i = 0; i < fileList.length; i++) {if (fileList[i].isFile()) {files.add(fileList[i].toString());}}return files;}public static void main(String[] args) {//待轉換的圖片目錄String picFilePath = "D:\\222\\pic\\";//轉換的pdf目錄String pdfFilePath = "D:\\222\\pdf\\";getPathFileList(picFilePath, pdfFilePath);} }總結
以上是生活随笔為你收集整理的图片批量转换pdf文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker 安装 mysql和Navi
- 下一篇: spring项目链接RabbitMQ集群