aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSam Wilkins <samwilkins333@gmail.com>2019-09-30 11:30:42 -0400
committerSam Wilkins <samwilkins333@gmail.com>2019-09-30 11:30:42 -0400
commit9aa152935d82dec8880748715ae5ef79e10010e2 (patch)
tree13828f225ac60ad58d93e0730c6182d890da2a89 /src
parentc864ede01f458b71547c5a1876767c1991629864 (diff)
pdf server tweaks
Diffstat (limited to 'src')
-rw-r--r--src/server/PdfTypes.ts21
-rw-r--r--src/server/index.ts18
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}`));