JavaScript 用于在客户端读取 doc 和 docx 的库

JavaScript library to read doc and docx on client

我正在搜索 JavaScript 库,它可以读取 .doc - 和 .docx - 文件。焦点仅在文本内容上。我对 MS-Word 文件中的图片、公式或其他特殊结构不感兴趣。

如果库与 JavaScript FileReader 一起使用,如以下代码所示,那就太好了。

function readExcel(currfile) {
  var reader = new FileReader();

  reader.onload = (function (_file) {
      return function (e) {
          //here should the magic happen
      };
  })(currfile);

  reader.onabort = function (e) {
      alert('File read canceled');
  };

  reader.readAsBinaryString(currfile);
}

我通过互联网搜索,但找不到我要找的东西。

你可以为此使用docxtemplater(即使通常用于模板,它也可以只获取文档的文本):

var zip = new JSZip(content);
var doc=new Docxtemplater().loadZip(zip)
var text= doc.getFullText();
console.log(text);

有关安装信息,请参阅 the Doc(我是该项目的维护者)

但是,它只处理 docx,不处理 doc

现在您可以从 doc/docx 中提取文本内容而无需安装外部依赖项。

您可以使用名为 any-text

的节点库

目前,它支持多种文件扩展名,如 PDF、XLSX、XLS、CSV 等

用法很简单:

  • 将库安装为依赖项 (/dev-dependency)
npm i -D any-text
  • 利用getText方法读取文本内容
var reader = require('any-text');

reader.getText(`path-to-file`).then(function (data) {
  console.log(data);
});
  • 您也可以使用 async/await 表示法
var reader = require('any-text');

const text = await reader.getText(`path-to-file`);

console.log(text);

样本测试

var reader = require('any-text');

const chai = require('chai');
const expect = chai.expect;

describe('file reader checks', () => {
  it('check docx file content', async () => {
    expect(
      await reader.getText(`${process.cwd()}/test/files/dummy.doc`)
    ).to.contains('Lorem ipsum');
  });
});

希望对您有所帮助!