将 Base64 编码的 PDF 数据转换为 Blob 并打开 - 调整 PDF 大小
将 Base64 编码的 PDF 数据转换为 Blob 并打开
以下代码将 Base64 编码的 PDF 数据转换为 Blob 对象,并使用 JavaScript 打开 PDF 文件:
let base = data.rxFile;
let bstr = atob(base);
let n = bstr.length;
let u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
let blob = new Blob([u8arr], {type: 'application/pdf;chartset=UTF-8'});
let url = window.URL.createObjectURL(blob);
window.open(url)
// const a = document.createElement('a')
// a.href = url
// //不下载 a.download = name + '.pdf'
// document.body.appendChild(a)
// a.click()
// document.body.removeChild(a)
//删除url绑定
window.URL.revokeObjectURL(url)
调整输出的 PDF 大小
要调整输出的 PDF 大小,你可以使用 pdf-lib 库来修改 PDF 文件的尺寸。以下是一个示例代码,展示如何使用 pdf-lib 库来调整输出的 PDF 大小:
const { PDFDocument, PageSizes } = require('pdf-lib');
// 将 blob 转换为 Uint8Array
const arrayBuffer = await blob.arrayBuffer();
const uint8Array = new Uint8Array(arrayBuffer);
// 使用 pdf-lib 加载 PDF 文件
const pdfDoc = await PDFDocument.load(uint8Array);
// 获取第一页
const page = pdfDoc.getPages()[0];
// 设置新的页面尺寸,例如 A4 纸张大小
page.setSize(PageSizes.A4);
// 将修改后的 PDF 保存为新的 blob
const pdfBytes = await pdfDoc.save();
const newBlob = new Blob([pdfBytes], { type: 'application/pdf' });
// 打开新的 PDF
const newUrl = URL.createObjectURL(newBlob);
window.open(newUrl);
// 删除旧的 URL 绑定
URL.revokeObjectURL(url);
请注意,这个示例代码使用了 pdf-lib 库来进行 PDF 文件的操作。你首先需要安装 pdf-lib 库,并在代码中引入它。然后,你需要将原始的 Blob 对象转换为 Uint8Array,然后使用 pdf-lib 加载 PDF 文件。接下来,你可以使用 pdf-lib 提供的方法来修改 PDF 文件的尺寸。最后,将修改后的 PDF 保存为新的 Blob 对象,并打开它。
希望这可以帮助到你!
原文地址: https://www.cveoy.top/t/topic/cVTL 著作权归作者所有。请勿转载和采集!