关于前后端通过字节流传输以及对pdf添加数字签名的问题

78 篇文章 0 订阅
58 篇文章 3 订阅

问题是这样的,最近在做一个文件传输的task,传到前端加个签名又传回去。前端pdf库用的是“pdf-lib”

PDF-LIB · Create and modify PDF documents in any JavaScript environment.https://pdf-lib.js.org/#examples很遗憾这个库不支持读取blob,但是或者可能在下载的时候用blob会更好?(等做到后期再说)

关于Blob的使用_董厂长的博客-CSDN博客_blob的使用最近的Task涉及文件的上传和下载,查了查NGZERRO,发现相关组件是基于Blob的封装。写个笔记记录一下。要点:1. Blob 是一个容器2.Blob需要声明Type类型3.Blob拿到数据,通过Promise方式回调的到。4.Blob文件如何下载?将Blob转为一个Url,然后设置url的download属性,click点击下载。4.异步使用FileReaderFile​Reader(文件上传)的基本使用_yw00yw的博客-CSDN博客_filerea..https://blog.csdn.net/dongnihao/article/details/124633749?spm=1001.2014.3001.5502

接口返回的二进制流,前端转为了arrayBuffer。那么自己项目里接口写的时候也需要返回二进制流。

File类的操作至今还没仔细看过,这次好好研究一下。

这样理解一下吧,FileStream是一个“管道”,插到具体路径下的某个文件上。定义字节流数组byte[]。你可以把它当作一个“杯子”容器。之后“管道”吸取数据,放入“杯子”里。

 

那么这边做的时候得第一点记住大文件的分片上传。谁能知道第三方报告pdf能有十几页呢。以防万一现场出bug。

第二点,数字签名的添加,数字签名是一个png或者jpg,这个问题不大,pdf-lib支持加一个canvas图层,加文本或者图像都是可以的。

 至于为什么不在后端做pdf添加数字签名。因为看了看几个主流的库,spire。itextpdf什么的都要收费,免费的库各种限制。或者Graphic 直接画?(白手造库要我命了)。后来看了看还是前端做吧,视图层的东西还是交给前端吧。

前端的库原理其实都差不多,毕设时候研究过,加一个canvas绘制层。基本上就是确定这个页面的X,Y坐标,然后在Canvas层开始绘制,pdf-lib的方法就很明显,要求你输入xy坐标系。或者更激进一点,公司项目用一下“Fuzzy Anchoring”?那怕是这个task得研究一年。

 

关于优化。肯定得写好几个接口,第一个接口给用户预览文件,等用户确定选择了,再请求第二个接口实际的资源。第三个接口用于回传文件。暂定这样,等之后再聊一聊需求,看看有没有啥遗漏的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董厂长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值