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

PHP将网页内容变成pdf(几乎无损) 前几天,做了一个小项目,全程几乎没什么太大的问题,但是在实现页面内容自动生成pdf 然后推送邮件这块感觉到一丝丝的麻烦,前前后后找过mpdf ,dompdf,fpdf等等。。。太多了,都是泪水。遇到了都是类似float定位的问题,不是中文字符不支持就是样式显示不准确。惨不忍睹! 然后呢。。开始找资料于是就有了新的办法–wkhtmltopdf 就是这个东西。几乎涵盖所有平台 简单介绍一下这个插件。只... 阅读详情
使用别人的程序,发现将求职者在线简历,可以生成 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.youkuaiyun.com/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.youkuaiyun.com/beyond__devil/article/details/84646559
​
	Puppeteer 参考链接:
		https://blog.youkuaiyun.com/beyond__devil/article/details/84660702

 

Thinkphp5整合wkhtmltox扩展将html转image或pdf Thinkphp5整合wkhtmltox扩展将html转image或pdf 安装php-wkhtmltox扩展 参看 https://blog.youkuaiyun.com/LAMPDOWN/article/details/87785359 实现转换的类 <?php namespace app\common\helper; use think\image\Exception as ImageExce... 阅读详情

相关推荐

PHP 富文本转html、word、pdf文件下载

富文本我这里使用的是layui,因为 它轻……至于富文本如何使用文档记载非常简单,有问题再说啦:http://www.layui.com/doc/modules/layedit.html然后进行富文本的数据存取后,取出你要的内容:1、转html$html = "这里是你要的内容!";第一行是因为图片路径不对,显示不出来,所有对图片路径进行了正确的替换或者利用phpword也可以转为html,如上图...

日常学习集锦 4327

laravel html转pdf和转图片 (laravel-snappy的使用记录)

使用前提:wkhtmltopdf https://wkhtmltopdf.org/downloads.html 安装: composer require barryvdh/laravel-snappy config中的app.js中 providers中添加 Barryvdh\DomPDF\ServiceProvider::class, aliases中添加 'PDF' => Barryvdh\Snappy\Facades\SnappyPdf::class, 'SnappyIma

zhq_zvik的博客 2188

Snappy:用于生成缩略图,快照,PDF,URL或HTML页面的php类库

Snappy是PHP5用于生成缩略图,快照,PDF,URL或HTML页面。它采用了优秀的基于WebKit的wkhtmltopdf和wkhtmltoimage可以适应在OSX,Linux的窗口。

php将html页面截图并保存成图片

采用html5的canvas,将图片绘制到画布上,然后用canvas的 toDataURL 方法。 但是在图片转base64的过程中遇到了两个问题, 1:图片无法绘制,转成的base64 用浏览器打开是空的透明画布,如图 image.png 代码片段如下: var canvas=document.getElem...

weixin_30505485的博客 739

pcb印刷电路缺陷检测----数据集准备

PKU-Market-PCB 印刷电路板 (PCB) 瑕疵数据集是一个公共合成 PCB 数据集,包含 1,386 张图像,具有 6 种缺陷(漏孔、鼠咬、开路、短路、杂散、杂铜),可用于图像检测、分类和配准任务。

qq_30190551的博客 4428

Spring Authorization Server实战:从零搭建OAuth2.1授权中心(含数据库改造)

本文详细介绍了如何从零开始使用Spring Authorization Server搭建符合OAuth2.1规范的授权中心,并完成关键的数据库持久化改造。内容涵盖微服务架构下的统一认证需求、基础配置、数据库表设计、高级特性(如令牌自定义、性能优化)以及与现有系统(如SSO、Gateway网关)的集成实战,为构建生产级授权服务提供完整指南。

weixin_29315091的博客 253

php 如何把html转为图片格式,php将html转为图片的实现方法

在服务器端解析将编译好的html转换为图片。由于html一般由客户端浏览器解析,服务器端不能直接解析html代码。所以我们需要借助php类库及扩展完成这一需求。文件转换过程为 html —> pdf —>png。需要借助的类库是mPDF ,imagickpdf 官方下载地址是:http://www.mpdf1.com/mpdf/index.php (推荐下在6.0 虽然大了点)这是一个...

weixin_35866180的博客 1746

当Flowable遇上AI:智能流程决策的未来探索

本文探讨了Flowable工作流引擎与AI技术的融合,构建智能流程决策系统的前沿实践。通过动态流程控制、机器学习优化表达式、自然语言生成规则等创新方法,显著提升业务流程的自动化水平和决策效率。重点解析了AI如何赋能Flowable核心引擎,实现从静态规则到动态智能的跨越式发展。

weixin_29271053的博客 392

PHP将HTML转换成各种格式图片或PDF

安装软件清单 libwkhtmltox linux下的webkit内核 phpwkhtmltox php扩展,可调用webkit内核将网页转换成各种格式图片或者pdf font-chinese 中文字体 msyh,Consolas 字体(优雅字体) 安装步骤安装libwkhtmltox (linux内核、Centos-6 .5-64bit)[root@platform tmp]#rpm -ivh w

gsls1006的专栏 7726

别再手动调时间了!用Windows自带的tzutil命令,1分钟搞定时区错误

本文介绍了如何使用Windows自带的tzutil命令快速解决时区错误问题。通过简单的命令行操作,用户可以一键切换时区、查看全球时区代码库,并实现自动化时区同步。相比传统GUI设置,tzutil更可靠且高效,特别适合企业环境批量部署。

weixin_42531494的博客 314

【知识点讲解】大模型参数量与计算量(FLOPs)估算方法

指标参数量 (Params)计算量 (FLOPs)含义模型的大小,静态模型的计算复杂度,动态决定因素模型结构(宽度、深度)模型结构 +输入数据(B, S)影响内存占用、磁盘空间运行速度、能耗单位M (百万), B (十亿)工具thopptflopstorchinfothopptflopsfvcore重要提示FLOPs ≠ 速度:FLOPs 是理论计算量。实际速度还受内存带宽 (Memory Bandwidth)并行度硬件架构等因素严重影响。

AI浩 2095

终极指南:如何使用Snappy PHP库轻松实现HTML到PDF/图片的转换

Snappy是一个强大的PHP库,它作为wkhtmltopdf和wkhtmltoimage工具的包装器,允许开发者轻松地从URL或HTML页面生成缩略图、快照或PDF文件。无论是需要动态生成报告、发票还是网页截图,Snappy都能提供简单而高效的解决方案。 ## 什么是Snappy?它如何工作? Snappy是由KnpLabs开发的PHP库,它的核心功能是作为优秀的webkit-based工具

gitblog_00571的博客 1153

php/golang使用chrome内核实现服务器端html转pdf,html转图片,pdf加水印,pdf转图片等

php/golang使用chrome内核实现服务器端html转pdf,html转图片,pdf加水印,pdf转图片等 Doctron Doctron是一个docker化的文档转换工具,在线演示地址:Doctron。github地址: https://github.com/lampnick/doctron 。 有如下特点: html转图片(支持自定义页面大小,边距,高质量转换) html转pdf(支持自定义页面大小,边距,高质量转换) pdf加水印 服务器端渲染 一键部署(支持docker,提供了k8s ya

Nick学习PHP的点点滴滴 2610

【ATC/DTC方法第一期】经典平均/昼夜温度周期ATC/DTC方法介绍(含Python代码实现)

【ATC/DTC方法第一期】经典平均/昼夜温度周期ATC/DTC方法介绍(含Python代码实现)

WW、forever的博客 484

零基础入门篇③ PyCharm使用指南(个性化设置、开发必备插件、常用快捷键)

Python从入门到精通👉零基础入门篇③

hacker707的博客 4374

PHP将pdf转成html

最近有个功能需求是:识别pdf文件转化为html页面形式 解决方式: 方法1:开始是寻找的PHP插件pdfparser,详见github链接:https://github.com/smalot/pdfparser,官网示例文档:https://www.pdfparser.org/documentation 摘录示例如下 <?php // Include Composer autoloader if not already done. include 'vendor/autoload...

zhangchb的博客 3851

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

PHP 转换PDF、TXT、HTML以及图像等格式的方法

这几天一直在使用PHP开发一个不同文件类型转换的项目,清源这里将各种文件格式转换的方法分享给大家,有需要的朋友可以参考一下,谢谢! 1、将PDF转换成JPG - PDF2JPG 这是一个转换图片的很简单的方法,使用前你必须保证已经安装了Image Magic。 <?php $pdf_file = './pdf/_folder/example.pdf'; $sa

3722

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

php 将pdf生成图片,PHP用wkhtmltopdf及扩展实现网页生成图片或PDF

我们经常会在实际的项目开发中遇到这种需求,将一个特定的网页生成图片,用于分享等用途。这时候,我们可以用这个PHP扩展,很方便的将网页转换生成为各种格式的图片或者pdf文件。下面就来看下如何实现?本教程的主角是wkhtmltopdf,下面就先简单了解下它:wkhtmltopdf 是一个开源、简单而有效的命令行 shell 程序,它可以将任何 HTML (网页)转换为 PDF 文档或图像(jpg、pn...

weixin_39602737的博客 786

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

PHP HTML 生成 PDF

PHP HTML 生成 PDF 博客分类:  Php / Mysql HTMLPHPFP脚本CSS 有时我们需要使用脚本动态的创建PDF文档,这里介绍一些免费的开源PHP脚本来生成PDF 的方法。 1.FPDF: PDF生成器 FPDF是一个纯粹的通过PHP类来生成PDF文档的方法,需要生成的内容直接在PHP代码中来指定,生成文字,图片,线条等等

2610

使用PHP将HTML + CSS转换为PDF? [关闭]

关闭。 这个问题是题外话 。 它当前不接受答案。

asdfgh0077的博客 994

aspose html转换pdf,aspose html转pdf java

aspose html转pdf java[2021-02-01 22:36:08]简介:php去除nbsp的方法:首先创建一个PHP代码示例文件;然后通过“preg_replace("/(\s|\&nbsp\;| |\xc2\xa0)/", " ", strip_tags($val));”方法去除所有nbsp即可。推荐:《PHP视频教php html转图片的实现方法:首先下载mPDF和...

weixin_28706397的博客 1656

php 将网页转成pdf_利用PHP将HTML页面转换成PDF文件

利用PHP将HTML页面转换成PDF文件发布时间:2020-12-18 15:50:29来源:亿速云阅读:86作者:Leah本篇文章为大家展示了利用PHP将HTML页面转换成PDF文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。利用PHP编码生成PDF文件是一个非常耗时的工作。在早期,开发者使用PHP并借助FPDF来生成PDF文件。但是如今,已经有很多函...

weixin_36332320的博客 2307

纯java pdf转换成html,java pdf转换html代码

java pdf转换html代码[2021-02-03 00:56:42]简介:php去除nbsp的方法:首先创建一个PHP代码示例文件;然后通过“preg_replace("/(\s|\&nbsp\;| |\xc2\xa0)/", " ", strip_tags($val));”方法去除所有nbsp即可。推荐:《PHP视频教php将html转为图片的方法:首先借助类库mPDF将htm...

weixin_33837884的博客 581

php将pdf转为html,PHP将pdf转成html

最近有个功能需求是:识别pdf文件转化为html页面形式解决方式:方法1:开始是寻找的PHP插件pdfparser,详见github链接:https://github.com/smalot/pdfparser,官网示例文档:https://www.pdfparser.org/documentation摘录示例如下parseFile('document.pdf');$text = $pdf-&...

weixin_29735075的博客 1061
上一篇: qrcode.js 插件在 webpack 中的 _android 错误解决
下一篇: 使用PHP将HTML生成PDF或图片:采用 laravel-snappy
beyond__devil
博客等级 码龄14年 147粉丝 314原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值