html2pdf.js生成PDF空白页面问题解决办法

现象

1、Scale参数1.8时,安卓手机在20页以上可能爆掉生成空白页

2、Scale参数1.8时,苹果手机在5页以上可能爆掉生成空白页

原因是浏览器支持画布的尺寸大小限制

解决办法

分页生成,一个元素一页这样不可能超过限制尺寸。

查到解决代码(希望能帮助到大家)如下:

  //参数根据需要调整var opt = {margin: 0,filename: name,image: { type: "jpeg", quality: 0.98 }, //0.98html2canvas: { scale: 1.8, useCORS: true },jsPDF: { unit: "pt", format: "a4" }, pagebreak: { mode: ["css", "legacy"] },};//需要处理的页面的元素数组,每一页一个elementlet elements =[] let worker = html2pdf().set(opt).from(elements[0]);if (elements.length > 1) {worker = worker.toPdf();elements.slice(1).forEach(async (element) => {worker = worker.get("pdf").then((pdf) => {pdf.addPage();}).from(element).toContainer().toCanvas().toPdf();});}worker.save()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/863888.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营第四十五天|198.打家劫舍 213.打家劫舍II 337.打家劫舍III

LeetCode 198.打家劫舍 题目链接:198.打家劫舍 踩坑:很多坑,自动把它当作背包问题了,但其实这就是一个普通的动态规划题目,背包问题本质上是一个二维问题,只是可以简化成一维,想要抽象为背包问…

探索Scala的类型奥秘:协变与逆变全解析

🔄 探索Scala的类型奥秘:协变与逆变全解析 在Scala的强类型系统中,协变(covariance)和逆变(contravariance)是两个核心概念,它们允许我们在泛型编程中更灵活地使用类型。本文将深入…

03-权限绕过漏洞

一、基础知识 水平越权 水平越权是指用户在系统中拥有超出其权限范围的访问权限。这可能导致安全漏洞和潜在的风险,因为用户可以访问他们不应该有权访问的敏感信息或执行他们不应该执行的操作。 垂直越权 垂直越权是指用户或攻击者利用系统中的漏洞或错误配置&a…

【横穿自动驾驶】读书笔记

我自己,有时候还是有些眼高手低的,但是技术领域多读书大概是没错的。 最近想读完下面这两本书: Feedback control of dynamic systemAlgorithms for Optimization 第二本不用多说,就是求解优化问题的方法综述。横穿自动驾驶系列…

webform 连接连接数据的操作

web-form 查询数据库 ,从配置文件中读取字符信息 查询 // 从配置文件中读取数据 string sqlstr // 获取数据库连接字符串ConfigurationManager.ConnectionStrings["staffConnectionString2"].ConnectionString;DataTable dt new DataTable(); // 存储…

《零信任时代的网络安全:2024年的新挑战与机遇》

《零信任时代的网络安全:2024年的新挑战与机遇》 引言 随着数字化转型的深入,网络安全的重要性日益凸显。零信任模型作为新一代网络安全架构,其核心理念是“永不信任,始终验证”。2024年,零信任模型已经成为企业网络…

Build Redundancy at Every Tier(在每一层构建冗余)

Build Redundancy at Every Tier(在每一层构建冗余) 什么是冗余? 冗余指的是在系统的不同层次(或组件)中添加备用资源或备份,以确保在部分组件发生故障时,系统仍然能够正常运行。 为什么大型…

Orangepi Zero2使用外设驱动库wiringOP配合定时器驱动SG90舵机

目录 一、舵机的基本认知和硬件接线 1.1 舵机的基本认知: 1.2 硬件接线: 1.3 怎么控制舵机旋转不同的角度: 二、Linux定时器 2.1 定时器setitimer()函数原型和头文件: 2.2 信号处理函数signal()原型和头文件: 2…

<电力行业> - 《第10课:变电》

1 变电 变电环节,顾名思义就是改变电压的环节,主要是在变电站和变电所完成的。变电站和变电所主要区别在于:变电站比变电所更大。 发电厂的变压器和配电变压器也属于“变电”,但我们在说电网环节时,变电特指电网公司…

嵌入式软件常用测试工具

嵌入式软件常用的测试工具和方法可以总结如下: 测试工具 GDB: 描述:GDB是一个开源的调试工具,常用于GNU编译器集合中,支持多种编程语言,如C、C、Java等。功能:通过命令行与目标应用程序进行交…

【STM32嵌入式系统设计与开发---传感器拓展】——1_4_标准库FreeRTOS移植实验

目录 雅俗理解源码下载链接知识拓展步骤1:stm32f103vet6移植freeRTOS步骤:(1)准备开发环境(2)添加FreeRTOS移植 致谢 雅俗理解 雅:FreeRTOS是一个开源的实时操作系统(RTOS)&#xf…

支持向量机(SVM)在机器学习中的简单示例

目录 工作原理 核函数 SVM用于分类 结果分析 结论 ❤❤❤动动发财的小手点点赞点点关注哦~~~❤❤❤ 支持向量机是一种强大的监督学习模型,用于分类和回归任务。它通过找到数据点之间的最优边界来区分不同的类别。SVM特别适用于那些具有清晰边界但线性不可分的…

Codeforces Beta Round 7 C. Line 题解 数论 扩展欧几里得

Line 题目描述 A line on the plane is described by an equation A x B y C 0 AxByC0 AxByC0 . You are to find any point on this line, whose coordinates are integer numbers from − 5 ⋅ 1 0 18 -510^{18} −5⋅1018 to 5 ⋅ 1 0 18 510^{18} 5⋅1018 inclusiv…

RabbitMQ-交换机的类型以及流程图练习-01

自己的飞书文档:‌‍‬‍‬‍​‍‬​⁠‍​​​‌⁠​​‬‍​​​‬‬‌​‌‌​​​​​​‍​‍​‌⁠‬​RabbitMQ的流程图和作业 - 飞书云文档 (feishu.cn) 作业 图片一张 画rabbit-mq 消息发…

测试开发工程师需要掌握什么技能?

测试开发工程师是软件开发中至关重要的角色之一。他们负责编写、维护和执行自动化测试脚本、开发测试工具和框架,以确保软件的质量和稳定性。为了成为一名优秀的测试开发工程师,你需要掌握以下技能: 1. 编程技能: 作为测试开发工…

LabVIEW程序员应该怎么提高自己的工作能力?

作为一名LabVIEW程序员,提升工作能力可以从以下几个方面入手: 1. 深入理解LabVIEW基础 掌握LabVIEW编程语言:熟悉LabVIEW的图形化编程方式,理解其数据流编程模型。熟悉常用的VI(虚拟仪器)和函数&#xff1…

计算机网络原理及应用

第一章 计算机网络概述 【1】局域网 局域网是指在某一区域内由多台计算机互联而成的计算机通信网络。 【1】互通 两个网络之间可以交换数据。 第二章 计算机网络的体系结构 【1】语义 何时发出何种控制信息,完成何种动作以及做出何种响应。 【2】简述网络协…

redis删除通配的keys

删除通配kubiex:market:history_data_swap_的所有key 注:如果有很多键,手动删除会比较麻烦,可以使用 Lua 脚本来批量删除: ~# redis-cli -h ip -a 127.0.0.1:6379> EVAL "return redis.call(del, unpack(redis.call(keys…

有没有比较好用的网页3D应用程序在线编辑器?

问:three.js是当前主流的网页3d开发框架,但three.js的editor功能比较粗糙。国内有没有比较容易上手功能类似Unity3D的网页3D编辑软件,可以通过实体组件系统来完成程序扩展,简单拖拉拽完成3D场景、常用特效和用户交互的构建&#x…

【PYG】使用datalist定义数据集,创建一个包含多个Data对象的列表并使用DataLoader来加载这些数据

为了使用你提到的封装方式来创建一个包含多个 Data 对象的列表并使用 DataLoader 来加载这些数据,我们可以按照以下步骤进行: 创建数据:生成节点特征矩阵、边索引矩阵和标签。封装数据:使用 Data 对象将这些数据封装起来。使用 D…