blob转换为文本:将blob转换为pdf和doc文件的文本时,无法读取文件内容

时间:2019-07-12 15:13:35

标签: angular blob filereader save-as

我正在下载文件,并尝试读取文件内容,这是项目功能的一部分。当我阅读下面的.text文件时,代码工作正常。但是对于.pdf,它不起作用。

service.ts

saveFile(response, filename) {

    const blob = new Blob([response], { type: 'application/pdf' });
    const fileReader = new FileReader();
    fileReader.onload = (e) => {
      console.log(fileReader.result);
    }
    fileReader.readAsText(blob);

    var result = filename.match('.pdf');
    if (result) {
      var blobURL = URL.createObjectURL(blob);
      window.open(blobURL);
    } else {
      saveAs(blob, filename);
    }
  }

我能够保存包含内容的文件,但是无法读取文件文本。文件文本看起来像这样enter image description here

2 个答案:

答案 0 :(得分:0)

通常情况下,默认情况下您无法查看pdf的内容,因此您需要添加一些第三方lib来阅读其内容

检查此软件包pdfreader

示例:

var fs = require("fs");
fs.readFile("sample.pdf", (err, pdfBuffer) => {
  // pdfBuffer contains the file content
  new PdfReader().parseBuffer(pdfBuffer, function(err, item) {
    if (err) callback(err);
    else if (!item) callback();
    else if (item.text) console.log(item.text);
  });
});

{{1}}

答案 1 :(得分:0)

在加载了大量选项之后,下面是我创建的用于读取pdf,doc和docx文件的代码模块。该模块还提供文件扩展名。将来,我将使其成为功能齐全的库,以读取所有类型的文档,只需传递文件名即可返回文本。

https://github.com/bpandey3/fileparser/blob/master/utils/passfileReader.js

Dev依赖项

  • 用于doc和docx文件的node-stream-zip
  • 用于读取pdf文件系统以读取文件的pdfreader