前几日收到某公司基因检测报告,一人问我能不能还原一下。我说可以,还是传统的方案 python+latex 毕竟是我自己比较熟悉的语言。后来我请教了一下该公司的领导,回答用的puppeteer+chrome headless 这几天研究了一下,得出自己的一些结论。不过在选择上依据个人的方案和喜好而定,也是不错的选择。还有就是 puppeteer 测试的时间比较短 有什么不足之处,欢迎补充。
puppeteer 是一个Chrome官方出品的headless Chrome node库。它提供了一系列的API, 可以在无UI的情况下调用Chrome的功能, 适用于爬虫、自动化处理等各种场景
根据官网上描述,puppeteer 具有以下作用:
- 生成页面截图和 PDF
- 自动化表单提交、UI 测试、键盘输入等
- 创建一个最新的自动化测试环境。使用最新的 JavaScript 和浏览器功能,可以直接在最新版本的 Chrome 中运行测试。
- 捕获站点的时间线跟踪,以帮助诊断性能问题。
- 爬取 SPA 页面并进行预渲染(即'SSR')
- ......
由于我们这次只是对比生成PDF的功能,下面个人整理了一些关于两个方案之间的做了一些比较。
- 布局
latex | puppeteer | 描述 | |
---|---|---|---|
页码 | ✅ | ✅ | 页码都可生成 latex生成页码更灵活 |
目录 | ✅ | ❎ | puppeteer不能自动生成,latex生成目录更灵活 |
单双页样式 | ✅ | ❎ | puppeteer 没有发现单双页概念。很不爽 |
HTML/CSS | ❎ | ✅ | puppeteer 更省一筹,CSS可更好的美化页面 |
数学公式 | ✅ | ✅ | latex天生支持 |
页眉页脚 | ✅ | ✅ | 都可以生成,如果更复杂的页眉页脚puppeteer支持不是很好 |
表格跨页 | ✅ | ❎ | latex longtable 效果比puppeteer好的很。比如end head概念 |
标题 | ✅ | ✅ | 大同小异,都可以是文字,图片 |
... | ... | ... | 未完待续 |
- 属性
latex | puppeteer | 描述 | |
---|---|---|---|
编程 | 👎 | 👍 | 同为标签语言,latex需要学习的削为多一些 |
解析器大小 | 👎 | 👍 | puppeteer 借助Chrome latex 自身的解析器要5G往上 安装迁移都顶不住 |
解析器内存 | 👍 | 👍 | Chrome VS texlive 都还可以吧 |
社区 | 👍 | 👎 | puppeteer文档过于简单,社区也没有latex大 |
... | ... | ... | 未完待续 |
可以看得出来如果报告设计的PDF不是那么复杂,用puppeteer + HTML 学习起来比较简单,入手简单,用起来比较方便。相反,如果报告层面做不到建议还是用latex比较方便。
当然,HTML转成PDF的工具有很多比如wkhtmltopdf 也是一个很好的选择,开发怎么顺手怎么来。
试过一番之后个人还是觉得Latex 可能对于我来说是一个比较好的选择,毕竟习惯了。 已经还原完毕了,并且形成了流程,但是还是用的latex ̄□ ̄||。
本文由 liyunke 创作.
最后编辑时间为: Aug 27, 2019 at 07:24 am