How can I get selected text in pdf in Javascript?

后端 未结 2 457
甜味超标
甜味超标 2020-12-12 00:32

I\'m writing a Chrome Extention to manipulate pdf file so I want to get selected text in the pdf. How can I do that.

Some thing like that:

相关标签:
2条回答
  • 2020-12-12 00:43

    You can use the internal undocumented commands of the built-in PDF viewer.
    To access it your content script should do it in page context:

    function getPdfSelectedText() {
      return new Promise(resolve => {
        window.addEventListener('message', function onMessage(e) {
          if (e.origin === 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai' &&
              e.data && e.data.type === 'getSelectedTextReply') {
            window.removeEventListener('message', onMessage);
            resolve(e.data.selectedText);
          }
        });
        const script = document.createElement('script');
        document.documentElement.appendChild(script).text =
          "document.querySelector('embed').postMessage({type: 'getSelectedText'}, '*')";
        script.remove();
      });
    }
    
    chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => {
      if (msg === 'getPdfSelection') {
        getPdfSelectedText().then(sendResponse);
        return true;
      }
    });
    
    0 讨论(0)
  • 2020-12-12 00:46

    There is no one generic solution for all pdf extensions. Every extention has is own API. If you work with google-chrome extension i belive it's impossible.

    How to get the selected text from an embedded pdf in a web page?

    https://html.developreference.com/article/23259983/How+extension+get+the+text+selected+in+chrome+pdf+viewer%EF%BC%9F

    0 讨论(0)
提交回复
热议问题