利用Chrome Headless模式网页转PDF
本文转载于: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相关推荐
- chrome headless php,chrome headless+php实现打印pdf服务
前言 之前的项目做过浏览器某个页面打印成pdf的服务,所用的是tcpdf这个包,大概思路就是后台写一套跟页面一样的html模版,打印的时候把数据渲染进去,不好的地方在于所见非所得,你得花大把的时间去做 ...
- 技能树升级——Chrome Headless模式 - 全栈客栈 - SegmentFault
技能树升级--Chrome Headless模式 - 全栈客栈 - SegmentFault TNPM
- 利用SelectPdf插件将网页生成PDF
简介 适用于.NET Framework和.NET Core的HTML至PDF转换器 SelectPdf提供的在线html到pdf转换器使用.NET的Select.Pdf库中的html到pdf转换器. ...
- chrome headless抓网页
index.js /* const { Chromeless } = require('chromeless');async function run() {const chromeless = ne ...
- python headless_Python 爬虫杂记 - Chrome Headless
Chrome Headless使用 测试 Chrome 版本: 62.0.3202.89(正式版本)(64 位) Python环境:python2.7 注: Headless模式需要59版本及以上! ...
- selenium +chrome headless Manual 模式渲染网页
可以看看这个里面的介绍,写得很好.https://duo.com/blog/driving-headless-chrome-with-python from selenium import webdr ...
- selenium利用javascript进行自动打印网页为PDF
目录 需求 思路步骤 具体代码 需求 selenium爬取页面的时候有时需要保持页面为PDF格式 并且不能使用pdfkit 模块(有的网址限制必须浏览器打开) 思路步骤 一:导入模块 二:在初始化dr ...
- 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 ...
- 反爬虫——使用chrome headless时一些需要注意的细节
以前我们介绍过chrome headless的用法(https://www.cnblogs.com/apocelipes/p/9264673.html). 今天我们要稍微提一下其中一个细节. 反爬和w ...
最新文章
- 自动换行的draw2d标签
- 【SQL提数】case..when..then..end的使用
- TSM对Oracle数据库备份脚本
- java学习笔记:使用dom4j解析xml
- WIN32获取当前进程模块句柄和HINSTANCE
- 宽屏企业网站源码中英php_宽屏版大气企业网站源码dede网站源码中英文网站模板SEO...
- ubuntu,kali linux和windows三系统流水账——写给自己
- ajax 分页 评论刷新,评论:js无刷新分页(原创)
- JIT编译器,内联和转义分析
- JVM分代垃圾回收策略的基础概念
- hihoCoder - 1075 开锁魔法III
- 2021日喀则市江孜高考成绩查询,2021西藏高考成绩查询时间 西藏高考成绩查询入口...
- 记录:添加trace_event埋点并调用
- Android Framework实战视频系列
- 小米无线路由器服务器用户名和密码忘了,小米路由器登陆入口用户名和密码指南...
- 汤明哲混沌大学厦门开讲 行业大咖助阵一起探讨战略管理
- 吉林大学软件需求分析 Software Requirement Analysis
- 常见的软文标题写作策略
- Appium+python自动化(三十八) - Appium自动化测试框架综合实践 - 框架简介-助你冲击高薪,迎娶白富美(超详解)...
- 提到图像数据脱敏,看这家公司如何理解