1
hadeswang 2020-10-23 15:45:03 +08:00 1
PhantomJS
|
2
imdong 2020-10-23 15:45:28 +08:00 1
客户端实现?
-> 自己控制范围内的网页:除非在客户端安装插件,否则我能想到的就是 `javascript:window.print();` -> 不在自己控制范围内的网页:除非在客户端安装插件,否则理论上无法实现。 服务端实现? -> 有一个工具“Puppeteer”?之类的无头浏览器,可以实现服务端截图,但是因浏览器兼容性等差异,与客户端看到的可能不完全一样。 综上,和 PHP 实现本身没多大关系,或者说单靠 PHP 本身无法实现。 |
3
Evilk 2020-10-23 16:02:05 +08:00 1
是不是,类似,点击一下,将页面生成一张图片?,并保存起来?
|
4
wispx 2020-10-23 16:07:11 +08:00 1
可以使用 domtoimage 将 dom 元素转换成图片
github: https://github.com/tsayen/dom-to-image |
5
frozenway OP |
6
KasonPasser 2020-10-23 16:22:37 +08:00 1
可以尝试一下 Dompdf ,把 html 存成 pdf .
|
7
Evilk 2020-10-23 16:23:11 +08:00 1
@frozenway 通过点击触发,或者,访问触发,都一样,你可能需要这个( http://html2canvas.hertzen.com)
|
9
wh1012023498 2020-10-23 16:38:24 +08:00 1
可参考
https://github.com/puppeteer/puppeteer https://github.com/rialto-php/puphpeteer use Nesk\Puphpeteer\Puppeteer; $puppeteer = new Puppeteer; $browser = $puppeteer->launch(); $page = $browser->newPage(); $page->goto('https://example.com'); $page->screenshot(['path' => 'example.png']); $browser->close(); |
10
z5864703 2020-10-23 16:41:28 +08:00 1
为啥不通过前端来完成呢?调用浏览器 api 截图上传到服务器,也可以做到用户无感
|
11
frozenway OP @wh1012023498 太感谢了
|
12
OldActorsSmile 2020-10-23 20:40:38 +08:00 1
应该是需要一个模拟浏览器去渲染,这个跟 php 关系不大,是 php 通过命令去调用渲染的插件,这种 windows 和 linux 应该都有,我之前看到过,因为没做这种功能,细节忘了
|
13
yuancoder 2020-10-27 15:58:22 +08:00 1
如果有图表之类的,使用 wkhtmltoimage
|
14
xiaociwei 2020-10-28 14:36:29 +08:00 1
htmltocanvas 可以把简单的页面生成 canvas 图片
|