1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > java实现图片jpg批量转换成pdf

java实现图片jpg批量转换成pdf

时间:2022-09-12 03:37:57

相关推荐

java实现图片jpg批量转换成pdf

java实现图片jpg批量转换成pdf

package jpgTopdf;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.FileOutputStream;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

import javax.imageio.ImageIO;

import com.itextpdf.text.Document;

import com.itextpdf.text.Image;

import com.itextpdf.text.Rectangle;

import com.itextpdf.text.pdf.PdfWriter;

public class JpgToPDF {

public static void main(String[] args){

ArrayList<String> imagesListNameList=new ArrayList<String>();

//JpgToPDF.JpgToPDF("D:/jdp", "D:/pdf");单独转换一张图片

JpgToPDF.getAllFileName("D:/jpg", imagesListNameList);

String errorPath=null;

//批量转换图片

for(String name:imagesListNameList){

try {

//所用的包是itextpdf5.4.3.jar

//图片文件的路径:D:/jpg/

//存放pdf文件的路径:D:/pdf/

JpgToPDF.imageToPDF("D:/jpg/"+name,"D:/pdf/"+name.substring(0,name.lastIndexOf(".jpg"))+"pdf");

} catch (Exception e) {

errorPath="D:/jpg"+name;

}

if(errorPath==null){

System.out.println("文件转换成功");

}else{

System.out.println(errorPath+"路径下的文件转换失败");

}

}

System.out.println("文件全部转换成功");

}

//获取文件里的所有图片名称

public static List getAllFileName(String path,ArrayList<String> fileName){

File file=new File(path);

File[] files=file.listFiles();

String[] names= file.list();

if(names!=null)

fileName.addAll(Arrays.asList(names));

List imageListNameList = new ArrayList();

for(File a:files){

if(a.isDirectory()){

imageListNameList.addAll(fileName);

}

}

return imageListNameList;

}

//jpg图片转换成pdf

public static void imageToPDF(String imagePath,String pdfPath) throws Exception {

BufferedImage img = ImageIO.read(new File(imagePath));

FileOutputStream fos = new FileOutputStream(pdfPath);

Document doc = new Document(null, 0, 0, 0, 0);

doc.setPageSize(new Rectangle(img.getWidth(), img.getHeight()));

Image image = Image.getInstance(imagePath);

PdfWriter.getInstance(doc, fos);

doc.open();

doc.add(image);

doc.close();

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。