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+"秒!");
}
}
總結
以上是生活随笔為你收集整理的java 图片合成pdf_java将多张图片合并转为PDF的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: golang MySQL 占内存_gol
- 下一篇: java serializable用法_