java url转pdf
需要的插件地址:https://www.e-iceblue.cn/pdf_java_conversion/java-convert-html-to-pdf.html#A
依赖下载:
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.pdf</artifactId>
<version>9.6.2</version>
</dependency>
</dependencies>
public class PdfUtil {
/**
* pdf转url
*@param url rul地址
*@return byte
*@Author chengjun
*@Date 2023/6/4 12:39
*/
public static byte[] convertUrlToPdf(String url) {
// 转换后的结果文档
if (StringUtil.isEmpty(url)) {
return null;
}
StringBuilder fileNameBuilder = new StringBuilder();
String subTime = String.valueOf(System.currentTimeMillis()).substring(9, 11);
String uuid = UUID.randomUUID().toString();
fileNameBuilder.append("/resources/").append(subTime).append(uuid).append(".pdf");
// 解压后的插件本地地址
String pluginPath = "C:\\dev_exit\\plugins-windows-x64\\plugins";
HtmlConverter.setPluginPath(pluginPath);
// 调用方法转换到PDF并设置PDF尺寸
HtmlConverter.convert(url, fileNameBuilder.toString(), true, 10000, new Size(900f, 800f), new PdfMargins(0));
try {
// 创建文件输入流
FileInputStream fis = new FileInputStream(fileNameBuilder.toString());
// 创建字节数组输出流
ByteArrayOutputStream bos = new ByteArrayOutputStream();
// 一次性读取所有字节到数组中
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = fis.read(buffer)) != -1) {
bos.write(buffer, 0, bytesRead);
}
// 获取字节数组
byte[] bytes = bos.toByteArray();
// 打印字节数组长度
System.out.println(bytes.length);
// 关闭流
fis.close();
bos.close();
return bytes;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}