vue3 ts pdfjs-dist实现base64 pdf 生成本地文件
时间: 2023-11-14 15:56:06 浏览: 175
你可以使用pdfjs-dist库将base64格式的pdf文件转换为文件流,然后使用FileSaver库将文件流保存为本地文件。以下是一个示例代码:
```typescript
import pdfjs from 'pdfjs-dist'
import * as FileSaver from 'file-saver'
const base64Pdf = 'data:application/pdf;base64,...' // 替换成你的base64格式的pdf文件
pdfjs.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.7.570/pdf.worker.min.js'
const loadPdf = async (base64Pdf: string) => {
const loadingTask = pdfjs.getDocument({ data: atob(base64Pdf.split(',')[1]) })
const pdf = await loadingTask.promise
const pdfData = await pdf.getData()
return new Blob([pdfData], { type: 'application/pdf' })
}
const savePdfToLocal = (pdfBlob: Blob, fileName: string) => {
FileSaver.saveAs(pdfBlob, fileName)
}
const fileName = 'test.pdf' // 保存的文件名
loadPdf(base64Pdf).then(pdfBlob => savePdfToLocal(pdfBlob, fileName))
```
在上面的代码中,我们首先使用pdfjs-dist库将base64格式的pdf文件转换为Blob对象,然后使用FileSaver库将Blob对象保存为本地文件。注意,在使用pdfjs-dist库之前,我们需要先设置其全局worker的路径,以便正确加载工作线程。
阅读全文