iTextPdf拼接图片至pdf

20 阅读1分钟

maven依赖:

<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itext7-core</artifactId>
    <version>7.2.2</version>
<type>pom</type></dependency>

代码实现:

import com.itextpdf.io.source.ByteArrayOutputStream;
import com.itextpdf.io.image.ImageData;
import com.itextpdf.io.image.ImageDataFactory;
import com.itextpdf.layout.element.Image;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.layout.Document;

//file为要添加的图片文件
public MultipartFile imagePdf(MultipartFile file) throws Exception{
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    outputStream.write(file.getBytes());
    outputStream.flush();
    ImageData imageData = ImageDataFactory.create(outputStream.toByteArray());
    Image image = new Image(imageData);
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    PdfDocument pdfDoc = new PdfDocument(new PdfWriter(outputStream));
    Document doc = new Document(pdfDoc);
    Div div = new Div();
    Paragraph paragraph = new Paragraph().setFontSize(15);
    //设置图片大小
    image.setHeight(30);
    image.setWidth(120);
    paragraph.add(image);
    div.add(paragraph);
    doc.add(div);
    doc.close();
    outputStream.close();
}