作者:咕魂

日期:2025年1月13日

注意事项

  • 不要给svg加style属性,会导致实际布局与图片布局不一致

  • 不要使用overflow:hidden属性,文本超出长度转换为省略号将无法使用

// 替换方案
// js限制字符串长度
formatStr(text) {
let maxLength = 20;
switch(this.col){
case 2:
maxLength = 20;
break;
case 3:
maxLength = 15;
break;
case 4:
maxLength = 12;
break;
case 5:
maxLength = 10;
break;
}
let currentWidth = 0;
let truncatedText = '';
let maxWidth = maxLength * 8;
for (let char of text) {
// 判断字符是中文字符(Unicode范围来大致判断)
let pattern = /[^a-zA-Z0-9.,;:!?\-_@#$%^&*()+=<>{}[\]\/\\|]/;
if (pattern.test(char)) {
currentWidth += 13; // 假设中文字符宽度为16px,可根据实际字体调整
} else {
currentWidth += 8; // 假设英文字符宽度为8px,可根据实际字体调整
}
if (currentWidth <= maxWidth) {
truncatedText += char;
} else {
return truncatedText + '...';
}
}
return truncatedText;
}
  • 其他待补充
  • 长度最大差不多是在2w像素

实现方法

CDN引入来源地址:html2canvas中文文档

// 需要转换为图片的元素:paper
html2canvas(document.querySelector(".paper")).then(canvas => {
// 显示截图效果
// document.body.appendChild(canvas);
// 下载canvas图片
const a = document.createElement("a");
a.download = `${this.date}.png`;
a.href = canvas.toDataURL("image/png");
a.click();
// 移除canvas
canvas.remove();
alert('截图成功');
});

html2canvas使用注意要点的更多相关文章

  1. 使用html2canvas实现浏览器截图

    最近做项目为了解决全局异常信息记录,研究了一下浏览器全屏截图功能,方便用户发现异常时能够快速截图发给管理员.最终记录的异常信息如下,上面的[截图报告管理员]就是使用html2canvas前端插件实现的 ...

  2. java使用代理 html2canvas 截屏 将页面内容生成图片

    1.html2canvas 生成图片简单又好用,但涉及到跨域就会出现问题,官方给出的解决办法是设置代理.基本原理就是在后端将图片的数据生成base64再返回给前端使用.使canvas画布分析元素的时候 ...

  3. 使用html2canvas实现批量生成条形码

    /*前台代码*/ <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Generat ...

  4. 使用html2canvas实现网页截图并嵌入到PDF

    以前我们只能通过截图工具进行截取图像.这使得在业务生产中,变得越来越不方便.目前的浏览器功能越来越强大,H5也逐渐普及,浏览器也可以实现截图了.这里来聊下之前在工作中用到的html2canvas.这里 ...

  5. html2canvas插件对整个网页或者网页某一部分截图并保存为图片

    html2canvas能够实现在用户浏览器端直接对整个或部分页面进行截屏.这个脚本将当前页面渲染成一个canvas图片,通过读取DOM并将不同的样式应用到这些元素上实现.它不需要来自服务器任何渲染,整 ...

  6. html2canvas根据DOM元素样式实现网页截图

    html2canvas是一个相当不错的JavaScript类库,它使用了html5和css3的一些新功能特性,实现了在客户端对网页进行截图的功 能.html2canvas通过获取页面的DOM和元素的样 ...

  7. IText&Html2canvas js截图 绘制 导出PDF

    Html2canvas JS截图 HTML <div id="divPDF"> 需要截图的区域 </div> JS <script src=" ...

  8. html2canvas 踩坑总结

    需求:将html表格导出为图片,表格可以自己编辑数据,并适配各种屏幕大小.上网搜了下,找到了html2canvas,一开始使用的是最新版0.5.0,最终因为需要支持自定义div编辑框自动换行选择了v0 ...

  9. html2canvas 网页截图 下载 上传

    利用html2canvas插件 对网页截图 并下载和上传图片. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//E ...

  10. Lucene学习注意要点

    相关书籍: <Lucene实战>第二版: <搜索引擎基础教程>: <Lucene搜索引擎开发进阶实战>:(我现在看得书) 学习注意要点: 不要盲目从代码入手,而要先 ...

随机推荐

  1. MySQL高可用之PXC

    1.PXC简介 参考Percona官方https://www.percona.com/software/mysql-database/percona-xtradb-cluster   PXC(Perc ...

  2. 手把手部署n8n

    n8n 是当前非常热门的开源 AI 工作流平台,在 GitHub 上已获得超过九万颗 star. 通过 n8n,用户可以拖拽节点,轻松搭建复杂的 AI 工作流.每个节点都支持上千种插件,可灵活集成各类 ...

  3. c++并发编程实战-第3章 在线程间共享数据

    线程间共享数据的问题 多线程之间共享数据,最大的问题便是数据竞争导致的异常问题.多个线程操作同一块资源,如果不做任何限制,那么一定会发生错误.例如: 1 int g_nResource = 0; 2 ...

  4. 编译原理:中间代码IR

    IR,中间代码(Intermediate Representation,有时也称为Intermediate Code,IC),它是编译器中很重要的一种数据结构.编译器在做完前端工作以后,首先就生成IR ...

  5. C# Environment.CurrentDirectory和AppDomain.CurrentDomain.BaseDirectory的区别

    Environment.CurrentDirectory 和 AppDomain.CurrentDomain.BaseDirectory 都是C#中用于获取当前应用程序的目录路径的方法,但是它们的用途 ...

  6. 6 指纹浏览器 CPU 核心数伪装教程

    目的 navigator.hardwareConcurrency 可用于获取当前设备的 CPU 逻辑核心数量.这一信息常被用于识别用户设备等级或作为浏览器指纹的一部分参与反欺诈系统分析. 通过伪造该信 ...

  7. Go交叉编译

    #在Mac上编译linux平台应用 GOOS=linux GOARCH=amd64 go build hello.go #在Windows上编译linux平台应用(关闭CGO) CGO_ENABLED ...

  8. 基于 A2A 协议的 LlamaIndex 文件聊天工作流

    本示例展示了一个使用 LlamaIndex Workflows 构建并通过 A2A 协议公开的对话代理.它展示了文件上传和解析.支持多轮对话的对话交互.流式响应/更新以及内联引用. 源代码 a2a l ...

  9. python C3算法

    Python MRO C3算法是python当中计算类继承顺序的一个算法,从python2.3以后就一直使用此算法了. c3 linearization算法称为c3线性化算法 C3算法原理 首先定义几 ...

  10. C# 与低代码平台的融合:以活字格为例的 Web API 开发实践

    引言 在当今软件开发领域,低代码平台凭借其高效.便捷的特性逐渐成为开发的主流趋势.而 C# 作为一种功能强大的编程语言,在服务端开发中有着广泛的应用.将 C# 与低代码平台相结合,能够充分发挥两者的优 ...