📜  将base64转换为pdf文件javascript(1)

📅  最后修改于: 2023-12-03 15:09:33.133000             🧑  作者: Mango

将base64转换为pdf文件javascript

在Web开发中,我们可能会在前端页面中通过后端API获取到一个PDF文件的base64编码字符串,而我们需要将这个base64编码字符串转换为PDF文件,以便用户可以查看或下载。本文将介绍如何使用JavaScript将base64编码字符串转换为PDF文件。

实现步骤
  1. 将base64编码字符串转换为Uint8Array
// base64编码字符串
const base64String = 'JVBERi0xLjQKJ....';

// 将base64编码字符串转换为二进制数组
const decodedData = atob(base64String);
const uint8Array = new Uint8Array(decodedData.length);
for (let i = 0; i < decodedData.length; i++) {
  uint8Array[i] = decodedData.charCodeAt(i);
}
  1. 使用jsPDF库将Uint8Array转换为PDF文件
// 引入jsPDF库
import jsPDF from 'jspdf';

// 通过Uint8Array生成PDF文件
const pdfDoc = new jsPDF();
pdfDoc.addPage();
pdfDoc.setProperties({
  title: 'My PDF Document',
  author: 'John Doe'
});
pdfDoc.setFontSize(12);
pdfDoc.text(20, 20, 'This is the first line of the PDF document.');
// 将Uint8Array转换为PDF Blob对象
const pdfBlob = pdfDoc.output('blob');
  1. 创建下载链接供用户下载PDF文件
// 创建下载链接
const downloadLink = document.createElement('a');
downloadLink.href = URL.createObjectURL(pdfBlob);
downloadLink.download = 'my-pdf-document.pdf';
document.body.appendChild(downloadLink);
// 模拟点击下载链接
downloadLink.click();
完整代码
// base64编码字符串
const base64String = 'JVBERi0xLjQKJ....';

// 将base64编码字符串转换为二进制数组
const decodedData = atob(base64String);
const uint8Array = new Uint8Array(decodedData.length);
for (let i = 0; i < decodedData.length; i++) {
  uint8Array[i] = decodedData.charCodeAt(i);
}

// 引入jsPDF库
import jsPDF from 'jspdf';

// 通过Uint8Array生成PDF文件
const pdfDoc = new jsPDF();
pdfDoc.addPage();
pdfDoc.setProperties({
  title: 'My PDF Document',
  author: 'John Doe'
});
pdfDoc.setFontSize(12);
pdfDoc.text(20, 20, 'This is the first line of the PDF document.');
// 将Uint8Array转换为PDF Blob对象
const pdfBlob = pdfDoc.output('blob');

// 创建下载链接
const downloadLink = document.createElement('a');
downloadLink.href = URL.createObjectURL(pdfBlob);
downloadLink.download = 'my-pdf-document.pdf';
document.body.appendChild(downloadLink);
// 模拟点击下载链接
downloadLink.click();

上述代码将base64编码字符串转换为PDF文件,并创建下载链接供用户下载PDF文件。需要注意的是,这里使用了jsPDF库来生成PDF文件,因此需要先引入该库。