2.针对问题2:转出的图片下方部分缺失,当需要转换的html高度较高时出现的概率较大。

1)仔细检查后,猜测可能是由于flex布局没有自动换行,溢出导致。

但修改flex布局每个div的宽度为 30%( style="width: 30%; padding-bottom: 1em" )后,发现换行并且显示了被剪裁的内容,如图2-3所示,所以不确定具体是什么原因导致的,但和 样式密切相关。

此时 需要转图片的最外层dom节点的宽度为 92%

图 2-3

源代码如下:

     <div style="display: flex; flex-wrap: wrap">
            style="width: 50%; padding-bottom: 1em"
            v-for="(item, key) in autographContent"
            :key="key"
            <div style="display: flex">
              <span>{{ item.label }}</span>
                style="
                  border-bottom: 1px solid black;
                  width: 160px;
                  margin: 0 10px;
                  v-if="item.img"
                  :src="item.img"
                  style="height: 30px; margin-bottom: 2px"
                <span v-else style="width: 160px">
                  {{ item.value }}
                </span>

 2)最终通过修改需要转图片的最外层dom节点的宽度:设置为99%,因宽度100%时会导致转图片时右侧部分内容部分丢失,解决了该问题。多次重复测试,没有发现末尾内容丢失的问题。

图 2-4

1.以上表格边框粗细不一致、部分内容丢失问题都是  与  转图片前的html样式相关联的。所以当使用html2Canvas转图片时遇到类似的问题,可以通过检查 html样式和图片的区别,尝试通过更改样式的方式解决问题

2.问题2,暂时没有搞明白原因,为什么宽度设置小时会自动换行,而之前会直接不显示?本来以为是高度有关的问题(因需要转图片的高度较高时该问题发生的频率更高),结果和宽度有关系。如有大佬知道原因,欢迎评论区交流,非常感谢!

希望对你有帮助!

如有错误,欢迎指正,谢谢!

我有一个div,我设置了一个背景像,并在该div中我有一个像,我操纵(调整大小,旋和拖动)另一个div。一切工作正常,我收到一个像,调整大小和位置风格正确应用,只有旋样式恢复到零度角,即水平。有什么解决方法吗?我的代码,HTML: DownloadCSS:#canvas {float: left;width: 69%;height: 400px;border: 1px so... 最近接到反馈,先前做的一个小工具会出现一些bug 主要原理是根据用户填写的内容生成一个隐藏起来的节点,并把这个节点截取生成片下载下来; 首先把这个节点显示出来发现节点是正常的 那么问题就出现在获取节点上,这里使用到了html2canvas将节点化为 base64 格式的片,打印一下这个文件: ok, 是空白的; 当页面缩小及生成片滚动页面时,会出现类似问题,后来发现是页面有滚动条时会出现截失败; 查阅文档还可以通过获取截范围的精确位置截; 我们需要的是截区域左上角的 x, y 坐标,以及截 解决方案: 需要截的节点根样式添加font-variant: normal; 2. 文字向下偏移。 解决方案: 指定html2canvas的版本号为1.0.0-alpha.12 3. 不完整,缺失,留白。 出现情况: 当截区域超过视高度,且滚动条未处在顶部时,会出现。 解决方案: 截之前控制滚动条至顶部。 4. 模糊,不清晰。 出现情况: 通常是片设置为背景的情况下,截会比较模糊。 解决方案: 将背景通过img标签加定位的方式实现。 1.如果是文字信息丢失,需要再加一层div包裹。 2.如果以上不能解决,可以将消失的那一部分的父级,及父级的父级的背景色去掉或设置为透明即可解决元素丢失的问题。(有些元素会被父级的背景色覆盖掉,这个是插件的问题) <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <title>html2canvas exampl 一开始用print.js打印包含canvas的dom,后来,查了资料,对print.js修改后,可以很好的解决了问题,但是没有自适应打印纸张。没办法,那就自己改一下吧。 基本print.js的基础上将代码进行修改,将需要打印的dom片后,调用print.js将片进行打印。 import html2canvas from "html2canvas" // 打印类属性、方法定义 /* eslint-disable */ const Print = function (dom, options) 一、直接杀主题:某日接需求,需将表格生成一张片进行浏览(H5移动端)。1、想到两个插件html2canvas与dom-to-image,开始估计是版本问题用html2canvas生成png出现空白部分,且截不完全。因为是表格有15个字段之多,带滚动条。也就是说在H5可视dom里,滚动条后面字段基本是截不到的。2、dom-to-image也是同样问题。而且安卓toPng方法没问题,跑IOS那边...