1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > java 图片合成pdf_java将多张图片合并转为PDF

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

时间:2020-12-14 17:59:52

相关推荐

java 图片合成pdf_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+"秒!");

}

}

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