1.在pom文件里
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
2.在pom文件里加上
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.pdf</artifactId>
<version>5.4.0</version>
</dependency>
3.工具启动
import com.spire.pdf.graphics.PdfMargins;
import com.spire.pdf.htmlconverter.qt.HtmlConverter;
import com.spire.pdf.htmlconverter.qt.Size;
public class UrlToPDF {
// HtmlToPdfInterceptor HtmlToPdf
public static void main(String[] args) {
// 定义需要转换的HTML
String url = "https://www.so.com/s?q=%E6%A2%81%E5%AE%9E%E7%AC%AC26%E6%AC%A1%E5%A4%87%E8%80%83&ie=utf-8&src=zhss_se7_newtab_big_hot";
// 转换后的结果文档
String fileName = "D:\\123.pdf";
// 解压后的插件本地地址
String pluginPath = "E:\\BaiduNetdiskDownload\\plugins-windows-x64";
HtmlConverter.setPluginPath(pluginPath);
// 调用方法转换到PDF并设置PDF尺寸
HtmlConverter.convert(url, fileName, true, 10000, new Size(700f, 800f), new PdfMargins(0));
}
}
4.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class HtmlToPdfInterceptor extends Thread {
private InputStream is;
public HtmlToPdfInterceptor(InputStream is){
this.is = is;
}
public void run(){
try{
InputStreamReader isr = new InputStreamReader(is, "UTF-8");
BufferedReader br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null) {
System.out.println(line.toString()); // 输出内容 可注释
}
}catch (IOException e){
e.printStackTrace();
}
}
}
5.
import java.io.File;
public class HtmlToPdf {
// wkhtmltopdf在系统中的路径
private static String toPdfTool = "D:\\xiaoma\\wkhtmltopdf\\bin\\wkhtmltopdf.exe";
/**
* html转pdf
*
* @param srcPath html路径,可以是硬盘上的路径,也可以是网络路径
* @param destPath pdf保存路径
* @return 转换成功返回true
*/
public static boolean convert(String srcPath, String destPath) {
File file = new File(destPath);
File parent = file.getParentFile();
// 如果pdf保存路径不存在,则创建路径
if (!parent.exists()) {
parent.mkdirs();
}
StringBuilder cmd = new StringBuilder();
if (System.getProperty("os.name").indexOf("Windows") == -1) {
// 非windows 系统
// toPdfTool = FileUtil.convertSystemFilePath("/home/ubuntu/wkhtmltox/bin/wkhtmltopdf");
}
cmd.append(toPdfTool);
cmd.append(" ");
cmd.append(" --disable-javascript ");
cmd.append(" --encoding <UTF-8> ");
cmd.append(srcPath);
cmd.append(" ");
cmd.append(destPath);
boolean result = true;
try {
Process proc = Runtime.getRuntime().exec(cmd.toString());
HtmlToPdfInterceptor error = new HtmlToPdfInterceptor(proc.getErrorStream());
HtmlToPdfInterceptor output = new HtmlToPdfInterceptor(proc.getInputStream());
error.start();
output.start();
proc.waitFor();
} catch (Exception e) {
result = false;
e.printStackTrace();
}
return result;
}
}