节点将 pdf 从 express 文件上传转换为文本
Node convert pdf from express file upload to text
我需要将 pdf 上传到我的服务器并从 PDF 中提取文本。这就是我的 :
const express = require('express');
const fileUpload = require('express-fileupload');
const app = express();
app.use(fileUpload());
app.post('/upload', (req, res) => {
try {
let sampleFile = req.files.File;
} catch (err) {
res.send(err.message);
}
});
const PORT = process.env.PORT || 5000;
app.listen(PORT, () => console.log(`server started on port ${PORT}`));
当我记录 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}`));
我需要将 pdf 上传到我的服务器并从 PDF 中提取文本。这就是我的 :
const express = require('express');
const fileUpload = require('express-fileupload');
const app = express();
app.use(fileUpload());
app.post('/upload', (req, res) => {
try {
let sampleFile = req.files.File;
} catch (err) {
res.send(err.message);
}
});
const PORT = process.env.PORT || 5000;
app.listen(PORT, () => console.log(`server started on port ${PORT}`));
当我记录 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}`));