本文转载于:https://blog.csdn.net/aWDac/article/details/80865754
      https://blog.csdn.net/xcl168/article/details/75675781
后台网页截图参考:https://blog.csdn.net/xsviglh_/article/details/105321649

一、概述

  试过使用wkhtmltopdf来将网页打印成PDF文件,但有些网页转出来是空白的。然后发现Chrome Headless模式可以实现我想要的,而且用Chrome来实现,可以排除掉很多Bug。
  Chrome Headless模式相当于一个没有界面的浏览器,能实现很多功能,能实现pdf打印,截图等,扩展下,可以 做web测试,爬虫抓取等等。

二、安装

sudo apt-get install libxss1 libappindicator1 libindicator7
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
sudo apt-get install -f

三、命令使用

google-chrome --headless --disable-gpu --print-to-pdf='test.pdf' https://www.aliyun.com/

参数说明:

  • –headless:无头模式,就是无界面模式运行
  • –print-to-pdf:指定转pdf的路径和名称
  • –no-sandbox:让Chrome在root权限下跑
  • –window-size:专门应对无头浏览器中不能最大化屏幕的方案,如–window-size=1920,1080

四、Java中使用

  • 请参考https://github.com/fanyong920/jvppeteer
  • 要使用 maven,请将此依赖添加到pom.xml文件中:
<dependency><groupId>io.github.fanyong920</groupId><artifactId>jvppeteer</artifactId><version>1.1.1</version>
</dependency>
  • 生成页面的 PDF
 //自动下载,第一次下载后不会再下载BrowserFetcher.downloadIfNotExist(null);ArrayList<String> arrayList = new ArrayList<>();//生成pdf必须在无厘头模式下才能生效LaunchOptions options = new LaunchOptionsBuilder().withArgs(arrayList).withHeadless(true).build();arrayList.add("--no-sandbox");arrayList.add("--disable-setuid-sandbox");Browser browser = Puppeteer.launch(options);Page page = browser.newPage();page.goTo("https://www.baidu.com/?tn=98012088_10_dg&ch=3");PDFOptions pdfOptions = new PDFOptions();pdfOptions.setPath("test.pdf");page.pdf(pdfOptions);page.close();browser.close();

四、 官方文档

https://developers.google.cn/web/updates/2017/04/headless-chrome#create_a_pdf

利用Chrome Headless模式网页转PDF相关推荐

  1. chrome headless php,chrome headless+php实现打印pdf服务

    前言 之前的项目做过浏览器某个页面打印成pdf的服务,所用的是tcpdf这个包,大概思路就是后台写一套跟页面一样的html模版,打印的时候把数据渲染进去,不好的地方在于所见非所得,你得花大把的时间去做 ...

  2. 技能树升级——Chrome Headless模式 - 全栈客栈 - SegmentFault

    技能树升级--Chrome Headless模式 - 全栈客栈 - SegmentFault TNPM

  3. 利用SelectPdf插件将网页生成PDF

    简介 适用于.NET Framework和.NET Core的HTML至PDF转换器 SelectPdf提供的在线html到pdf转换器使用.NET的Select.Pdf库中的html到pdf转换器. ...

  4. chrome headless抓网页

    index.js /* const { Chromeless } = require('chromeless');async function run() {const chromeless = ne ...

  5. python headless_Python 爬虫杂记 - Chrome Headless

    Chrome Headless使用 测试 Chrome 版本: 62.0.3202.89(正式版本)(64 位) Python环境:python2.7 注: Headless模式需要59版本及以上! ...

  6. selenium +chrome headless Manual 模式渲染网页

    可以看看这个里面的介绍,写得很好.https://duo.com/blog/driving-headless-chrome-with-python from selenium import webdr ...

  7. selenium利用javascript进行自动打印网页为PDF

    目录 需求 思路步骤 具体代码 需求 selenium爬取页面的时候有时需要保持页面为PDF格式 并且不能使用pdfkit 模块(有的网址限制必须浏览器打开) 思路步骤 一:导入模块 二:在初始化dr ...

  8. python chrome headless_Chrome Headless模式(二)——Python+selenium+headerless

    selenium调用headerless 1. 基础环境: 我使用的环境: python:3.5.4 python的selenium库: 3.141.0 chrome浏览器:  71.0.3578.9 ...

  9. 反爬虫——使用chrome headless时一些需要注意的细节

    以前我们介绍过chrome headless的用法(https://www.cnblogs.com/apocelipes/p/9264673.html). 今天我们要稍微提一下其中一个细节. 反爬和w ...

最新文章

  1. 自动换行的draw2d标签
  2. 【SQL提数】case..when..then..end的使用
  3. TSM对Oracle数据库备份脚本
  4. java学习笔记:使用dom4j解析xml
  5. WIN32获取当前进程模块句柄和HINSTANCE
  6. 宽屏企业网站源码中英php_宽屏版大气企业网站源码dede网站源码中英文网站模板SEO...
  7. ubuntu,kali linux和windows三系统流水账——写给自己
  8. ajax 分页 评论刷新,评论:js无刷新分页(原创)
  9. JIT编译器,内联和转义分析
  10. JVM分代垃圾回收策略的基础概念
  11. hihoCoder - 1075 开锁魔法III
  12. 2021日喀则市江孜高考成绩查询,2021西藏高考成绩查询时间 西藏高考成绩查询入口...
  13. 记录:添加trace_event埋点并调用
  14. Android Framework实战视频系列
  15. 小米无线路由器服务器用户名和密码忘了,小米路由器登陆入口用户名和密码指南...
  16. 汤明哲混沌大学厦门开讲 行业大咖助阵一起探讨战略管理
  17. 吉林大学软件需求分析 Software Requirement Analysis
  18. 常见的软文标题写作策略
  19. Appium+python自动化(三十八) - Appium自动化测试框架综合实践 - 框架简介-助你冲击高薪,迎娶白富美(超详解)...
  20. 提到图像数据脱敏,看这家公司如何理解

热门文章

  1. python 分布式框架_Python 并行分布式框架:Celery 超详细介绍
  2. fseek,ftell,rewind函数
  3. Java基础:volatile详解
  4. 寒假宅喵java学习
  5. Android性能优化(一):APP启动优化
  6. 通过调试微信小程序示例代码解析flex布局参数功能(一)
  7. 『Python学习笔记』Git的使用教程
  8. Intrinsics函数Tips与踩坑
  9. redit高可用之哨兵
  10. 那些有趣的网站系列(十二)