首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >HTML2Canvas在Ionic4角图中生成空白图像。控制台没有错误。相同的代码在纯html/javascript中生成正确的图像

HTML2Canvas在Ionic4角图中生成空白图像。控制台没有错误。相同的代码在纯html/javascript中生成正确的图像
EN

Stack Overflow用户
提问于 2019-02-12 04:41:39
回答 1查看 2.8K关注 0票数 2

我已经在home.page.ts中安装并导入了home.page.ts中的Ionic4角度测试项目。我有一个普通的100 pxx100px,黄色的背景div,只有一行文字。我将此div传递给html2canvas,以便以png的形式下载。html2canvas列出控制台中的所有步骤(没有错误),并生成与给定div大小相同的png,但div is empty.It不具有div或文本的颜色。

更改div的大小会适当地生效,这意味着生成的图像具有与div相同的大小。这个测试项目演示了这个问题-- https://stackblitz.com/edit/html2cavasionic4test

这是我的home.page.ts

代码语言:javascript
运行
AI代码解释
复制
import { Component } from '@angular/core';
import * as html2canvas from 'html2canvas';


@Component({
  selector: 'app-home',
  templateUrl: 'home.page.html',
  styleUrls: ['home.page.scss'],
})
export class HomePage {
  selected = 1;
  list: any = [{ id: 0, text: '0' }, { id: 1, text: 1 }];
  changed(e) {
    console.log(this.selected);
  }
  onPrintClicked(){
    let div = document.getElementById("h2cTest");
    const options = {allowTaint:true, background: "yellow", height: div.clientHeight, width: div.clientWidth };
    html2canvas.default(div, options)
    .then((canvas)=>{
      var myImage = canvas.toDataURL("image/png");
      console.log("image done");
      this.downloadURI("data:" + myImage, "yourImage.png");
    })
    .catch(()=>{})
  }
  downloadURI(uri, name) {
    var link = document.createElement("a");
    link.download = name;
    link.href = uri;
    link.click();
    //after creating link you should delete dynamic link
    //clearDynamicLink(link); 
  }

}

在我的本地机器上,我创建了一个普通的html/javascript页面,其功能与上面的stackblitz项目相同,并在页面中包含了脚本html2canvs.min.js。这个简单的页面正在按预期工作,并生成适当的图像。

预期html2Canvas将生成div的图像,但它生成的是空白图像。这个装置有什么问题吗?

更新

App标签是问题所在。

EN

回答 1

Stack Overflow用户

发布于 2020-08-31 03:51:27

https://www.npmjs.com/package/dom-to-image ->比需要保存到pdf的html2canvas https://www.npmjs.com/package/jspdf ->if工作得更好

page.ts

代码语言:javascript
运行
AI代码解释
复制
import * as jsPDF from 'jspdf'; 
//or     import jsPDF from 'jspdf'; 
import domtoimage from 'dom-to-image';

captureScreen() {
  const div = document.getElementById('pdfContent');
  const divHeight = div.clientHeight;
  const divWidth = div.clientWidth;
  const options = { background: 'white', width: divWidth, height: divHeight };

  domtoimage.toPng(div, options).then((imgData) => {
    const doc = new jsPDF('p', 'mm', [divWidth, divHeight]);
    const imgProps = doc.getImageProperties(imgData);
    const pdfWidth = doc.internal.pageSize.getWidth();
    const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width;
    doc.addImage(imgData, 'PNG', 0, 0, pdfWidth, pdfHeight);
    doc.save('pdfDocument.pdf');
  });
}

page.html

代码语言:javascript
运行
AI代码解释
复制
<ion-button (click)="captureScreen('pdfContent')">
  <ion-icon name="print" size='small' slot="icon-only"></ion-icon>
</ion-button>

<div id="pdfContent">
  <h1>Testing this to pdf</h1>
</div>

致力于离子5(请参阅更多image-in-ionic4-angular)

注意:当前版本的jsPDF出现了错误。我是npm install jspdf@1.5.3 --save工作正常

您可以在这里看到该站点的示例:

以及所生成的pdf的

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54650369

复制
相关文章
Ubuntu 14.04 Server 如何安装 Webmin
webmin 是一款通过 WEB 方式远程管理主机的工具软件,通过 webmin 可以通过图形界面远程对主机进行设置,webmin 包括了很多插件,通过安装插件实现对主机更多功能的管理。
星哥玩云
2022/07/01
1.4K0
Ubuntu 14.04 Server 如何安装 Webmin
如何在Ubuntu 18.04上安装Webmin
Webmin是适用于任何Linux机器的基于Web的控制面板,可让您通过基于Web的现代界面管理服务器。使用Webmin,您可以动态更改常用软件包的设置,包括Web服务器和数据库,以及管理用户,组和软件包。
好烟
2018/08/01
2.1K0
如何在Ubuntu 18.04上安装Webmin
如何在Ubuntu 16.04上安装Webmin控制面板和模块
Webmin是一个Web界面,允许您通过浏览器管理配置文件和重新加载程序,而无需SSH连接到您的Linode。它是cPanel或Plesk等管理面板的流行替代品,并且包含许多使其受欢迎的功能。许多第三方模块适用于不同的用例,这有助于提高Webmin控制面板的灵活性。
小翼111
2018/08/20
2.6K0
如何在 Ubuntu 20.04 上安装 Webmin
本文最先发布在:https://www.itcoder.tech/posts/how-to-install-webmin-on-ubuntu-20-04/
雪梦科技
2020/05/22
2.9K0
如何在 Ubuntu 20.04 上安装 Webmin
如何在 CentOS 8 上安装 Webmin
Webmin 是一个开源控制面板,它允许你通过简单易用的 Web 界面,就可以管理你的 Linux 服务器。它允许你管理用户,组,磁盘配额,创建文件和目录,也能配置大多数流行的服务,包括 Web,FTP,Email 和数据库。
雪梦科技
2020/05/11
2.8K0
如何在 CentOS 8 上安装 Webmin
如何在Debian 9上安装Webmin
Webmin是适用于任何Linux机器的现代Web控制面板,允许您通过简单的界面管理服务器。使用Webmin,您可以动态更改常用软件包的设置。
新巴子
2018/11/08
2.5K0
如何在服务器上安装Webmin
Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。目前Webmin支持绝大多数的Unix系统,可以让您用远端电脑上的浏览器,直接修改服务器里的使用者帐号、Apache、DNS、文件分享等设定。Virtualmin是Webmin的一个插件,它通过单一界面简化了对多个虚拟主机的管理,类似于cPanel或Plesk。使用Virtualmin,您可以管理用户帐户,Apache虚拟主机,DNS条目,MySQL数据库,邮箱等等。
葡萄
2018/08/02
3.9K0
如何在服务器上安装Webmin
在CentOS 7上安装Webmin
Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。目前Webmin支持绝大多数的Unix系统,可以让您用远端电脑上的浏览器,直接修改服务器里的使用者帐号、Apache、DNS、文件分享等设定。
八十岁的背影
2018/07/25
4.9K0
在CentOS 7上安装Webmin
在Ubuntu 14.04上安装 Webmin
Webmin是一个开源的基于网页的Unix/Linux系统管理工具。通过使用Webmin,你可以在浏览器上设置和安装所有的系统服务,包括:DNS、DHCP、Apache、NFS和Samba等等。因此,有了这个,你就再也不需要去记住所有的修改配置的命令了。
星哥玩云
2022/07/01
1.8K0
在Ubuntu 14.04上安装 Webmin
Webmin <= 1.920 - 未经身份验证的RCE
Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。目前Webmin支持绝大多数的Unix系统,这些系统除了各种版本的linux以外还包括:AIX、HPUX、Solaris、Unixware、Irix和FreeBSD等。
洛米唯熊
2019/08/20
3.4K0
Webmin <= 1.920 - 未经身份验证的RCE
在你的服务器上安装Webmin
Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。目前Webmin支持绝大多数的Unix系统,可以让您用远端电脑上的浏览器,直接修改服务器里的使用者帐号、Apache、DNS、文件分享等设定。
爆栈工程师
2018/07/24
1.6K0
在你的服务器上安装Webmin
Linux 主机管理软件 Webmin 1.7 安装
Webmin 是一款基于 Web 的主机管理软件,该软件非常强大,几乎可以对主机进行所有的管理操作,如果对命令行管理主机不熟悉,可使用 Webmin,通过它,您可以轻松地管理主机用户帐户,磁盘配额,服务,配置文件,管理的Apache服务器,DNS,文件共享和其他东西。这是一个相当有用的管理工具。
星哥玩云
2022/07/03
2.7K0
Linux 主机管理软件 Webmin 1.7 安装
【说站】python模块如何安装
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
很酷的站长
2022/11/24
5650
【说站】python模块如何安装
在AlamaLinux上安装Webmin GUI服务器管理器
仍然不习惯使用 Linux 命令行?试试 Webmin,它是一个图形界面,可以帮助您管理和配置 Linux 服务器。
云云众生s
2024/07/07
1590
在AlamaLinux上安装Webmin GUI服务器管理器
Webmin RCE 漏洞复现
Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。
sugarbeet
2022/09/26
1.4K0
Webmin RCE 漏洞复现
VPS安装Virtualmin面板
对一些Linxu操作不太熟悉的用户可以在VPS上安装web控制面板来简化添加网站或数据库等操作,常用的有cPanel、DirectAdmin、Virtualmin/Webmin、Kloxo这几种web控制面板,但是cPanel、DirectAdmin、Kloxo都是收费的控制面板,并且比较占用系统内存和资源,一般被空间销售商用作虚拟空间的销售;Virtualmin/Webmin是一款免费并且占用系统资源比较小的web控制面板,非常适合在VPS上安装。Hi-VPS强烈建议安装Virtualmin/Webmin作为VPS上的web控制面板.
星哥玩云
2022/07/04
18.1K0
VPS安装Virtualmin面板
已安装的nginx如何添加模块
nginx的模块是需要重新编译nginx,而不是像apache一样配置文件引用.so。这里以安装第三方ngx_http_google_filter_module模块为例: 1. 下载第三方扩展模块ngx_http_google_filter_module
菲宇
2019/06/12
12.7K0
Python如何安装cv2模块
关于用python实现答题卡识别的方法中,需用到cv2模块,在实际实验中,遇到了cv2模块安装失败的问题,本博客主要提出几个安装cv2的方法。
算法与编程之美
2022/05/23
8.2K0
python(pip)包/模块:如何离线安装?
如果有同环境服务器,可直接生成requirements.txt,会把当前服务器下的包和版本写入文件中。
Python学习者
2024/05/21
4690
CVE-2019-15107:Webmin RCE复现
本来前一阵就想复现来着,但是官网的版本已经更新了,直到今天才发现Docker上有环境,才进行了复现
Timeline Sec
2019/12/15
1.1K0

相似问题

X小时后从云存储中删除媒体

12

realm android删除所有数据

51

24小时后从Mysql中删除数据

21

Realm在删除PrimaryKey后未更改配置

16

Android Realm -删除后返回RealmObject

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档