PDFToText.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. const express = require("express");
  2. const multer = require("multer");
  3. const pdf = require("pdf-parse");
  4. const fs = require('fs');
  5. const app = express();
  6. app.use(express.json());
  7. app.use(express.urlencoded({extended: true}));
  8. app.use((req, res, next) => {
  9. res.setHeader("Access-Control-Allow-Origin", "*");
  10. res.setHeader("Access-Control-Allow-Headers", "Content-Type, x-requested-with");
  11. next();
  12. });
  13. const storage = multer.diskStorage({
  14. destination: function (req, file, cb) {
  15. cb(null, "uploads/");
  16. },
  17. filename: function (req, file, cb) {
  18. cb(null, file.originalname);
  19. }
  20. });
  21. const options = {
  22. normalizeWhitespace: true,
  23. pdfjsDataRangeTransportFactory: function () {
  24. return new pdfjsDataRangeTransport();
  25. }
  26. };
  27. const upload = multer({storage: storage});
  28. let hasPrinted = false;
  29. app.post("/upload", upload.single("file"), (req, res) => {
  30. try {
  31. const filePath = req.file.path;
  32. let dataBuffer = fs.readFileSync(filePath);
  33. pdf(dataBuffer, options).then(function (data) {
  34. if (!hasPrinted) {
  35. console.log(data.text);
  36. hasPrinted = true
  37. }
  38. });
  39. } catch (error) {
  40. res.status(500).json({error: error.message});
  41. }
  42. hasPrinted = false
  43. });
  44. app.listen(3000, () => {
  45. console.log("Server started on port 3000");
  46. });