1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java将多张图片合并转为PDF

java将多张图片合并转为PDF

时间:2021-08-19 04:49:56

相关推荐

java将多张图片合并转为PDF

所需jar包:com.lowagie.text

package weaver.gy.util;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import javax.imageio.ImageIO;import com.lowagie.text.BadElementException;import com.lowagie.text.Document;import com.lowagie.text.DocumentException;import com.lowagie.text.Image;import com.lowagie.text.Rectangle;import com.lowagie.text.pdf.PdfWriter;/*** 将多张图片合并转为PDF;需要用到iTextpdf包,* * @author 浴缸* */public class PrintToPdfUtil {/*** * @param imageFolderPath* 图片文件夹地址* @param pdfPath* PDF文件保存地址* */public static void toPdf(String imageFolderPath, String pdfPath) {try {// 图片文件夹地址// String imageFolderPath = "D:/Demo/ceshi/";// 图片地址String imagePath = null;// PDF文件保存地址// String pdfPath = "D:/Demo/ceshi/hebing.pdf";// 输入流FileOutputStream fos = new FileOutputStream(pdfPath);// 创建文档Document doc = new Document(null, 0, 0, 0, 0);//doc.open();// 写入PDF文档PdfWriter.getInstance(doc, fos);// 读取图片流BufferedImage img = null;// 实例化图片Image image = null;// 获取图片文件夹对象File file = new File(imageFolderPath);File[] files = file.listFiles();// 循环获取图片文件夹内的图片for (File file1 : files) {if (file1.getName().endsWith(".png")|| file1.getName().endsWith(".jpg")|| file1.getName().endsWith(".gif")|| file1.getName().endsWith(".jpeg")|| file1.getName().endsWith(".tif")) {// System.out.println(file1.getName());imagePath = imageFolderPath + file1.getName();System.out.println(file1.getName());// 读取图片流img = ImageIO.read(new File(imagePath));// 根据图片大小设置文档大小doc.setPageSize(new Rectangle(img.getWidth(), img.getHeight()));// 实例化图片image = Image.getInstance(imagePath);// 添加图片到文档doc.open();doc.add(image);}}// 关闭文档doc.close();} catch (IOException e) {e.printStackTrace();} catch (BadElementException e) {e.printStackTrace();} catch (DocumentException e) {e.printStackTrace();}}public static void main(String[] args) {long time1 = System.currentTimeMillis();toPdf("D:/Demo/ceshi/", "D:/Demo/pdf/hebing.pdf");long time2 = System.currentTimeMillis();int time = (int) ((time2 - time1)/1000);System.out.println("执行了:"+time+"秒!");}}

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