react-lib 读取本地模板创建PDF

读取本地文件和读取远程的一样,都使用fetch去获取

 async function modifyPdf() {let url = './template.pdf'let existingPdfBytes = await fetch(url).then(res => res.arrayBuffer()) // 这里也有问题要转一下const d = new Uint8Array(existingPdfBytes)const pdfDoc = await PDFDocument.load(d)const helveticaFont = await pdfDoc.embedFont(StandardFonts.Helvetica)const pages = pdfDoc.getPages()const firstPage = pages[0]const { width, height } = firstPage.getSize()firstPage.drawText('This text was added with JavaScript!', {x: 500,y: height / 2 + 300,size: 50,font: helveticaFont,color: rgb(0.95, 0.1, 0.1),// rotate: degrees(-45),})let data = await pdfDoc.save()renderPdf(data)}

这里有个坑:

1. 文件最好是直接放在public里面,因为这里fetch访问的是绝对路径

2. No PDF header found at MissingPDFHeaderError

需要讲fetch获取到的结果转一下

要将他渲染出来也有几种方法。

浏览器下使用iframe

function renderPdf(uint8array) {const tempblob = new Blob([uint8array], {type: 'application/pdf'});const docUrl = URL.createObjectURL(tempblob);setSrc(docUrl);}

移动端可以借助react-pdf。这个有缺陷,pdf页数较多需要一次渲染的时候会比较慢有白屏时间,暂时没做处理。有时间补后续。

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

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

相关文章

区块链技术与应用学习笔记(1-4节)——北大肖臻课程

目录 1. 区块链初识(课程简介) 被过度炒作,落地应用有限? 下一代的价值互联网?世界上最慢的数据库? 2. BTC-密码学原理(比特币) 1)哈希 哈希函数特点 个人学习所得 2)签名 个人对于…

基于yolov5实时实例分割

是一个结合了最新技术进展(State-of-the-Art, SOTA)的实时实例分割项目,基于著名的YOLOv5目标检测架构,并对其进行扩展以实现对图像中每个对象实例的精确像素级分割。以下是该项目的中文介绍: YOLOv5: YOL…

实习算法准备之BFSDFS

这里写目录标题 1 理论1.1 BFS框架 2 例题2.1 二叉树的最小高度2.2 打开转盘锁2.3 滑动谜题 1 理论 BFS和DFS是两个遍历算法,其中DFS之前已经接触过,就是回溯,忘记的话请回顾回溯篇的例题(全排列,N皇后) B…

Lagent AgentLego 智能体应用搭建-笔记六

本次课程由Lagent&AgentLego 核心贡献者樊奇老师讲解【Lagent & AgentLego 智能体应用搭建】课程 课程视频:https://www.bilibili.com/video/BV1Xt4217728/ 课程文档:https://github.com/InternLM/Tutorial/tree/camp2/agent 大语言模型的局限…

【C++】哈希思想

目录 哈希介绍: 一,位图 1-1,位图的认识 1-2,位图的简单实现 1-3,位图的应用 二,布隆过滤器 2-1,布隆过滤器的认识 2-2,布隆过滤器的简单实现 2-3,布隆过滤器的…

LIUNX系统编程:动态库的制作

目录 1.将add.c和sub.c编译形成.o文件 2.讲add.o和sub.o打包成库 3.Makefile 4.细节问题 5.解决办法 1.直接将自己的库拷贝到库中 2.更改动态库辅助查找的环境变量 3. 在lib64中建立一个软连接 1.将add.c和sub.c编译形成.o文件 gcc -c -fPIC add.c sub.c// fPIC生成位置…

揭秘APP广告:自刷收益真的可能吗?

在数字时代的浪潮中,应用程序(App)已成为我们生活的一部分。从早晨的闹钟应用到夜晚的助眠软件,我们的手机屏幕上挤满了各式各样的App。但是,你有没有想过,这些看似简单的App背后隐藏着怎样的商业模式&…

Docker——数据管理和网络通信

目录 一、Docker的数据管理 1.数据卷 2.数据卷容器 3.容器互联 二、Docker镜像的创建 1.基于现有镜像创建 2.基于本地模板创建 3.基于Dockerfile 创建 3.1联合文件系统(UnionFS) 3.2镜像加载原理 3.3为什么Docker里的Centos大小才200M 4.Dcok…

Redis系列5:深入分析Cluster 集群模式

1 背景 前面我们学习了Redis高可用的两种架构模式:主从模式、哨兵模式。 解决了我们在Redis实例发生故障时,具备主从自动切换、故障转移的能力,终保证服务的高可用。 但是这些其实远远不够,随着我们业务规模的不断扩展&#xff0…

Docker深入探索:网络与资源控制、数据管理与容器互联以及镜像生成

目录 一、 Docker网络 (一)Docker网络实现原理 (二)Docker网络模式 1. Bridge网络(默认) 2. Host网络 3. None网络 4. Container网络 5. 自定义网络 二、资源控制 (一)cgr…

基于FreeRTOS的ESP32环境监测系统:利用Arduino框架实现SD卡数据记录与FTP服务器集成(一)

本文档深入剖析一段C代码,该代码运用FreeRTOS实时操作系统结合Arduino框架,构建了一个高效稳定的ESP32环境监测系统。系统不仅实时采集温度和湿度数据,还将这些数据记录到SD卡中,并通过FTP服务器实现远程访问。以下对代码中体现的…

html表格导出为word文档,导出的部分表格内无法填写文字

导出技术实现:fileSaver.jshtml-docx-js 1.npm安装 npm install --save html-docx-js npm install --save file-saver 2.页面引入 import htmlDocx from html-docx-js/dist/html-docx; import saveAs from file-saver;components: {htmlDocx,saverFile, }, 3.页…