1、以Chrome为例,打开设置-外观-自定义字体,在标准字体的下拉框内查找是否有代码中引入的字体样式,如果没有,那么在使用html2canvas截图时,就会丢失字体样式;
2、引入的自定义字体样式一般为***.ttf格式的文件,在Windows下,可以右键点击该ttf文件,选择安装,会装入电脑上,重启chrome后,会引入该字体样式;
3、重复步骤1,查看是否有该字体样式,如果有,那么使用html2canvas截图时,就会携带者该字体样式;
最近接到反馈,先前做的一个小工具会出现一些bug 主要原理是根据用户填写的内容生成一个隐藏起来的节点,并把这个节点截取生成图片下载下来;
首先把这个节点显示出来发现节点是正常的
那么问题就出现在获取节点上,这里使用到了
html2canvas
将节点转化为 base64 格式的图片,打印一下这个文件:
ok, 是空白的;
当页面缩小及生成图片滚动页面时,会出现类似问题,后来发现是页面有滚动条时会出现
截图
失败;
查阅文档还可以通过获取
截图
范围的精确位置
截图
;
我们需要的是
截图
区域左上角的 x, y 坐标,以及
截图
解决方案: 需要
截图
的节点根
样式
添加font-variant: normal;
2. 文字向下偏移。
解决方案: 指定
html2canvas
的版本号为1.0.0-alpha.12
3. 不完整,缺失,留白。
出现情况: 当
截图
区域超过视图高度,且滚动条未处在顶部时,会出现。
解决方案:
截图
之前控制滚动条至顶部。
4. 模糊,不清晰。
出现情况: 通常是图片设置为背景的情况下,
截图
会比较模糊。
解决方案: 将背景图通过img标签加定位的方式实现。
前言:开发过程中
截图
保存图片用到
html2canvas
,但是呢,使用过程中也会趟坑。。。来说下趟过的坑
一、
截图
不全问题:开发中发发现有滚动条的情况下会
截图
不全,仅能展示出当前页面展示出来的内容二、不支持textarea换行显示三、不支持省略号:js控制字数,截取字数长度后,动态添加省略号
1.如果是文字信息
丢失
,需要再加一层div包裹。
2.如果以上不能解决,可以将消失的那一部分的父级,及父级的父级的背景色去掉或设置为透明即可解决元素
丢失
的问题。(有些元素会被父级的背景色覆盖掉,这个是插件的问题)
低版本
HTML2canvas
前端开发 生成海报
截图
等功能
1.该脚本允许您直接在用户浏览器上对网页或其部分进行“
截图
”。屏幕
截图
基于 DOM,因此可能不是 100% 准确到真实表示,因为它不会制作实际的屏幕
截图
,而是根据页面上可用的信息构建屏幕
截图
。
2.它只能正确渲染它理解的属性,这意味着有许多 CSS 属性不起作用;
html2canvas
官网 https://
html2canvas
.hertzen.com/
Firefox 3.5+
Google Chrome
Opera 12+
Safari 6+
这个问题可能是由于
html2canvas
生成的图片放大后导致像素失真而引起的。你可以尝试使用CSS transform属性来改变图片大小,这样可以避免像素失真。例如,你可以使用如下代码来将图片放大一倍:
transform: scale(2);
另外,你也可以尝试使用更高分辨率的图片来生成PDF,例如使用@2x或@3x分辨率的图片。这样可以提高图片的清晰度,从而避免
字体
模糊的问题。
RuntimeError: Expected object of scalar type Long but got scalar type Float for argument #2 'target'
53078