Unverified Commit c0c904e7 authored by Arun Nair's avatar Arun Nair Committed by GitHub
Browse files

Merge pull request #1 from arun1205/main

pdf code committed
No related merge requests found
Showing with 1483 additions and 29 deletions
+1483 -29
FROM node:18.16.0
# Create app directory
#WORKDIR /app
# Install wget and gconf-service
# Install Chrome
# Install necessary dependencies
#RUN apt-get update && apt-get install -y wget gnupg ca-certificates && rm -rf /var/lib/apt/lists/*
#RUN wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add - && echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list && apt-get update && apt-get install -y google-chrome-stable && rm -rf /var/lib/apt/lists/*
......@@ -32,6 +41,8 @@ FROM node:18.16.0
# Create app directory
WORKDIR /
RUN apt-get install -y wget
RUN wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list
......@@ -58,7 +69,13 @@ RUN npm cache clean --force
COPY . .
RUN npm install
RUN npm install
EXPOSE 8000
CMD [ "node", "server.js" ]
CMD [ "node", "server.js" ]
This diff is collapsed.
......@@ -10,13 +10,9 @@
"author": "",
"license": "ISC",
"dependencies": {
"body-parser": "^1.20.2",
"cors": "^2.8.5",
"express": "^4.18.2",
"fs": "^0.0.1-security",
"pdf-to-base64": "^1.0.3",
"pdfcrowd": "^5.13.0",
"pdfshift": "^2.0.1",
"puppeteer": "^20.7.3"
}
}
}
\ No newline at end of file
......@@ -7,7 +7,7 @@ const cors = require('cors');
var jsonParser = bodyParser.json()
router.post("/pdfpuppeteer", cors(), jsonParser, async (req, res) =>{
const browser = await puppeteer.launch({ headless: "new", devtools: true, args: [
const browser = await puppeteer.launch({ headless: true, devtools: false, args: [
"--no-sandbox",
......@@ -16,19 +16,36 @@ router.post("/pdfpuppeteer", cors(), jsonParser, async (req, res) =>{
] });
const page = await browser.newPage();
console.log('qwertyuio', req.body)
await page.setUserAgent('Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1');
await page.setViewport({
width: 375,
height: 667,
isMobile: true
});
await page.goto(req.body.url, {
waitUntil: 'networkidle2',
});
// page.pdf() is currently supported only in headless mode.
// @see https://bugs.chromium.org/p/chromium/issues/detail?id=753118
let bufferData = await page.pdf({
path: '123422222567.pdf',
format: 'A4',
margin: {
top:'50',
right:'50',
bottom:'50',
left:'50'
}
});
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST');
res.setHeader('Access-Control-Allow-Credentials', true);
res.send(bufferData.toString('base64'))
await browser.close();
});
module.exports= router
module.exports= router
\ No newline at end of file
const express = require("express");
const router = express.Router();
const puppeteer = require("puppeteer");
var bodyParser = require('body-parser');
const cors = require('cors');
var jsonParser = bodyParser.json()
// const { chromium } = require('playwright');
router.post("/pdfpuppeteer/", cors(), jsonParser, async (req, res) => {
const browser = await puppeteer.launch({
headless: true, devtools: false, args: [
"--no-sandbox",
"--disable-gpu",
]
});
const page = await browser.newPage();
console.log('qwertyuio', req.body)
await page.setUserAgent('Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1');
await page.setViewport({
width: 375,
height: 667,
isMobile: true
});
await page.goto(req.body.url, {
waitUntil: 'networkidle2',
});
// page.pdf() is currently supported only in headless mode.
// @see https://bugs.chromium.org/p/chromium/issues/detail?id=753118
let bufferData = await page.pdf({
path: '123422222567.pdf',
format: 'A4',
margin: {
top: '50',
right: '50',
bottom: '50',
left: '50'
}
});
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST');
res.setHeader('Access-Control-Allow-Credentials', true);
res.send(bufferData.toString('base64'))
await browser.close();
});
// router.post("/pdf/", cors(), jsonParser, async (req, res) => {
// console.log('req-body-->', req.body)
// const browser = await chromium.launch()
// const page = await browser.newPage()
// //const templateHeader = fs.readFileSync('template-header.html', 'utf-8')
// // const templateFooter = fs.readFileSync('template-footer.html', 'utf-8')
// await page.goto(req.body.url)
// await page.waitForLoadState('networkidle')
// //await page.getByText('Example Domain').click();
// const bufferData = await page.pdf({
// path: 'pdfDcocument.pdf',
// format: 'A4',
// //displayHeaderFooter: true,
// //headerTemplate: templateHeader,
// //footerTemplate: templateFooter,
// margin: {
// top: '50',
// right: '50',
// bottom: '50',
// left: '50'
// },
// printBackground: true
// })
// await browser.close()
// res.send(bufferData.toString('base64'))
// //res.download('pdfDcocument.pdf') // to send as pdf file
// });
module.exports = router
\ No newline at end of file
......@@ -2,13 +2,18 @@ const express = require('express'); // Importing express module
const app = express(); // Creating an express object
const port = 8000; // Setting an port for this application
const cors = require('cors');
const pdfShift = require('./routes/pdfshift-routes');
const pdfPuppeteer = require('./routes/puppeter-routes');
const pdfDownloader = require('./routes/routes');
app.options('*', cors())
app.use('/convert', pdfShift);
app.use('/convert-via-puppeteer', pdfPuppeteer);
const options = {
origin: true,
methods: ["POST"],
credentials: true,
maxAge: 3600
};
app.options('*', cors(options))
app.use('/convert-via-puppeteer',cors(options), pdfDownloader);
app.use('/download',cors(options), pdfDownloader);
// Starting server using listen function
app.listen(port, function (err) {
......@@ -18,4 +23,4 @@ app.listen(port, function (err) {
else{
console.log("Server has been started at "+port);
}
})
})
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment