JAVA 图片转PDF
2021-10-13 本文已影响0人
任未然
没什么好说的,直接上代码吧
import com.itextpdf.text.BadElementException;
import com.itextpdf.text.Document;
import com.itextpdf.text.Image;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfWriter;
import org.springframework.util.CollectionUtils;
import java.io.IOException;
import java.io.OutputStream;
import java.util.List;
/**
* Pdf工具类
*
* @author 王培任
* @date 2021/10/13
*/
public class PdfUtil {
/**
* 图片转PDF
* @param images 图片的url
* @throws Exception
*/
public static void imageToPdf(List<String> images, OutputStream outputStream) throws Exception {
Document document = new Document();
// 设置文档页边距
document.setMargins(0, 0, 0, 0);
try {
PdfWriter.getInstance(document, outputStream);
// 打开文档
document.open();
if(!CollectionUtils.isEmpty(images)){
images.forEach(url->{
try {
Image image = getImage(url);
// 设置页面宽高与图片一致
Rectangle rectangle = new Rectangle(image.getScaledWidth(), image.getScaledHeight());
document.setPageSize(rectangle);
// 新建一页添加图片
document.newPage();
document.add(image);
} catch (Exception e) {
e.printStackTrace();
}
});
}
} finally {
// 关闭文档
document.close();
try {
outputStream.flush();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 获取图片
* @param url
* @return
* @throws BadElementException
* @throws IOException
*/
private static Image getImage(String url) throws BadElementException, IOException {
// 获取图片的宽高
Image image = Image.getInstance(url);
// 调整图片缩放
image.scaleToFit(600,600);
// 图片居中
image.setAlignment(Image.ALIGN_CENTER);
return image;
}
}