📅  最后修改于: 2023-12-03 15:17:01.209000             🧑  作者: Mango
在使用 JavaScript 时,可能需要将 PDF 文件转换为二进制,或将基于 Base64 的 PDF 文件转换为对象 URL。这篇文章将向你介绍如何使用 JavaScript 在浏览器中创建对象 URL 和将 PDF 文件转换为二进制。
对象 URL 提供了一种将 Blob 或 File 对象转换为 URL 的方法。对象 URL 可以通过 URL.createObjectURL()
访问,也可以通过 URL.revokeObjectURL()
方法释放。以下是一些简单的示例:
// 创建对象 URL
const blob = new Blob(["Hello, world!"], { type: "text/plain" });
const url = URL.createObjectURL(blob);
console.log(url);
// 释放对象 URL
URL.revokeObjectURL(url);
输出的 URL 将类似于:blob:http://example.com/b1dfff74-3bee-4a38-b117-84343c59e8e6
。
使用 XMLHttpRequest
(XHR)对象可以轻松地将 PDF 文件转换为二进制字符串。以下是如何实现它的代码:
const xhr = new XMLHttpRequest();
xhr.open("GET", "example.pdf", true);
xhr.responseType = "arraybuffer";
xhr.onload = function () {
if (this.status === 200) {
const arrayBuffer = xhr.response;
if (arrayBuffer) {
const byteArray = new Uint8Array(arrayBuffer);
console.log(byteArray);
}
}
};
xhr.send();
这里有一个使用 JavaScript 将基于 Base64 的 PDF 文件转换为对象 URL 的示例代码:
const base64pdf = "data:application/pdf;base64,JVBERi0xLjM..." // 这个是假的 base64 对象
// 从 base64 转换为二进制
const byteCharacters = atob(base64pdf.replace(/^data.*base64,/, ""));
// 创建 blob
const byteNumbers = new Array(byteCharacters.length);
for (let i = 0; i < byteCharacters.length; i++) {
byteNumbers[i] = byteCharacters.charCodeAt(i);
}
const byteArray = new Uint8Array(byteNumbers);
const blob = new Blob([byteArray], { type: "application/pdf" });
// 创建对象 URL
const url = URL.createObjectURL(blob);
console.log(url);
// 释放对象 URL
URL.revokeObjectURL(url);
本文向你介绍了如何使用 JavaScript 创建对象 URL 和将 PDF 文件转换为二进制,并提供了示例代码。现在你知道如何使用这些技术来展示 PDF 文件或在必要时将 PDF 文件转换为其他格式了。