Select pdf 文档 'embed' 内的文本
Select Text within 'embed' for pdf document
我试图从一个显然使用 'embed' 显示 pdf window 的网站上抓取信息。代码很简单,我找到了发送信息的方法。
如果我 'ctrl + a' pdf window,它将 select 一切。到那时,我现在可以根据需要通过消息发送信息了。
我的问题是,我需要一种方法 select 并自动设置信息范围。最好不要手动。
html 非常简单:
<html>
<head>
</head>
<body class="pdf">
<embed name="0111111" style="position:absolute; left: 0; top: 0;" width="100%" height="100%" src="about:blank" type="application/pdf" internalid="0111111">
</body>
</html>
这就是全部。这些东西显然在嵌入物中。正如我所说,我可以 'ctrl + a' 并突出显示所有内容并根据需要获取发送的信息,但我似乎无法弄清楚如何自动 select 嵌入的文本。
我当前的代码是:
// Send Selected Info Inside PDF
document.querySelector('embed').postMessage({type: 'getSelectedText'}, '*');
// Listen for info inside PDF
window.addEventListener("message", (event) => {
console.log(event.data.selectedText);
}, false);
有什么想法吗?
您无法在浏览器中通过 javascript 访问 embed
标签内的 pdf 内容。
建议如果你在Node.js
环境下,得到pdf文件url后,你可以下载后在npm
上搜索pdf解析器解压此文件的文本内容。
document.querySelector('embed').postMessage({type: 'selectAll'});
这非常有效...您将其放入内容脚本中。
window.addEventListener("message", (event) => {
console.log(event.data.selectedText);
}, false);
const script = document.createElement('script');
script.textContent = `(${() => {
document.querySelector('embed').postMessage({type: 'selectAll'});
document.querySelector('embed').postMessage({type: 'getSelectedText'}, '*');
}})()`;
document.documentElement.appendChild(script);
script.remove();
我试图从一个显然使用 'embed' 显示 pdf window 的网站上抓取信息。代码很简单,我找到了发送信息的方法。
如果我 'ctrl + a' pdf window,它将 select 一切。到那时,我现在可以根据需要通过消息发送信息了。
我的问题是,我需要一种方法 select 并自动设置信息范围。最好不要手动。
html 非常简单:
<html>
<head>
</head>
<body class="pdf">
<embed name="0111111" style="position:absolute; left: 0; top: 0;" width="100%" height="100%" src="about:blank" type="application/pdf" internalid="0111111">
</body>
</html>
这就是全部。这些东西显然在嵌入物中。正如我所说,我可以 'ctrl + a' 并突出显示所有内容并根据需要获取发送的信息,但我似乎无法弄清楚如何自动 select 嵌入的文本。
我当前的代码是:
// Send Selected Info Inside PDF
document.querySelector('embed').postMessage({type: 'getSelectedText'}, '*');
// Listen for info inside PDF
window.addEventListener("message", (event) => {
console.log(event.data.selectedText);
}, false);
有什么想法吗?
您无法在浏览器中通过 javascript 访问 embed
标签内的 pdf 内容。
建议如果你在Node.js
环境下,得到pdf文件url后,你可以下载后在npm
上搜索pdf解析器解压此文件的文本内容。
document.querySelector('embed').postMessage({type: 'selectAll'});
这非常有效...您将其放入内容脚本中。
window.addEventListener("message", (event) => {
console.log(event.data.selectedText);
}, false);
const script = document.createElement('script');
script.textContent = `(${() => {
document.querySelector('embed').postMessage({type: 'selectAll'});
document.querySelector('embed').postMessage({type: 'getSelectedText'}, '*');
}})()`;
document.documentElement.appendChild(script);
script.remove();