wkhtmltopdf生成图片的实践教程,包含完整的环境配置、参数剖析及多语言调 ...

打印 上一主题 下一主题

主题 1733|帖子 1733|积分 5199

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
欢迎来到涛涛聊AI,最近在研究HTML生成卡片的功能,一起学习下吧。
一、工具特性与安装

wkhtmltoimage是基于WebKit引擎的开源命令行工具,可将HTML网页转换为JPG/PNG等图片格式,支持CSS渲染、JavaScript执行和响应式布局。安装方式:
  1. # Linux
  2. wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.bionic_amd64.deb  
  3. sudo dpkg -i wkhtmltox_0.12.6-1.bionic_amd64.deb  
  4. # Windows
  5. 下载安装包后,将安装路径(如C:\Program Files\wkhtmltopdf\bin)加入系统PATH变量
复制代码

二、底子图片生成命令

  1. # 生成PNG图片(默认分辨率)
  2. wkhtmltoimage https://www.baidu.com  output.png  
  3. # 调整图片质量与尺寸
  4. wkhtmltoimage --quality 85 --width 1200 --height 900 input.html  output.jpg  
  5. # 禁用JS提升生成速度
  6. wkhtmltoimage --disable-javascript page.html  image.png  
复制代码
三、高级参数配置(完整示例)


  1. wkhtmltoimage \
  2. --format png \          # 输出格式
  3. --crop-w 800 \          # 截图宽度
  4. --crop-h 600 \          # 截图高度
  5. --zoom 1.5 \            # 缩放比例
  6. --enable-local-file-access \  # 允许加载本地资源
  7. --no-images \           # 禁用图片加载
  8. --user-agent "Mozilla/5.0" \  # 自定义UA
  9. header.html  body_content.html  footer.html  combined_output.png  
复制代码
四、编程语言集成示例

PHP生成方案

  1. <?php
  2. $url = 'https://example.com/report';
  3. $outputFile = '/var/www/output/report_'.date('Ymd').'.png';
  4. $command = "wkhtmltoimage --quality 90 --log-level none '$url' '$outputFile'";
  5. exec($command, $output, $returnCode);
  6. if ($returnCode === 0) {
  7.     header('Content-Type: image/png');
  8.     readfile($outputFile);
  9. } else {
  10.     echo "生成失败,错误码:$returnCode";
  11. }
复制代码
Python调用方案

  1. import pdfkit
  2. options = {
  3.     'format': 'png',
  4.     'quality': 100,
  5.     'width': 1920,
  6.     'javascript-delay': 2000  # 等待JS执行2秒
  7. }
  8. pdfkit.from_url(
  9.     'http://internal-report-system/page?id=123',
  10.     'report_snapshot.png',
  11.     options=options
  12. )
复制代码
五、现实应用场景


  • 主动化测试验证:生成网页改版前后对比图
  • 数据报告存档:定时抓取Dashboard生成时间序列快照
  • 舆情监控:生存外交媒体页面证据截图
  • 响应式校验:批量生成差别分辨率设备预览图
六、常见标题处理


  • 中文乱码:安装中文字体包(如fonts-wqy-zenhei)
  • 异步加载缺失:使用--javascript-delay 5000参数等候加载
  • 登录认证:通过--cookie name value传递会话信息
  • 内存溢出:添加--use-xserver参数启用X Server渲染
   完整参数手册可通过wkhtmltoimage --help检察,更多实践案例可参考中的分页控制与布局优化技巧。生成图片与PDF的紧张区别在于输特别式参数,其他配置逻辑基本相通。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

天空闲话

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表