Java实现批量图片生成PDF文件,这个也是比较常用到的。
需要引入一个包
代码语言:javascript复制<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>${lastest.version}</version>
</dependency>
代码如下:
代码语言:javascript复制public class PdfUtils {
private static String FILEPATH = "E:\pdf\";
/**
* @param fileName 生成pdf文件
* @param imagesPath 需要转换的图片路径的数组
*/
public static void imagesToPdf(String fileName, String imagesPath) {
try {
fileName = FILEPATH fileName ".pdf";
File file = new File(fileName);
// 第一步:创建一个document对象。
Document document = new Document();
document.setMargins(0, 0, 0, 0);
// 第二步:
// 创建一个PdfWriter实例,
PdfWriter.getInstance(document, new FileOutputStream(file));
// 第三步:打开文档。
document.open();
// 第四步:在文档中增加图片。
File files = new File(imagesPath);
String[] images = files.list();
int len = images.length;
for (int i = 0; i < len; i ) {
if (images[i].toLowerCase().endsWith(".bmp")
|| images[i].toLowerCase().endsWith(".jpg")
|| images[i].toLowerCase().endsWith(".jpeg")
|| images[i].toLowerCase().endsWith(".gif")
|| images[i].toLowerCase().endsWith(".png")) {
String temp = imagesPath "\" images[i];
Image img = Image.getInstance(temp);
img.setAlignment(Image.ALIGN_CENTER);
img.scalePercent(100);
// 根据图片大小设置页面,一定要先设置页面,再newPage(),否则无效
document.setPageSize(new Rectangle(img.getWidth(), img.getHeight()));
document.newPage();
document.add(img);
}
}
// 第五步:关闭文档。
document.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
imagesToPdf("我的pdf文件", "E:\tmp");
}
}