diff options
author | Sam Wilkins <samwilkins333@gmail.com> | 2019-09-30 11:30:42 -0400 |
---|---|---|
committer | Sam Wilkins <samwilkins333@gmail.com> | 2019-09-30 11:30:42 -0400 |
commit | 9aa152935d82dec8880748715ae5ef79e10010e2 (patch) | |
tree | 13828f225ac60ad58d93e0730c6182d890da2a89 | |
parent | c864ede01f458b71547c5a1876767c1991629864 (diff) |
pdf server tweaks
-rw-r--r-- | src/server/PdfTypes.ts | 21 | ||||
-rw-r--r-- | src/server/index.ts | 18 |
2 files changed, 28 insertions, 11 deletions
diff --git a/src/server/PdfTypes.ts b/src/server/PdfTypes.ts new file mode 100644 index 000000000..e87f08e1d --- /dev/null +++ b/src/server/PdfTypes.ts @@ -0,0 +1,21 @@ +export interface ParsedPDF { + numpages: number; + numrender: number; + info: PDFInfo; + metadata: PDFMetadata; + version: string; //https://mozilla.github.io/pdf.js/getting_started/ + text: string; +} + +export interface PDFInfo { + PDFFormatVersion: string; + IsAcroFormPresent: boolean; + IsXFAPresent: boolean; + [key: string]: any; +} + +export interface PDFMetadata { + parse(): void; + get(name: string): string; + has(name: string): boolean; +}
\ No newline at end of file diff --git a/src/server/index.ts b/src/server/index.ts index 0ee00f516..49fc78191 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -51,6 +51,7 @@ 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"; const download = (url: string, dest: fs.PathLike) => request.get(url).pipe(fs.createWriteStream(dest)); let youtubeApiKey: string; @@ -585,11 +586,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 +608,10 @@ 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); + pdf(dataBuffer).then(async function (data: ParsedPDF) { + fs.createWriteStream(pdfDirectory + "/" + filename.substring(0, filename.length - ".pdf".length) + ".txt").write(data.text); }); } else { await DashUploadUtils.UploadImage(uploadDirectory + filename, filename).catch(() => console.log(`Unable to process ${filename}`)); |