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