请教下各位大神,目前工作中遇到一个需求,就是要在某个页面客户点击某个按钮触发将整个页面生成一个图片格式的留档保存在服务器。图片中是要有客户在页面上已经填写好的信息的。
后端是 Java,请问这个有什么方式可以实现的吗?
1
dallaslu 2021-04-12 15:14:36 +08:00
图片可以用 js 库生成( html2canvas 或 dom2image )。但是为啥一定要图片呢,数据最终都是要存储在服务器上的,不如直接传文本数据。
|
2
Encloud 2021-04-12 15:16:51 +08:00
之前用过 phantomjs 可以达到你的要求
|
3
timethinker 2021-04-12 15:20:50 +08:00
前端实现就是把整个 dom 转换为图片吧,有一个库叫做 dom-to-image,然后上传到服务器。
如果想要后端实现的话,想一下,一个网页的构成为 HTML+CSS,这意味着你要在服务器上面渲染一个页面,包括同步客户端上的操作(跟客户端保持一致),很难想象为什么要这样做。后端一般只是单纯的记录日志,比如用户点了啥,这种活动追踪只记录相关的日志信息比较好实现。 |
4
Dogod37 OP @qwe520liao 监管要求,就离谱
|
5
andersonGzy 2021-04-12 15:39:02 +08:00
chrome 插件 FireShot
|
6
Wien 2021-04-12 15:43:54 +08:00
可以试试让前端自动截图然后把图片传给后端
|
7
JohnShen927 2021-04-12 16:25:57 +08:00 via Android
前端那边截图再传给后端吧。我记得前端有几个第三方库专门实现这个功能来着
|
9
timethinker 2021-04-12 16:45:39 +08:00
也许在客户家里装个监控摄像头更合理一些。[狗头]
|
10
Rheinmetal 2021-04-12 17:29:40 +08:00
监管 /存档 类用途前端生成显然不行 不可信 容易被前端绕过 非要用占空间的前端截图就很弱智 只存 ui 所需状态 然后等要用的时候再渲染一个图片出来糊弄一下?
|
11
PEAL 2021-04-12 17:33:41 +08:00
之前做过类似的,前端逻辑大概就是将 dom 在 canvas 复现出来(很麻烦),然后上传到服务器,快做完的时候产品说太慢了,最后直接后端生成这个图片了。
所以这个需求很不合理,生成图片这种很浪费资源,不如保存好数据,后端按需生成 |
12
qieqie 2021-04-12 17:36:49 +08:00
脑洞下,写一个网络打印机服务,然后浏览器直接选打印就完事了,0 前端
|
13
clf 2021-04-12 17:49:58 +08:00
后端应该监控数据请求来自的客户端 ID 、操作时间、IP 地址。
做的过分一点就是点这个按钮的时候来一遍人脸识别。 |
14
mgzu 2021-04-12 17:50:42 +08:00
可能是保监会要求保存用户选择记录
|
15
IvanLi127 2021-04-12 17:50:49 +08:00 1
如果可以的话,直接设计稿做底图,再绘制上用户输入的内容,这样可靠些,网页转图片可没那么简单
|
16
CantSee 2021-04-12 17:59:39 +08:00
html 转 pdf?
|
17
WishMeLz 2021-04-12 18:30:31 +08:00
本人前端。可以让前端把网页截图下来(有插件),然后上传文件服务器。把连接发送给后端。
|
18
musi 2021-04-12 19:01:03 +08:00 1
本人前端,楼上说的前端截图插件都是有限制的,如果你的页面中有 iframe 或者 canvas,插件就不能很好的工作,后来用了阿里云的 serverless 去做这件事
|
19
ffffb 2021-04-12 19:03:24 +08:00
本人前端。
在前端转的库,包括但不限于 html2canvas,都是玩具,别用。 |
20
akira 2021-04-12 20:21:08 +08:00
保存相关数据以后,服务器渲染一份出来就是了啊
|
21
zhw2590582 2021-04-12 20:31:27 +08:00
楼上说的库,遇到跨域资源就 GG 了,换个思路,先截个背景图生成 canvas,然后插入动态的值。
|
22
echowuhao 2021-04-12 20:37:31 +08:00 via Android
保存数据 同样的数据在后端无头浏览器渲染 然后截图保存
|
23
zifangsky 2021-04-13 09:59:58 +08:00
一般都是前端把数据传到后端后,后端来做这个渲染工作
|
24
futureeent 2021-04-13 12:35:58 +08:00
服务器上无头浏览器渲染,截图
|
27
kasusa 2021-04-15 09:09:11 +08:00 via Android
脑残要求。直接把需要的文字信息存下来不好吗。还能搜索。
或者干脆让用户手动截图并上传,不传不给下一步。 问题 x 解决 |