无法解析页面文本,得到“ReferenceError: ReadableStream is not defined”

jan*_*san 3 javascript node.js pdfjs

我目前正在尝试创建一个实用程序来解析 PDF 中的注释。我可以很好地加载 PDF 文件,注释对象也很好,但我需要获取与这些注释相关的文本(下划线、突出显示等)。

当我尝试使用getTextContent()失败的方法时,这会变得毛茸茸的。下面是发生这种情况的方法:

/**
 * @param pdf The PDF document obtained upon `pdfjs.getDocument(pdf).promise` success.
 */
function getAllPages(pdf) {
  return new Promise((resolve, reject) => {
    let allPromises = [];
    for (let i = 0; i < numPages; i++) {
      const pageNumber = i + 1; // note: pages are 1-based
      const page = pdf.getPage(pageNumber)
        .then((pageContent) => {

          // testing with just one page to see what's up
          if (pageNumber === 1) {
            try {
              pageContent.getTextContent()
                .then((txt) => {
                  // THIS NEVER OCCURS
                  console.log('got text');
                })
                .catch((error) => {
                  // THIS IS WHERE THE ERROR SHOULD BE CAUGHT
                  console.error('in-promise error', error)
                });
            } catch (error) {
              // AT LEAST IT SHOULD BE CAUGHT HERE
              console.log('try/catch error:', error);
            }
          }
        })
        .catch(reject);

      allPromises.push(page);
    }
    Promise.all(allPromises)
      .then(() => {
        allPagesData.sort(sortByPageNumber);
        resolve(allPagesData);
      })
      .catch(reject);
  });
}
Run Code Online (Sandbox Code Playgroud)

调用时pageContent.getTextContent(),应该返回一个承诺,错误“ ReferenceError: ReadableStream is not definedcatch()try.

这很奇怪,因为我原pageContent.getTextContent().catch()以为能够捕捉到它。另外,我不知道该怎么做才能解决这个问题。

任何帮助表示赞赏。

Dij*_*tra 6

我注意到使用pdfjs-dist会导致错误。

使用pdfjs-dist/es5/build/pdf.js来代替。

const pdfjs = require('pdfjs-dist/es5/build/pdf.js');
Run Code Online (Sandbox Code Playgroud)

示例用法