您好我试图让pdfreader
module在node.js中工作,将PDF转换为文本格式。
当我只使用命令行node sandbox/pdf.js
(下面的内容)运行它时,它运行正常。
var pdfreader = require('pdfreader');
var rows = {}; // indexed by y-position
function printRows() {
Object.keys(rows) // => array of y-positions (type: float)
.sort((y1, y2) => parseFloat(y1) - parseFloat(y2)) // sort float positions
.forEach((y) => console.log((rows[y] || []).join('')));
}
new pdfreader.PdfReader().parseFileItems('lib/sandbox/book-eric.pdf', function(err, item){
if (!item || item.page) {
// end of file, or page
printRows();
console.log('PAGE:', item.page);
rows = {}; // clear rows for next page
}
else if (item.text) {
// accumulate text items into rows object, per line
(rows[item.y] = rows[item.y] || []).push(item.text);
}
});
`
当我从基于express
的{{1}}应用启动它时,使用node.js
我在包含模块后立即收到以下错误
node app
错误是:
var pdfreader = require('pdfreader');
它看起来像是它所依赖的模块,TypeError: Cannot read property 'userAgent' of undefined
at detectSyncFontLoadingSupport (eval at <anonymous> (/Users/deemeetree/Documents/Root/InfraNodus/node_modules/pdf2json/lib/pdf.js:60:1), <anonymous>:42060:38)
at eval (eval at <anonymous> (/Users/deemeetree/Documents/Root/InfraNodus/node_modules/pdf2json/lib/pdf.js:60:1), <anonymous>:42066:5)
正试图获取某些文件的pdf2json
并且它无法正常工作:
eval
这是eval(_fileContent);
个文件的内容。
任何人都知道我能做些什么让它发挥作用?
答案 0 :(得分:3)
解决方案是在包含pdfreader
模块之前添加它:
global.navigator = {
userAgent: 'node',
}
window.navigator = {
userAgent: 'node',
}
我希望它可以帮助其他人,因为我花了2个小时试图解决它。