vue3 ts pdfjs-dist实现base64 生成本地文件
时间: 2023-07-16 17:15:20 浏览: 45
首先,你需要安装`pdfjs-dist`和`file-saver`两个库:
```
npm install pdfjs-dist file-saver --save
```
然后,在你的TS代码中引入这两个库:
```typescript
import * as pdfjsLib from 'pdfjs-dist';
import { saveAs } from 'file-saver';
```
接着,你需要编写一个方法来将base64数据转换为Blob对象:
```typescript
function base64ToBlob(base64: string, contentType: string): Blob {
const sliceSize = 1024
const byteCharacters = atob(base64)
const byteArrays = []
for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
const slice = byteCharacters.slice(offset, offset + sliceSize)
const byteNumbers = new Array(slice.length)
for (let i = 0; i < slice.length; i++) {
byteNumbers[i] = slice.charCodeAt(i)
}
const byteArray = new Uint8Array(byteNumbers)
byteArrays.push(byteArray)
}
return new Blob(byteArrays, { type: contentType })
}
```
最后,你可以编写一个方法来使用pdfjs加载PDF文件并将其保存到本地:
```typescript
async function savePdfFromBase64(base64: string, filename: string) {
const pdf = await pdfjsLib.getDocument({ data: base64 }).promise
const blob = await pdf.getBlob()
saveAs(blob, filename)
}
```
现在你可以使用这个方法来将base64 PDF数据保存到本地:
```typescript
const base64Pdf = 'JVBERi0xLjMKJf////8...'; // 这里替换为你的base64 PDF数据
const filename = 'example.pdf';
savePdfFromBase64(base64Pdf, filename);
```
这样就可以将base64转换为PDF并保存到本地了。