使用PHP将HTML转换为PDF或图片:分析

81 篇文章 0 订阅
11 篇文章 0 订阅
使用别人的程序,发现将求职者在线简历,可以生成 PDF 简历,以及简历图片,供求职者下载。
这样,求职者也有兴趣完善自己的在线简历了,可以根据所选的模板,生成各种漂亮的简历,然后下载下来。
公司也打算做一下,这个功能交给同事做了,这里我也稍微了解下。

思考:
	生成图片:
		后端:我们使用 GD 库、Imagick 等图片库,来通过坐标来生成图片,自己实现相当麻烦!
		前端:现在经常使用的是 canvas 绘图,原理和后端基本一样,自己实现也相当麻烦!

		后端这边有没有使用过别人的类库,来生成图片,我自己都忘记了...
		前端这块,我们项目中目前,倒是生成图片,都使用的 html2canvas,写好 html,直接生成图片(过程中,可能也有点坑,生成高清图等等)
	生成 PDF:
		对于 PDF,这边也没了解过,肯定是使用别人的库,而且很可能 PHP 是搞不了的,得系统安装其他软件。
		项目中,倒是实现了 word 转 pdf,这个用的技术,参考我之前写的博客,做过就忘记了,脑子不好使了都

	此外,需要特别注意:
		现在前端技术发展的太快,好多好东西,我们后端可能接触的不多,得稍微了解点前端技术!

查找资料:
	百度
	google
	github
	packagist.org
	...

关键词:
	我们首先得明白,在线的这种非常漂亮的简历,实现的最简单过程肯定是:前端写好 HTML 页面,然后通过别人的库,将 HTML 转换为 PDF 或 图片,所以,我们就可以搜索,类似:
		使用 PHP 将 HTML 转换为 PDF
		使用 PHP 将 HTML 转换为图片
		php html to pdf
		php html to image
		(英文不好,自行翻译)
		...

搜索到的几个内容:

	knplabs/knp-snappy,基于 wkhtmltox 的 PHP 扩展包
		https://laravel-china.org/articles/13472/teach-you-how-to-use-php-to-generate-pdf-and-image-gracefully

	提到了 laravel-snappy(也是基于 wkhtmltox), laravel-DOMPDF
		https://laravel-china.org/articles/5666/pdf-extended-package-usage
		https://github.com/barryvdh/laravel-snappy

		注:
			laravel-snappy 是对上面的 knplabs/knp-snapp 的 laravel 封装

	PHP 文档里的 '非文本内容的 MIME 输出',也提到了 'wkhtmltox',文档里涉及的是 PHP 的扩展包
		http://php.net/manual/zh/refs.utilspec.nontext.php

	还有提到 PDFKit,是一个用于 Node 和 浏览器的 PDF 文档生成库:
		http://pdfkit.org/

	这个是将 PDF 转换为 HTML:
		https://github.com/coolwanglu/pdf2htmlEX

	这个是 github 搜索的,就不一一说明了:
		https://github.com/search?o=desc&q=html+to+pdf&s=stars&type=Repositories

发现,搜索到的几个包,用的都是 wkhtmltox,而 wkhtmltox 对于很多的 CSS3 和 HTML5 特性可能不支持,到官方 issues 搜索了下:
	https://github.com/wkhtmltopdf/wkhtmltopdf/issues/4092

有人提到了:
	Puppeteer - 这个是谷歌团队开发的,用于操作浏览器的,可以在浏览器上做的事情 Puppeteer 都能胜任。

综上所述,我打算使用下:
	barryvdh/laravel-snappy

	Puppeteer

一次性看来搞不来,分上3篇来写:
	barryvdh/laravel-snappy 笔记,参考链接:
        https://blog.csdn.net/beyond__devil/article/details/84646559
​
使用别人的程序,发现将求职者在线简历,可以生成 PDF 简历,以及简历图片,供求职者下载。
这样,求职者也有兴趣完善自己的在线简历了,可以根据所选的模板,生成各种漂亮的简历,然后下载下来。
公司也打算做一下,这个功能交给同事做了,这里我也稍微了解下。

思考:
	生成图片:
		后端:我们使用 GD 库、Imagick 等图片库,来通过坐标来生成图片,自己实现相当麻烦!
		前端:现在经常使用的是 canvas 绘图,原理和后端基本一样,自己实现也相当麻烦!

		后端这边有没有使用过别人的类库,来生成图片,我自己都忘记了...
		前端这块,我们项目中目前,倒是生成图片,都使用的 html2canvas,写好 html,直接生成图片(过程中,可能也有点坑,生成高清图等等)
	生成 PDF:
		对于 PDF,这边也没了解过,肯定是使用别人的库,而且很可能 PHP 是搞不了的,得系统安装其他软件。
		项目中,倒是实现了 word 转 pdf,这个用的技术,参考我之前写的博客,做过就忘记了,脑子不好使了都

	此外,需要特别注意:
		现在前端技术发展的太快,好多好东西,我们后端可能接触的不多,得稍微了解点前端技术!

查找资料:
	百度
	google
	github
	packagist.org
	...

关键词:
	我们首先得明白,在线的这种非常漂亮的简历,实现的最简单过程肯定是:前端写好 HTML 页面,然后通过别人的库,将 HTML 转换为 PDF 或 图片,所以,我们就可以搜索,类似:
		使用 PHP 将 HTML 转换为 PDF
		使用 PHP 将 HTML 转换为图片
		php html to pdf
		php html to image
		(英文不好,自行翻译)
		...

搜索到的几个内容:

	knplabs/knp-snappy,基于 wkhtmltox 的 PHP 扩展包
		https://laravel-china.org/articles/13472/teach-you-how-to-use-php-to-generate-pdf-and-image-gracefully

	提到了 laravel-snappy(也是基于 wkhtmltox), laravel-DOMPDF
		https://laravel-china.org/articles/5666/pdf-extended-package-usage
		https://github.com/barryvdh/laravel-snappy

		注:
			laravel-snappy 是对上面的 knplabs/knp-snapp 的 laravel 封装

	PHP 文档里的 '非文本内容的 MIME 输出',也提到了 'wkhtmltox',文档里涉及的是 PHP 的扩展包
		http://php.net/manual/zh/refs.utilspec.nontext.php

	还有提到 PDFKit,是一个用于 Node 和 浏览器的 PDF 文档生成库:
		http://pdfkit.org/

	这个是将 PDF 转换为 HTML:
		https://github.com/coolwanglu/pdf2htmlEX

	这个是 github 搜索的,就不一一说明了:
		https://github.com/search?o=desc&q=html+to+pdf&s=stars&type=Repositories

发现,搜索到的几个包,用的都是 wkhtmltox,而 wkhtmltox 对于很多的 CSS3 和 HTML5 特性可能不支持,到官方 issues 搜索了下:
	https://github.com/wkhtmltopdf/wkhtmltopdf/issues/4092

有人提到了:
	Puppeteer - 这个是谷歌团队开发的,用于操作浏览器的,可以在浏览器上做的事情 Puppeteer 都能胜任。

综上所述,我打算使用下:
	barryvdh/laravel-snappy

	Puppeteer

一次性看来搞不来,分上3篇来写:
	barryvdh/laravel-snappy 笔记,参考链接:
        https://blog.csdn.net/beyond__devil/article/details/84646559
​
	Puppeteer 参考链接:
		https://blog.csdn.net/beyond__devil/article/details/84660702

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>