html2pdf,qrcode库及url参数拼接

概览

此篇文章主要是对html2pdf,qrcode库及url参数拼接的零散整理

一. html2pdf

html2pdf 是一个可以将 HTML 内容转换为 PDF 文件的库。它通常用于前端或服务器端,将网页或 HTML 字符串转换为可打印或可分享的 PDF 格式。这对于需要将网页内容保存为 PDF 或者生成报表等场景非常有用。
用法示例

 function downloadQrCode() {isPrint.value = true;const opt = {margin: 0,filename: qrName.value + '.pdf',image: { type: 'jpeg', quality: 0.98 },loadingnvas: {scale: 5,},jsPDF: {unit: 'in', // 单位设置为英寸  format: 'a1', // 纸张大小设置为 A1  orientation: 'landscape' // 页面方向设置为横向 },};new html2pdf().set(opt).from(qrHTMLRef.value).save().finally(() => {isPrint.value = false;});}
  • 使用 html2pdf 插件创建一个新的实例。
  • 使用 .set(opt) 方法设置 PDF 的选项。
  • 使用 .from(qrHTMLRef.value) 方法指定要转换为 PDF 的 HTML 内容。这里假设 qrHTMLRef.value 是一个 HTML 字符串或元素的引用。
  • 使用 .save() 方法保存并下载 PDF 文件。
  • 使用finally方法设定最后执行的逻辑

二. qrcode

用法示例

import { toDataURL } from 'qrcode';  async function generateQRCode() {  try {  const text = 'Hello, QR Code!'; // 要编码为二维码的文本  const options = {  errorCorrectionLevel: 'H',width: 256, // 二维码宽度  color: {  dark: '#000000', // 二维码中深色部分的颜色  light: '#ffffff', // 二维码中浅色部分的颜色  },  };  const dataURL = await toDataURL(text, options); // 生成二维码的 Data URL  console.log(dataURL); // 打印 Data URL 到控制台  // 可以将 dataURL 设置到 img 元素的 src 属性中显示二维码  const imgElement = document.getElementById('qrcode-img');  imgElement.src = dataURL;  } catch (error) {  console.error('Error generating QR code:', error);  }  
}  generateQRCode();

text参数在qrcode库中不是直接表示页面路径,但你可以将页面路径(URL)作为文本内容传递给toDataURL函数来生成一个指向该页面的二维码。

errorCorrectionLevel 属性在二维码生成中代表纠错级别。在二维码生成库中,纠错级别通常用于确定在二维码中嵌入多少额外的数据,以便在二维码被部分损坏或污损时仍可以读取。

纠错级别通常有以下几种(不同的库可能命名稍有不同,但概念相似):

L (Low) - 低纠错级别。适用于高质量打印或几乎无损坏的二维码。
M (Medium) - 中等纠错级别。适用于一般打印和日常使用。
Q (Quartile) - 四分之一纠错级别。适用于稍微有损坏的二维码。
H (High) - 高纠错级别。适用于损坏较为严重或打印质量较低的二维码。
当你选择一个较高的纠错级别时,二维码会包含更多的冗余数据,这会增加二维码的复杂性和大小。然而,这也意味着二维码在遭受损坏时更有可能成功解码。

三. url参数拼接

代码示例

function setObjToUrlParams(baseUrl, obj) {  if (!obj) return baseUrl;  const paramsArray = Object.entries(obj).map(([key, value]) => {  return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;  });  // join方法拼接成字符串const newParameters = paramsArray.join('&');  const id = baseUrl.lastIndexOf('?');  if (id < 0) {  // 如果原始 URL 没有查询参数,则直接添加 '?' 和参数  return `${baseUrl}?${newParameters}`;  } else {  console.log(baseUrl.slice(id + 1),'1233')// 如果原始 URL 有查询参数,则保留原有的 '?',并添加新的参数  // 使用 '&' 连接新旧参数,并确保没有多余的斜杠  return `${baseUrl.slice(0, id)}?${baseUrl.slice(id + 1).replace(/\/$/, '')}&${newParameters}`;  }  
}  

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

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

相关文章

perl:BigInt 计算 斐波那契数列

use Math::BigInt; 计算 斐波那契数列&#xff08;Fibonacci sequence&#xff09;&#xff0c;不受长整型位数限制。 编写 fibonacci.pl 如下 #!/usr/bin/perl use strict; use warnings; use Math::BigInt; sub bigint { Math::BigInt->new(shift); }# 定义一个子程序…

Oracle Cloud实例端口无法访问

问题 我在Oracle Cloud上创建实例以后&#xff0c;在网络的安全列表中也增加了对应端口的条目。但是端口无法访问。 排查 起初以为是我选择了Ubuntu的镜像导致的&#xff0c;更换为Oracle Linux&#xff0c;问题依旧。 后来以为是我的操作过程有问题&#xff0c;按照Oracle自…

Backend - DRF 序列化(django-rest-framework)

目录 一、restful 、django-rest-framework 、swagger 三者的关系 &#xff08;一&#xff09;restful API&#xff08;REST API&#xff09; 1. rest 2. restful 3. api 4. restfulAPI &#xff08;二&#xff09;django-rest-framework&#xff08;简称DRF&#xff09…

Elasticsearch(1)

目录 115.elasticsearch是什么?基于Lucene的,那么为什么不直接使用Lucene呢? 116.ELK技术栈的常见应用场景? 117.ES索引模板是什么? 118.ES中索引的生命周期管理?

【学习笔记】通过windows自带命令WMIC,查询浏览器版本号信息,对比Selenium驱动的版本号信息

【简单介绍】 WMIC 是 Windows Management Instrumentation Command-line 的缩写,是一个功能强大的 Windows 命令行工具,可以用于访问和管理 Windows Management Instrumentation (WMI) 提供的各种信息和功能。 WMIC datafile 是 WMIC 的一个子命令,用于管理和查询文件系统中…

Web3D智慧医院平台(HTML5+Threejs)

智慧医院的建设将借助物联网、云计算、大数据、数字孪生等技术&#xff0c;以轻量化渲染、极简架构、三维可视化“一张屏”的形式&#xff0c;让医院各大子系统管理既独立又链接&#xff0c;数据相互融合及联动。 建设医院物联网应用的目标对象&#xff08;人、物&#xff09;都…

7 pytorch DataLoader, TensorDataset批数据训练方法

前言 本文主要介绍pytorch里面批数据的处理方法&#xff0c;以及这个算法的效果是什么样的。具体就是要弄明白这个批数据选取的算法是在干什么&#xff0c;不会涉及到网络的训练。 from torch.utils.data import DataLoader, TensorDataset主要实现就是上面的数据集和数据载入…

web server apache tomcat11-02-setup 启动

前言 整理这个官方翻译的系列&#xff0c;原因是网上大部分的 tomcat 版本比较旧&#xff0c;此版本为 v11 最新的版本。 开源项目 从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎&#xff0c;轻嗅蔷薇。 系列文章 web server apache tomcat11-01-官方文档入门介绍 web…

pdf做批注编辑工具 最新pdf reader pro3.3.1.0激活版

PDF Reader Pro是一款功能强大的PDF阅读和编辑工具。它提供了多种工具和功能&#xff0c;帮助用户对PDF文档进行浏览、注释、编辑、转换和签名等操作。以下是PDF Reader Pro的一些主要特色&#xff1a; 最新pdf reader pro3.3.1.0激活版下载 多种查看模式&#xff1a;PDF Reade…

STM32 PB3 PB4 无法作为 GPIO 使用解决办法

如下所示&#xff0c;PA13 PA14 PB3 PB4 PB5, 默认是JTAG SWD的 PIN, 需要引脚ReMap 才能作为GPIO 使用。 HAL库解决办法 // __HAL_AFIO_REMAP_SWJ_ENABLE(); //Full SWJ (JTAG-DP SW-DP):// __HAL_AFIO_REMAP_SWJ_NONJTRST(); //Full SWJ (JTAG-DP SW-DP) but without NJTR…

【代理模式】静态代理-简单例子

在Java中&#xff0c;静态代理是一种设计模式&#xff0c;它涉及到为一个对象提供一个代理以控制对这个对象的访问。静态代理在编译时就已经确定&#xff0c;代理类和被代理类会实现相同的接口或者是代理类继承被代理类。客户端通过代理类来访问&#xff08;调用&#xff09;被…

认识异常(1)

❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; hellohello~&#xff0c;大家好&#x1f495;&#x1f495;&#xff0c;这里是E绵绵呀✋✋ &#xff0c;如果觉得这篇文章还不错的话还请点赞❤️❤️收藏&#x1f49e; &#x1f49e; 关注&#x1f4a5;&a…

计算机网络:MAC地址 IP地址 ARP协议

计算机网络&#xff1a;MAC地址 & IP地址 & ARP协议 MAC地址IP地址ARP协议 MAC地址 如果两台主机通过一条链路通信&#xff0c;它们不需要使用地址就可以通信&#xff0c;因为连接在信道上的主机只有他们两个。换句话说&#xff0c;使用点对点信道的数据链路层不需要使…

开源 Ruo-Yi 项目引入 Mybatis-Plus:3.5.3 报错ClassNotFoundException:

开源 Ruo-Yi 项目引入 Mybatis-Plus:3.5.3 报错ClassNotFoundException&#xff1a; Caused by: java.lang.ClassNotFoundException: com.baomidou.mybatisplus.extension.plugins.MybatisPlusInter1 分析问题 控制台报错说明我们引入的 mybatis-plus 的依赖里找不到com.baom…

【verilog 设计】 reg有没有必要全部赋初值?

一、前言 在知乎发现“reg有没有必要全部赋初值”这个问题&#xff0c;与自己近期对Verilog reg的进一步学习相契合&#xff0c;此文对这个问题进行总结。 二、reg的初值赋值方式 就语法意义赋初值而言&#xff0c;就是在声明reg时对其赋值。在工程中&#xff0c;对于数字系…

【Windows】GPU、CUDA、cuDNN、Pytorch、Python知识总结

文章目录 显卡GPUCUDACUDA ToolkitCUDA SamplesCUDA DriverCUDA Toolkit和CUDA Driver版本的对应CUDA Driver和CUDA Runtime的区别nvcc和nvidia-smi的区别cuDNN查看GPU信息nvidia-smi(Driver版)NVIDIA控制面板nvcc -V或nvcc --version(runtime版)报错:nvcc 不是内部或外部…

数字化转型-工具变量数据集

01、数据介绍 数字化转型是指企业或个人利用数字技术&#xff0c;如大数据、云计算、人工智能等&#xff0c;对其业务流程、运营模式、决策方式等进行全面、深入的变革&#xff0c;以提高效率、降低成本、提升质量、增强竞争力。在这个过程中&#xff0c;工具变量扮演着至关重…

手写SpringBoot项目所使用的xxl-job分布式任务调度平台的starter

手写SpringBoot项目所使用的xxl-job分布式任务调度平台的starter 要将上述代码抽离成一个独立的 Spring Boot Starter&#xff0c;您需要创建一个新的 Maven 项目&#xff0c;并按照以下步骤进行操作&#xff1a; 创建 Maven 项目&#xff1a; 使用 IDE 或命令行创建一个新的 …

JVM虚拟机(九)如何开启 GC 日志

目录 一、引言二、开启 GC 日志三、解析 GC 日志四、优化建议 一、引言 在 Java 应用程序的运行过程中&#xff0c;垃圾收集&#xff08;Garbage Collection&#xff0c;简称 GC&#xff09;是一个非常重要的环节。GC 负责自动管理内存&#xff0c;回收不再使用的对象所占用的…

zabbix 自动发现与自动注册 部署 zabbix 代理服务器

zabbix 自动发现&#xff08;对于 agent2 是被动模式&#xff09; zabbix server 主动的去发现所有的客户端&#xff0c;然后将客户端的信息登记在服务端上。 缺点是如果定义的网段中的主机数量多&#xff0c;zabbix server 登记耗时较久&#xff0c;且压力会较大。1.确保客户端…