📜  js 创建对象 url base64 pdf 二进制 - Javascript (1)

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

使用 JS 创建对象 URL Base64 PDF 二进制 - JavaScript

在使用 JavaScript 时,可能需要将 PDF 文件转换为二进制,或将基于 Base64 的 PDF 文件转换为对象 URL。这篇文章将向你介绍如何使用 JavaScript 在浏览器中创建对象 URL 和将 PDF 文件转换为二进制。

创建对象 URL

对象 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

将 PDF 文件转换为二进制

使用 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();
将基于 Base64 的 PDF 文件转换为对象 URL

这里有一个使用 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 文件转换为其他格式了。