* url转换成PDF
* @param url 地址
* @param saveFilePath 存储PDF的地址
@SneakyThrows({Exception.class})
public static void url2Pdf(String url, String saveFilePath) {
String command = String.format("%s %s %s", "wkhtmltopdf", url, saveFilePath);
Process process = null;
try {
process = Runtime.getRuntime().exec(command);
} catch (IOException e) {
throw new Exception("执行命令失败!");
process.waitFor();
log.info("=======【地址 {} 】======== FINISH: [{}] ===============", url,command);
到这里基本上应该可以使用 wkhtmltox
总体的思路就是 把之前的jdk
镜像和 wkhtmltox
集成 制作成新的基础镜像
然后在项目里通过cmd
命令去执行 url
转换成PDF
文章是我后面回忆时候写的如果存在问题 欢迎批评指正~ 谢谢
有些复杂的页面可能无法支持,相对简单些的 兼容性应该可以的,对于我自己的需求基本满足
本文将会基于SpringBoot版本:2.3.8.RELEASE使用转换成 pdf文件。在使用wkhtmltopdf之前 同事有尝试用itext创建的PDF我觉得兼容性不好,然后参考其他博客觉得兼容性在样式上好一些tips:仅作为学习笔记记录到这里基本上应该可以使用wkhtmltox总体的思路就是 把之前的jdk镜像和wkhtmltox集成 制作成新的基础镜像然后在项目里通过cmd命令去执行url转换成PDF有些复杂的页面可能无法支持,相对简单些的 兼容性应该可以的,对于我自己的需求基本满足。
如需直接下载请点击下载页面
wkhtmltopdf并且wkhtmltoimage是开源 (LGPLv3) 命令行工具,用于使用 Qt WebKit 渲染引擎将 HTML 渲染为 PDF 和各种图像格式。这些完全“无头”运行,不需要显示或显示服务。
支持多个平台,可在windows,linux,mac等系统下运行。
生成PDF时会自动根据你在HTML页面中H标签生成树形目录结构。
小巧方便,转换速度快。
我还没有感受
回答: 使用wkhtmltopdf工具导出PDF时,可以使用一些参数来控制导出的结果。具体的参数可以参考以下命令模板:wkhtmltopdf 参数 shell_exec("D:\wkhtmltopdf\bin\wkhtmltopdf.exe --page-size A4 -q -B 0 -L 0 -R 0 -T 0 --no-pdf-compression 1html 1.pdf")。\[1\] 这个命令模板中的参数包括:
- --page-size A4:设置页面大小为A4。
- -q:设置静默模式,不显示任何输出。
- -B 0 -L 0 -R 0 -T 0:设置页面的边距为0,即无边距。
- --no-pdf-compression:禁用PDF压缩,以保持原始质量。
这些参数可以根据具体需求进行调整,以满足导出PDF的要求。同时,wkhtmltopdf是一个开源的命令行工具,可以将HTML渲染为PDF和其他图像格式,使用Qt WebKit渲染引擎,完全“无头”运行,不需要显示器或显示服务。\[2\] 另外,如果需要在生成的PDF中添加水印,可以使用页眉设置HTML的方式来显示水印,通过设置before和after伪元素来添加水印图片。\[3\]
#### 引用[.reference_title]
- *1* [wkhtmltopdf 导出pdf 样例](https://blog.csdn.net/u011713224/article/details/90518707)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [使用Wkhtmltopdf导出PDF](https://blog.csdn.net/qq_40603422/article/details/115763450)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [wkhtmltopdf导出html到pdf](https://blog.csdn.net/weixin_30753873/article/details/95972499)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]