我正在使用以下代码从网上读取pdf并传递给pdftotext而不将其保存在本地文件系统中:
const source = 'http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf'
const http = require('http')
const spawn = require('child_process').spawn
download(source).then(pdftotext)
.then(result => console.log(result.slice(0, 77)))
function download(url) {
return new Promise(resolve => http.get(url, resolve))
}
function pdftotext(binaryStream) {
//read input from stdin and write to stdout
const command = spawn('pdftotext', ['-', '-'])
binaryStream.pipe(command.stdin)
return new Promise(resolve => {
const result = []
command.stdout.on('data', chunk => result.push(chunk.toString()))
command.stdout.on('end', () => resolve(result.join('')))
})
}
在这个例子中,它会起作用,因为pdftotext支持stdin,但如果不是这样,我该怎么办?我写了关于命名流的文章,但没有找到任何关于它的信息。
提前致谢!