-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.js
48 lines (40 loc) · 1.12 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
const express=require('express');
const app=express();
const fs = require('fs');
const multer=require('multer');
const { TesseractWorker }=require('tesseract.js');
const worker= new TesseractWorker();
const storage=multer.diskStorage({
destination:(req,file,cd)=>{
cd(null,"./uploads");
},
filename:(req,file,cd)=>{
cd(null,file.originalname);
}
});
const upload=multer({ storage:storage }).single("avatar");
app.set('view engine','ejs');
app.get('/',(req,res)=>{
res.render('index');
});
app.post('/upload',(req,res)=>{
upload(req,res,err=>{
fs.readFile(`./uploads/${req.file.originalname}`,(err,data)=>{
if(err) return console.log('error');
worker
. recognize (data,"eng",{tessjs_create_pdf:'1'})
.progress(progress=>{
console.log(progress);
})
.then(result=>{
res.redirect('/download');
})
.finally(()=>{worker.terminate()});
});
});
});
app.get('/download',(req,res)=>{
const file=`${__dirname}/tesseract.js-ocr-result.pdf`;
res.download(file);
});
app.listen(3000,()=> console.log('server is running'));