package com.smbea.image; import com.artup.util.image.ImageUtil; import com.itextpdf.text.*; import com.itextpdf.text.pdf.PdfWriter; import lombok.extern.slf4j.Slf4j; import org.junit.Test; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; /** * <p>采用 ITextPDF 类库测试向 PDF 中加入图片的示例</p> * @author hapday * @date 2018/4/19 / @time 14:39 */ @Slf4j public class PdfImageTest { @Test public void imageTest(){ Rectangle rectangle = new Rectangle(PageSize.A4); // 设置 PDF 纸张矩形,大小采用 A4
rectangle.setBackgroundColor(BaseColor.ORANGE); // 设置背景色 //创建一个文档对象,设置初始化大小和页边距
Document document = new Document(rectangle, 10, 10, 10, 10); // 上、下、左、右页间距
String pdfPath = "D://pdfImage_test.pdf"; // PDF 的输出位置
try { PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(pdfPath)); } catch (DocumentException e) { log.error("将文档对象设置到文件输出流中 - 出错了!", e); } catch (FileNotFoundException e) { log.error("未找到指定的文件!", e); } document.open(); // 打开文档对象
String imagePath = "F:\\IdeaProjects\\artup-mobile\\src\\main\\webapp\\image\\Docker.jpg"; // 图片的绝对路径
Image image = null; // 声明图片对象
try { image = Image.getInstance(imagePath); // 取得图片对象
} catch (BadElementException | IOException e) { log.error("实例化【图片】 - 失败!", e); return; } image.scaleAbsolute(ImageUtil.getImageWidth(imagePath), ImageUtil.getImageHeight(imagePath)); image.setAbsolutePosition(10, 20); // (以左下角为原点)设置图片的坐标
try { document.add(image); } catch (DocumentException e) { log.error("将图片对象加入到文档对象中时 - 出错了!", e); } document.close(); // 关闭文档
} }