diff options
author | Bob Zeleznik <zzzman@gmail.com> | 2019-09-30 14:02:04 -0400 |
---|---|---|
committer | Bob Zeleznik <zzzman@gmail.com> | 2019-09-30 14:02:04 -0400 |
commit | 2b0840202933ac554a9dc79304203ada38551c0f (patch) | |
tree | 3f2573ce53f39eb6cc8b4024d75f2a8335239219 /src/server/index.ts | |
parent | d7f515f32de780884774e7bbdcc1cfe78733af45 (diff) | |
parent | 205f29bf7379f631027022bca968e3c3bee4278d (diff) |
Merge branch 'master' of https://github.com/browngraphicslab/Dash-Web
Diffstat (limited to 'src/server/index.ts')
-rw-r--r-- | src/server/index.ts | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/src/server/index.ts b/src/server/index.ts index 0ee00f516..a265853ff 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -51,6 +51,8 @@ import * as qs from 'query-string'; import { Opt } from '../new_fields/Doc'; import { DashUploadUtils } from './DashUploadUtils'; import { BatchedArray, TimeUnit } from 'array-batcher'; +import { ParsedPDF } from "./PdfTypes"; +import { reject } from 'bluebird'; const download = (url: string, dest: fs.PathLike) => request.get(url).pipe(fs.createWriteStream(dest)); let youtubeApiKey: string; @@ -585,11 +587,15 @@ class NodeCanvasFactory { const pngTypes = [".png", ".PNG"]; const jpgTypes = [".jpg", ".JPG", ".jpeg", ".JPEG"]; const uploadDirectory = __dirname + "/public/files/"; +const pdfDirectory = uploadDirectory + "text"; +DashUploadUtils.createIfNotExists(pdfDirectory); + interface FileResponse { name: string; path: string; type: string; } + // SETTERS app.post( RouteStore.upload, @@ -603,19 +609,11 @@ app.post( const { type, path: location, name } = files[key]; const filename = path.basename(location); if (filename.endsWith(".pdf")) { - - var filePath = uploadDirectory + filename; - - let dataBuffer = fs.readFileSync(filePath); - - pdf(dataBuffer).then(async function (data: any) { - // // number of pages - data.numpages - // // number of rendered pages - data.numrender - // // PDF info - data.info - // // PDF metadata - data.metadata - // // PDF.js version - data.version // check https://mozilla.github.io/pdf.js/getting_started/ - // // PDF text - data.text - fs.createWriteStream(uploadDirectory + "text/" + filename.substring(0, filename.length - ".pdf".length) + ".txt").write(data.text); + let dataBuffer = fs.readFileSync(uploadDirectory + filename); + const result: ParsedPDF = await pdf(dataBuffer); + await new Promise<void>(resolve => { + const path = pdfDirectory + "/" + filename.substring(0, filename.length - ".pdf".length) + ".txt"; + fs.createWriteStream(path).write(result.text, error => error === null ? resolve() : reject(error)); }); } else { await DashUploadUtils.UploadImage(uploadDirectory + filename, filename).catch(() => console.log(`Unable to process ${filename}`)); |