一、背景介绍
这周产品提了一个需求,提供一个空出一些位置的证书图片,将这张图片转为pdf,并将指定的文字(如:学生姓名)打印到证书上的指定位置,做了个demo来实现这个功能。
二、需求分析
实际上需求可以拆解为两个部分
- 一是将一个url链接的图片转为pdf文件
- 二是将文字印到图片的指定位置
三、引入依赖
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13</version>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>4.2.1</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
四、具体实现
4.1 将图片url转为byte[]数组
我们有一个url的图片地址,我们需要将它处理成二进制byte[]数组,方便进行后续操作。
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.tuple.Pair;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* @Author: KD
* @Date: 2021/1/6 3:42 下午
*/
@Slf4j
@Data
public class FileUrlUtil {
/**
* 从指定url获取byte[]
*
* @param urlStr
* @return
*/
public static Pair<