从chrome扩展中的pdf中提取文本

extract text from pdf in chrome extensions

本文关键字:提取 取文本 pdf 扩展 chrome      更新时间:2023-09-26

我正在开发一个chrome扩展。我想实现的是弹出窗口可以显示pdf中的文本。我已经搜索了PDF.js,并在chrome扩展的backGround.js中编写了以下代码进行测试:

‘use strict’;
var pdf = PDFJS.getDocument('http://www.pacer.gov/documents/pacermanual.pdf');

    var pdf = PDFJS.getDocument('pacermanual.pdf');
    pdf.then(function(pdf) {
     var maxPages = pdf.pdfInfo.numPages;
     for (var j = 1; j <= maxPages; j++) {
        var page = pdf.getPage(j);
        // the callback function - we create one per page
        var processPageText = function processPageText(pageIndex) {
          return function(pageData, content) {
            return function(text) {
              // bidiTexts has a property identifying whether this
              // text is left-to-right or right-to-left
              for (var i = 0; i < text.bidiTexts.length; i++) {
                str += text.bidiTexts[i].str;
              }
              if (pageData.pageInfo.pageIndex === 
                  maxPages - 1) {
                // later this will insert into an index
                console.log(str);
              }
            }
          }
        }(j);
        var processPage = function processPage(pageData) {
          var content = pageData.getTextContent();
          content.then(processPageText(pageData, content));
        }
        page.then(processPage);
     }
    });

清单如下所示:

{
    "name": "englishhelper",
    "version": "0.0.1",
    "description": "",
    "permissions": [
        "tabs", "http://*/*", "https://*/*"
    ],
    "background":{
       "script":["background.js","PDF.js"]
    },
    "browser_action":{
        "default_icon":"icon_png",
        "default_popup":"popup.html"
    },
    "manifest_version": 2
}

popup.html如下所示:

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" type="text/css" href="popup.css">
    <title></title>
</head>
<body>
<script src="background.js"></script>
<script src="PDF.js"></script>
</body>
</html>

控制台显示"PDFJS未定义"。"PDF.js"已经包含在popup.html中。chrome扩展是否可能使用PDF.js?

错误的加载顺序 (我们对此有规范问题吗?)

清单中的background.scriptcontent_scripts[i].js键是一个数组,换句话说,是一个有序列表。

脚本是按照那里定义的顺序加载和执行的;您需要确保在使用库之前已加载库。

在你的情况下,你需要交换它们:

"background":{
   "script": ["PDF.js", "background.js"]
},

这同样适用于HTML中<script>标记的顺序,例如popup.html