使用iText组合图片生成PDF文件
关于iText的介绍不必说了,简单用它的功能合并若干图片到一个PDF中,目前iText支持的图像格式有:GIF, Jpeg, PNG, wmf等格式。
代码如下:(需导入jar包,这里使用itextpdf-5.5.3.jar)
import java.io.FileOutputStream;
import java.net.URL;
import com.itextpdf.text.Document;
import com.itextpdf.text.Image;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfWriter;
/**
*
* @author hokis
* @version 1.0
*
* jdk1.7,iText5.5.3 下测试通过
*
*/
public class TestiText {
public static void main(String[] args) {
//图片路径
String[] pics = {"file:F:\\test\\1.jpg","file:F:\\test\\2.jpg","file:F:\\test\\3.jpg","file:F:\\test\\4.jpg"};
//输出PDF路径
String targetPDF = "F:\\test\\res.pdf";
try {
toPDF(pics,targetPDF);
System.out.println("成功生成PDF!");
} catch (Exception e) {
e.printStackTrace();
System.out.println("生成失败!");
}
}
/**
* 图片组合生成PDF
* @param pics
* @param targetPDF
* @throws Exception
*/
public static void toPDF(String[] pics, String targetPDF) throws Exception {
//创建新的PDF文档:A4大小,左右上下边框均为0
Document doc = new Document(PageSize.A4, 0, 0, 0, 0);
try {
//获取PDF书写器
PdfWriter.getInstance(doc, new FileOutputStream(targetPDF));
//打开文档
doc.open();
//图片对象
Image img = null;
//遍历
for (int i = 0; i < pics.length; i++) {
//获取图片
img = Image.getInstance(new URL(pics[i]));
//使图片与A4纸张大小自适应
img.scaleToFit(new Rectangle(PageSize.A4));
//添加到PDF文档
doc.add(img);
//下一页,每张图片一页
doc.newPage();
}
} catch (Exception e) {
throw e;
}finally{
//关闭文档
doc.close();
}
}
}
由于可以通过URL指定图片来源,因而也可以引用网络上的图片资源,