更改html2canvas以接受显示为无
Changing html2canvas to accept display as none
我使用的是jsPDF,它使用了html2canvas。这是一个例子。
基于这个答案,我下载了html2canvas,并开始在本地使用它来按照建议进行更改,因为按照其他答案设置颜色的选项对我不起作用。
此外,我注意到我的其他需求与html2canvas默认提供的不同。即使显示器设置为none
,我也需要能够生成PDF文件。
请注意,在我给出的示例中,选项HTML Renderer (early stages)
不显示任何内容,但实现了较差的渲染。另一方面,我现在使用的addHTML()
按原样渲染页面,但这意味着只渲染可见的内容。
这是html2canvas决定将什么视为可见的默认方法。
function isElementVisible(element) {
return (getCSS(element, 'display') !== "none" &&
getCSS(element, 'visibility') !== "hidden" &&
!element.hasAttribute("data-html2canvas-ignore"));
}
我评论了这行:getCSS(element, 'visibility') !== "hidden"
,它使我能够创建一个PDF,即使是visibility: hidden
。然而,对于display: none
来说,即使该方法总是返回true,情况也并非如此。
如何实施?
具有display: none
的节点无法为其计算DOMRect,因为它在DOM中没有DOMRect(因为它是display: none
)。
如果要渲染display: none
内容,则需要在渲染之前将节点的display
设置为其他内容。
从html2canvas 0.5.0开始,您可以为html2canvas11提供一个onclone
选项,这是一个返回克隆的document
对象的回调,您可以在渲染DOM之前根据自己的意愿对其进行修改,而不会影响原始的document
。
相关文章:
- 从桌面读取python文件时高亮显示代码
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何在生成下载文件时显示加载动画
- React重新渲染但未显示正确的组件
- nodejs-expressjs上传图像并显示它们
- 使用JSP从服务器检索和显示图像
- 音频控件在mouseover上显示,在mouseout上淡出
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 显示5秒后隐藏潜水
- 画廊图像未显示
- 不显示带有本地json文件数据的谷歌地图脚本
- 如何将json数据显示为html
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- 高亮显示时编辑文本大小和颜色
- 有时数据是't显示在浏览器中
- 更改html2canvas以接受显示为无
- 如何下载图像(显示保存对话框在浏览器中),这是在html2canvas从控制器在MVC创建的字节的形式
- 如何显示和保存图像为JPG或PNG从SVG使用html2canvas