当前位置: 首页 > 知识库问答 >
问题:

将pdf读取为ArrayBuffer,将其存储在json文件中,并提供详细信息

壤驷志学
2023-03-14

我想围绕pdf文档构建一个包装器来存储更多信息。我用reader尝试了FileReader。readAsBinaryString()但这破坏了pdf文件(图像等部分丢失)。

所以我尝试了reader.readAsArrayBuffer(),它似乎可以在没有任何损坏的情况下获取内容。但是我不知道如何将ArrayBuffer转换为字符串,这样我就可以将它的值写入json文件以导出它。当我使用btoa(new TextDecoder(utf-8). decode(e.target.result))

我得到一个错误:要编码的字符串包含超出拉丁1范围的字符


共有1个答案

邢财
2023-03-14

总的来说,这听起来是个糟糕的主意,但不管怎样,可能会帮助别人...

将二进制文件编码为字符串的最简单和最可靠的方法是将其编码为bas64。

FileReader API有一个readAsDataURL()方法,它将返回一个由URI标头和bas64二进制数据组成的数据URI。
所以如果你只想要数据作为字符串,你所需要的就是抓住后面的任何东西。"Base64,"在返回的dataURI中。

inp.onchange = e => {
  const reader = new FileReader();
  reader.onload = e => {
    var myObj = {
      name: inp.files[0].name,
      data: reader.result.split('base64,')[1]
    };
    console.log(JSON.stringify(myObj));
  };
  reader.readAsDataURL(inp.files[0]);
};
<input type="file" id="inp">
 类似资料:
  • 应该使用的示例XML文件: 在order_output.csv中,应该有以下来自XML的属性 ·第1栏:命令号 ·专栏7:ExtnAddressLine1 ·第8栏:邮政编码

  • 问题内容: 有什么方法可以读取文本文件并将内容存储在Jtable中?我有一个文本文件,其中包含有关某些过程的某些信息。就像一个具有列和各自值的表。是否可以获取.txt文件的内容并以Jtable的形式显示?我正在使用Eclipse和Window Builder。任何帮助将不胜感激。谢谢! 问题答案: 我将研究Oracle的教程: 读/写文本文件 JTable教程 当从文本文件中获取数据时,您需要将其

  • 问题内容: 我知道如何使用和File IOException 读取文件,但是我唯一不知道的是如何将文本作为数组存储在文件中。 这是我的代码: 这是我的文件包含的内容: 问题答案: 存储为字符串: 对于花车:

  • 问题内容: 我需要读取文件路径为“ C:\ file.pdf”的pdf文件,并将其写入outputStream。最简单的方法是什么? ................................................... ................................................... 问题答案: import java.io.*; 到目前为止

  • 我是编程界的新手。嗯,我正在尝试使用ApachePOI库读取excel文件(5行5列)。我实际上有两个相同问题的实现。在第一个代码片段中,我只是读取excel文件并将其打印到控制台中。 然而,现在我正试图将读取的excel数据保存到一个数组中。所以我想在动态获取excel行和列大小后设置数组大小。但令我惊讶的是,当我执行第二个代码段时,似乎“while(cellIterator.hasNext()

  • 我将一个DBF文件输入到数据框中并运行查询。 这是密码。 然后得到这样一个错误。。KeyError:[Int64Index([0],dtype='int64')]中没有一个在[columns]中 这是我想要的文本文件的输出..."2020-01-01 943 527.0 56.46 56.46 0.0 0.0"