问题描述
我需要将pdf上传到我的服务器,然后从PDF中提取文本。这就是我所拥有的:
dtype
当我记录sampleFile时,它是一个json。它有大量的数字数据,我不确定如何从中获取文本。我看到的执行此操作的库已经有一个指向的文件。
解决方法
如果我们使用pdf2json模块,则可以创建一个解析器,然后将上传的数据传递给parseBuffer函数。
我们可以使用getRawTextContent()函数访问文件对象或获取原始文本内容。
const express = require('express');
const fileUpload = require('express-fileupload');
const PDFParser = require("pdf2json");
const app = express();
app.use(express.static("./"));
app.use(fileUpload());
app.post('/upload',async (req,res) => {
try {
let sampleFile = req.files.File;
console.log("Sample file:",sampleFile);
let text = await getPDFText(sampleFile.data);
console.log("PDF Text:",text);
res.sendStatus(201);
} catch (err) {
res.send(err.message);
}
});
function getPDFText(data) {
return new Promise((resolve,reject) => {
const pdfParser = new PDFParser(null,1);
pdfParser.on("pdfParser_dataError",reject);
pdfParser.on("pdfParser_dataReady",pdfData => {
resolve(pdfParser.getRawTextContent());
});
pdfParser.parseBuffer(data);
});
}
const PORT = process.env.PORT || 5000;
app.listen(PORT,() => console.log(`server started on port ${PORT}`));