作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从科学论文中提取 DOI,并且由于这些几乎总是位于页脚中,因此我想在浏览正文之前尝试此策略。
这是我当前的方法,使用 Mozilla 的 pdf.js
搜索任意 PDF 的第一页。
var Promise = require('bluebird');
const doiRegex = new RegExp('\b(10[.][0-9]{4,}(?:[.][0-9]+)*/(?:(?!["&\'<>])[[:graph:]])+)\b', 'i');
function pdfgrep(fileObj) {
return Promise.spawn(function* () {
var pdf = yield pdfjs.getDocument(fileObj.path);
console.log(pdf);
var page = yield pdf.getPage(1);
var text = yield page.getTextContent();
for (var s of text.items) {
var match = s.str.match(regex);
if (match !== null) {
return match;
}
}
return null;
});
}
Here是一个可以测试此方法的 PDF。请注意,DOI 位于页脚中,可以使用任何普通 PDF 查看器中的搜索工具找到。但是,pdf.getPage
似乎不包含页脚中的任何文本。
最佳答案
RegExp 未正确编写:
\b
在字符串中未转义,应为 \\b
[:graph:]
可能不起作用其含义如下:
var doiRegex = /\b(10[.][0-9]{4,}(?:[.][0-9]+)*\/(?:(?!["&\'<>])[\x21-\x7E])+)\b/i;
关于javascript - 如何使用 PDF.js 阅读页脚文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35638879/
我是一名优秀的程序员,十分优秀!