web 页面转换为实时图片

2021-04-12 15:09:32 +08:00
 Dogod37

请教下各位大神,目前工作中遇到一个需求,就是要在某个页面客户点击某个按钮触发将整个页面生成一个图片格式的留档保存在服务器。图片中是要有客户在页面上已经填写好的信息的。

后端是 Java,请问这个有什么方式可以实现的吗?

3637 次点击
所在节点    Java
27 条回复
dallaslu
2021-04-12 15:14:36 +08:00
图片可以用 js 库生成( html2canvas 或 dom2image )。但是为啥一定要图片呢,数据最终都是要存储在服务器上的,不如直接传文本数据。
Encloud
2021-04-12 15:16:51 +08:00
之前用过 phantomjs 可以达到你的要求
timethinker
2021-04-12 15:20:50 +08:00
前端实现就是把整个 dom 转换为图片吧,有一个库叫做 dom-to-image,然后上传到服务器。
如果想要后端实现的话,想一下,一个网页的构成为 HTML+CSS,这意味着你要在服务器上面渲染一个页面,包括同步客户端上的操作(跟客户端保持一致),很难想象为什么要这样做。后端一般只是单纯的记录日志,比如用户点了啥,这种活动追踪只记录相关的日志信息比较好实现。
Dogod37
2021-04-12 15:37:09 +08:00
@qwe520liao 监管要求,就离谱
andersonGzy
2021-04-12 15:39:02 +08:00
chrome 插件 FireShot
Wien
2021-04-12 15:43:54 +08:00
可以试试让前端自动截图然后把图片传给后端
JohnShen927
2021-04-12 16:25:57 +08:00
前端那边截图再传给后端吧。我记得前端有几个第三方库专门实现这个功能来着
hronro
2021-04-12 16:40:24 +08:00
@Dogod37 这个监控不了什么东西吧,像这种不合理的需求,应该直接挡回去,而不是强行找解决方案做出来
timethinker
2021-04-12 16:45:39 +08:00
也许在客户家里装个监控摄像头更合理一些。[狗头]
Rheinmetal
2021-04-12 17:29:40 +08:00
监管 /存档 类用途前端生成显然不行 不可信 容易被前端绕过 非要用占空间的前端截图就很弱智 只存 ui 所需状态 然后等要用的时候再渲染一个图片出来糊弄一下?
PEAL
2021-04-12 17:33:41 +08:00
之前做过类似的,前端逻辑大概就是将 dom 在 canvas 复现出来(很麻烦),然后上传到服务器,快做完的时候产品说太慢了,最后直接后端生成这个图片了。
所以这个需求很不合理,生成图片这种很浪费资源,不如保存好数据,后端按需生成
qieqie
2021-04-12 17:36:49 +08:00
脑洞下,写一个网络打印机服务,然后浏览器直接选打印就完事了,0 前端
clf
2021-04-12 17:49:58 +08:00
后端应该监控数据请求来自的客户端 ID 、操作时间、IP 地址。

做的过分一点就是点这个按钮的时候来一遍人脸识别。
mgzu
2021-04-12 17:50:42 +08:00
可能是保监会要求保存用户选择记录
IvanLi127
2021-04-12 17:50:49 +08:00
如果可以的话,直接设计稿做底图,再绘制上用户输入的内容,这样可靠些,网页转图片可没那么简单
CantSee
2021-04-12 17:59:39 +08:00
html 转 pdf?
WishMeLz
2021-04-12 18:30:31 +08:00
本人前端。可以让前端把网页截图下来(有插件),然后上传文件服务器。把连接发送给后端。
musi
2021-04-12 19:01:03 +08:00
本人前端,楼上说的前端截图插件都是有限制的,如果你的页面中有 iframe 或者 canvas,插件就不能很好的工作,后来用了阿里云的 serverless 去做这件事
ffffb
2021-04-12 19:03:24 +08:00
本人前端。
在前端转的库,包括但不限于 html2canvas,都是玩具,别用。
akira
2021-04-12 20:21:08 +08:00
保存相关数据以后,服务器渲染一份出来就是了啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/770091

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX