博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实现html转png
阅读量:6799 次
发布时间:2019-06-26

本文共 6163 字,大约阅读时间需要 20 分钟。

公司要求将一些重要数据全部以图片的形式放在官网上,防止网络爬虫。

之前都是UI作图,人工上传,为了解放生产力,于是我们程序处理。

 

步骤:

1、html得到与原图一致的图片(交给前端处理)

2、html转png

3、配置动态html转动态png,放到对应位置

 

解决过程:

1、百度找插件

2、百度找插件

3、问人

4、研究替换使用

 

方案一:

  html2canvas插件

  官网地址:

  http://html2canvas.hertzen.com/

  使用例子:  

  

蚂米平台实时运营数据 数据统计截止时间:2018-05-27

交易数据

数据概览

204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)

数据概览

204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)

出借方和借款方信息

204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)

中间遇到问题:

  

结果:

  样式有些缺失,官网明确指出不支持box-shadow等css样式

 

方案二:使用svg的forginObject属性将dom内容放入svg

链接:https://www.zhihu.com/question/20681535 中dion的回答

拷贝它的写法在我们的基础上修改,但是最后图片是svg形式。

Input Div:

蚂米平台实时运营数据 数据统计截止时间:2018-05-27

交易数据

数据概览

204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)

数据概览

204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)

出借方和借款方信息

204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)

Output Image:

中途遇到的问题:

svg对应image width和height没有正确设置,导致输出部分有时候展示不全

结果:

得到了svg,但是无法得到png

替代做法,使用svg代替png为图片资源,引用如下,t1.svg是从前面展示的out里面图片另存为得到的:

                    

 

 

 

方案三:dom->svg->canvas->png

参考链接:http://www.zhangxinxu.com/wordpress/2017/08/svg-foreignobject/

代码:

蚂米平台实时运营数据 数据统计截止时间:2018-05-27

交易数据

数据概览

204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)

数据概览

204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)

出借方和借款方信息

204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)
204571155.20
累计借贷金额(元)

中途问题:

 

canvas转png时候得到的背景总是黑色的,听说转png时候是透明背景,jpeg是黑色背景,在toDataURL()中指定转换的类型

解决方案:

//白色背景        context.fillStyle = '#fff';        context.fillRect(0, 0, canvas.width, canvas.height);

 

基本上就这样了。

转载地址:http://mouwl.baihongyu.com/

你可能感兴趣的文章
018 easygui的使用
查看>>
iphone 开发h5 踩过的坑
查看>>
微信支付demo集
查看>>
python读取json的工具jsonreader | the5fire的技术博客
查看>>
Sharepoint学习笔记—习题系列--70-576习题解析 -(Q99-Q101)
查看>>
转oracle 学习 - 表空间
查看>>
百度地图显示多个标注点
查看>>
robots.txt的介绍和写作
查看>>
11个实用jQuery日历插件
查看>>
MySQL slave状态之Seconds_Behind_Master
查看>>
国内外开源与 SaaS ,团队协作平台、项目管理工具整理
查看>>
oracle字符集查看修改
查看>>
[Leetcode] Container With Most Water
查看>>
查看版本信息的命令
查看>>
Linux搭建SVN服务器
查看>>
UML 之 数据流图(DFD)
查看>>
IO知识点整理(文件File类的使用)
查看>>
mahout 实现canopy
查看>>
修炼你自己
查看>>
窥探一句话木马后门的背后
查看>>