[悬赏 5000] java 中如何将一个 html 文件转换成一个 pdf
我有一个html文件report.html.zip
想将他转换成一个pdf文件
目前试过以下五种方案 都以失败告终
- Flying Saucer
- openhtmltopdf
- openpdf
- aspose-pdf
- pd4ml
有可能是我这个html文件里面许多样式都是生成的并且包含许多js导致解析失败
悬赏5000,大佬们求求了
"我有一个html文件[链接] 想将他转换成一个pdf文件 目前试过以下五种方案 都以失败告终 Flying Saucer openhtmltopdf openpdf aspose-pdf pd4ml 有可能是我这个html文件里面许多样式都是生成的并且包含许多js导致解析失败 悬赏5000,大佬们求 ...."
我有一个html文件report.html.zip
想将他转换成一个pdf文件
目前试过以下五种方案 都以失败告终
有可能是我这个html文件里面许多样式都是生成的并且包含许多js导致解析失败
悬赏5000,大佬们求求了
/**
* 将html转换成pdf
*/
public static File htmlToPdf(String fileName, String html) throws IOException, DocumentException {
File file = new File(fileName);
if (!file.getParentFile().exists()) { //如果文件的目录不存在
file.getParentFile().mkdirs(); //创建目录
}
FileOutputStream outputStream = new FileOutputStream(fileName);
ITextRenderer renderer = new ITextRenderer();
renderer.setDocumentFromString(html);
// 解决中文支持问题
ITextFontResolver fontResolver = renderer.getFontResolver();
//fontResolver.addFont("font/simfang.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
fontResolver.addFont("font/msyh.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
fontResolver.addFont("font/msyhbd.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
renderer.layout();
renderer.createPDF(outputStream);
outputStream.close();
return file;
}
你这个html大量内容是运行时js解析后生成的,所以对于java解析html并且输出pdf来说,是不好做到的,因为java只会用xml形式解析静态html标签,解析不到运行时生成内容。
一个建议是使用chrome无头模式命令行,打印为pdf。
例如:
https://blog.csdn.net/mengting2040/article/details/113108538
已经擅自做主将这个功能砍掉