java 图片合并成pdf_java将多张图片合并转为PDF

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+"秒!");

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值