关于表单截图的使用填坑

2016-09-05  本文已影响0人  十六郎

前言

进来要进行表单填写完之后进行截图的工作,google了一下找到了html2canvas这款工具。

原理

使用起来不算难,原理简单说一下,就是把div或者整个body刻制到一个canvas中,然后再将此canvas转化为image。

填坑

html2canvas的版本控制我觉得有很大的问题,v0.4.1存在多个版本,而官方网站提供的4.1的版本最后一次是2013年的,这个版本是不能显示raido input的(这个稍后详述),为了解决这个问题,我又找到了2014年更新的4.1版本,官网并不存在。

另外,v0.5.0稍微尝试了一下,缺陷有点多。对于div的截图智能做到可见范围内的截取,也就是说遇到大的div是不能全部截取的。所以果断又重新拾起0.4.1,注意是3034行代码的那个4.1

因为div的background是transparent,所以截图截取下来的自然就是白色很刺眼的那种
解决方案:

    1.官方版的4.1中可以对background进行颜色设定,但是因为不支持radioinput,所以摒弃;
    
    2.对div进行background-color设定,成功。

前端不是太懂,只是发现在firefox中截取下来的点击项是黑点,而chrome中却是白点,这显然太影响视觉效果了,于是找到了一下方案,对radio input 进行加工(主要也是调background color)。

    input[type=radio]{
      visibility: hidden;
    }
    input[type=radio] + label:before{
      margin-left: -20px;
      height:13px;
      width:13px;
      margin-right: 2px;
      content: " ";
      display:inline-block;
      vertical-align: baseline;
      border:1px solid #777;
      border-radius:50%;
    }
    input[type=radio]:checked + label:before{
      background:rgb(0,238,247);
    }

图片

图片服务器

将静态路径在

1.settings中设置,MEDIA_ROOT 与 MEDIA_URL

2.urls配置

    DIRNAME = os.path.dirname(__file__)
    urlpatterns += patterns("",
    (r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes': True }),)
上一篇下一篇

猜你喜欢

热点阅读