【发布时间】:2018-03-11 00:15:15
【问题描述】:
您好,我正在尝试让 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 的 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);是pdf2json文件的内容。
有谁知道我可以做些什么来让它工作?
【问题讨论】:
-
单独运行和服务器运行有什么区别?
-
你的相对路径在这里正确吗?
/pdf2json/lib/pdf.js/sandbox/包含在哪里?