var createPDF = function(questions, sources){ var doc = new PDFDocument; doc.font('Helvetica'); var questions = questions; //define function that will be used later var createPage = function(answerSet){ //create a page with 1 source's questions and corresponding answers for(var i = 0; i < questions.length; i++){ var question = questions[i].line; var answer = answerSet[i]; } return ([question, answer]); }; var pages = []; sources.forEach(function(answerSet){ pages.push(createPage(answerSet)); //create a page for each source. for waterRights data, there is just one. push to pages array }); doc.text(pages[0]); if(sources.length > 1){ //for each reportedSource after the 1st, add a page var k = 1; while(k < sources.length){ doc.addPage(); doc.text(pages[k]); k++; } } return doc; }
.eachSeries(results, function (r, next) { let name; if (r.fullName) { let fa = r.fullName.split(' '); name = fa[0]; if (fa[1]) { if (fa[1].length>2) { name += ' \n' + fa[1]; } else if (fa[2]) { name += ' \n' + fa[2]; } } } else { name = r.displayName.split(' ')[0]; } // displayName doc.fontSize(20); doc.text(name, marginLeft*(col+1) + 10 +(w*col), marginTop + 10 +(h*row) ); // registration code doc.fontSize(11); doc.text('id: '+r.registrationId, marginLeft*(col+1) + 10 +(w*col), marginTop + 100 +(h*row) ); // draw bounding rectangle doc.rect( (marginLeft*(col+1) )+(w*col), marginTop + 0+(h*row), w, h ).stroke(); if (col < perRow-1) { col++; } else { col=0; row++; } count++; if (count > 18) { // next page doc.addPage(); count = 1; row = 0; } next(); }, function afterCreateThePDF(err) {
exports.createPDF = function(mail) { var doc = new pdfkit(); doc.font('./styles/fonts/earwig factory rg.ttf'); doc.fontSize(20); doc.text(mail.subject, {align: 'center'}); doc.text(mail.text); doc.end(); return doc; }
}).then(function afterFind(record) { if (!record) return res.notFound('user.ticket.download.not.found'); if ( !record || // other user ticket ( res.locals.currentUserTickets && ( record.ownerId != req.user.id ) ) ) { return res.notFound('user.ticket.findOne.not.found'); } var doc = new PDFDocument(); doc.lineWidth(0.5); // stream to response doc.pipe(res); // QR Code doc.image(record.getQRCode(), 30, 30, { width: 130, height: 130 }); // title doc.fontSize(15); doc.text(record.title, 175, 30, { width: 410 }); // location doc.fontSize(10); doc.text(record.location, 175, 46, { width: 410, lineBreak: false }); // ticket type name doc.fontSize(12); doc.text(record.typeName, 175, 72, { width: 410, lineBreak: false }); // fullName doc.fontSize(16); doc.text(record.fullName, 175, 92, { width: 410 }); // footer metadata var footer = record.id + ' - ' + record.typeIdentifier + ' - ' + res.locals.__('ticket.download.date.label')+ ' '+ req.we.utils.moment(record.createdAt) .locale(res.locals.locale) .format('L HH:mm'); // id / identifier doc.fontSize(10); doc.text(footer, 175, 153, { width: 410 }); // ticket box doc.rect(20, 20, 570, 150) .stroke(); // cutPDF line doc.lineWidth(1); doc.lineCap('butt') .dash(5, { space: 10 } ) .moveTo(0, 185) .lineTo(650, 185) .stroke(); // finalize the PDF and end the stream doc.end(); }).catch(res.queryError);
data[4].forEach(function(val) { y = docs.y; i++; v = parseFloat(val.percentTask); if (isNaN(v)) { v = 0; } docs.text(i + ')', 30, y, {columns: 1, align:'left', width: 40}); docs.text(v.toFixed(2) + ' %', 385, y, {columns: 1, align:'left', width: 120}); docs.text(val.valueTask, 70, y, {columns: 1, align:'left', width: 300}); docs.moveDown(); });
objConn.query('SELECT * FROM basic_information where empid = ? AND active_flag = ?', ['120698', 'Y'], function(error, rows) { console.log('Basic Information Data'); console.log(rows.length); var doc = new PDFDocument(); //doc.pipe(fs.createWriteStream('file.pdf')); doc.text(rows[0].FIRSTNAME + ' ' + rows[0].MIDDLENAME + ' ' + rows[0].LASTNAME, 100,100); doc.text('WeServ Systems International, Inc.',100,110); doc.pipe(res); doc.end(); });
module.exports.genratePdf = function(data){ var doc = new PDFDocument(); console.log("Inside pdf genrator"+JSON.stringify(data)); // Pipe its output somewhere, like to a file or HTTP response // See below for browser usage var filePath = data.reportPath; var fileName = filePath.split("/")[2]; doc.pipe(fs.createWriteStream("test_reports/"+fileName)); doc.moveTo(300, 75) .lineTo(373, 301) .lineTo(181, 161) .lineTo(419, 161) .lineTo(227, 301) .fill('red', 'even-odd'); var loremIpsum = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam in...'; doc.y = 320; doc.fillColor('black') doc.text(loremIpsum, { paragraphGap: 10, indent: 20, align: 'justify', columns: 2 }); // Finalize PDF file doc.end(); }
router.get('/:id', function(req, res, next) { var doc = new PDFDocument(); //doc.pipe(fs.createWriteStream('file.pdf')); doc.text('Hello World and World again!!',100,100); doc.pipe(res); doc.end(); });
params.items.forEach(function(item) { var marginTop = 10, marginBottom = 15, rowHeight = marginTop + marginBottom; doc.save() .rect(110, y, 1, rowHeight) .rect(360, y, 1, rowHeight) .rect(418, y, 1, rowHeight) .rect(475, y, 1, rowHeight) .fill(medGrey) .restore() y += marginTop doc.text(item.itemType, 50, y) .text(item.description, 120, y) .text(item.quantity, 370, y) .text(item.unitPrice, 428, y) .font(mainFont + '-Bold', 8) .text(item.amount, 485, y, { align: 'right' }) y += marginBottom; tableDividerLine(doc, y); });
data.about.introduction.forEach(function (desc, idx) { var isBelongToCol1 = idx < col1Count; doc.text(desc, isBelongToCol1 ? pageSize.left + pageSize.sectionIndent : pageSize.middleX); if (idx === col1Count - 1) { doc.moveUp(2); } });
db.Host.where('name = ? COLLATE NOCASE', host_name).first(db.connection, function(err, host) { if (err) throw err; var url = req.session.user.base_url + '/envelopes'; var headers = { 'X-DocuSign-Authentication': req.session.user.rest_headers.headers['X-DocuSign-Authentication'], }; headers['content-type'] = 'multipart/form-data'; var data = { recipients: { carbonCopies: [{ name: host.name, email: host.email, recipientId: 1, }], }, emailSubject: 'Your guest, ' + guest_name + ', has arrived.', documents: [{ name: 'Host Notification', documentId: 1, }], status: 'sent', }; // generate the host notification pdf var time = moment(); var content = util.format('Your guest, %s, has arrived on %s at %s.', guest_name, time.format('MMMM D, YYYY'), time.format('h:mm A')); var doc = new pdfkit(); doc.text(content); var notification = temp.path('lobby'); doc.write(notification, function(err) { if (err) throw err; var options = { url: url, headers: headers, multipart: [{ 'Content-Type': 'application/json', 'Content-Disposition': 'form-data', body: JSON.stringify(data), }, { 'Content-Type': 'application/pdf', 'Content-Disposition': 'file; filename="notify.pdf"; documentId=1', body: fs.readFileSync(notification), }], }; print._('request: ' + url + '\n ' + JSON.stringify(data)); request.post(options, function(error, response, body) { print._('response: ' + '\n ' + body); body = JSON.parse(body); fs.unlinkSync(notification); res.send('errorCode' in body); }); }); });
exports.kitRepo2 = function(pathPDF, data, callback){ var docOptions = { size: "A4", layout: "portrait", info: { Title: "Оценка объектов", Author: "Denis Grankin" } }; var docs = new pdfDoc(docOptions); var config = { width : 450, height : 300, xPos : 0, yPos : 90, scaleOverlay : true, scaleOverride : false, scaleSteps : 5, scaleStepWidth : 1, scaleStartValue : 0, scaleLineColor : "gray", scaleLineWidth : 1, scaleShowLabels : true, scaleLabel : "Легенда", scaleFont : "fonts/FreeMono.ttf", scaleFontSize : 9, scaleFontColor : "black", scaleShowGridLines : true, scaleGridLineColor : "gray", scaleGridLineWidth : 0.1, barShowStroke : false, barStrokeWidth : 0, barValueSpacing : 2, barDatasetSpacing : 1, ManualFirstLabel : 0 }; docs.font(config.scaleFont); docs.fontSize(20); docs.text('Оценка работы по POS',config.xPos, 20, {align: 'center', width: config.width}); docs.moveDown(0.2); barDiag(docs, config, data); docs.end(); var ws = fs.createWriteStream(pathPDF); ws.on('open', function(){ docs.pipe(ws); }); ws.on('finish', function(){ callback(null, pathPDF); }); };
http.createServer(function (req, res) { // Parse URL to get a filename var urlObj = url.parse(req.url, true); var filename = urlObj.query["filename"]; //Create a PDF with PDFKit var doc = new PDFDocument(); doc.pipe(fs.createWriteStream('output/' + filename + '.pdf')); doc.fontSize(22); doc.text('Your file: '+filename+'.pdf', 20, 20); doc.fontSize(16); doc.text('Was created successfully if you see this.', 20, 30); doc.save(); doc.moveTo(100, 150); doc.lineTo(100, 250); doc.lineTo(200, 250); doc.fill("#FF3300"); doc.restore(); doc.end(); // Render PNG with GhostScript exec("/usr/bin/gs -dQUIET -dPARANOIDSAFER -dBATCH -dNOPAUSE -dNOPROMPT -sDEVICE=png16m -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r72 -dFirstPage=1 -dLastPage=1 -sOutputFile=./output/"+filename+".png ./output/"+filename+".pdf", function (error, stdout, stderr) { if ( error !== null ) { console.log(error); } else { var img = fs.readFileSync('./output/'+filename+'.png'); res.writeHead(200, {'Content-Type': 'image/png' }); res.end(img, 'binary'); console.log('Created PNG: '+filename+'.png'); } }); }).listen(3000);
.then(function(proyecto){ //pdfKit var doc = new PDFDocument({ size: 'letter' }); doc.pipe(res); doc.image('./public/img/accesoslogo.png', 380, 30, {width: 200}); doc.font('Helvetica'); doc.fontSize(14); doc.text('Fecha: ' + proyecto.createdAt, 65, 180) .moveDown(); doc.text('Proyecto nombre: ' + proyecto.name) .moveDown(); doc.text('Dirección: ' + proyecto.location) .moveDown(); doc.text('Cliente: ' + proyecto.cliente) .moveDown(); doc.text('E-mail: '); doc.text('Peso total aproximado: ' + proyecto.peso + ' kg', 160, 400) .moveDown() .text('Diseño seleccionado: ' + proyecto.portonNo + ' ' + proyecto.porton); doc.text('Ancho: ' + proyecto.ancho + ' cm', 220, 525); doc.text('Alto: ' + proyecto.alto + ' cm', 430, 640); doc.moveTo(35, 350) .lineTo(577, 350); doc.moveTo(35, 490) .lineTo(577, 490); doc.lineWidth(.5) .roundedRect(35, 120, 542, 640, 5) .stroke(); doc.lineWidth(.5) .rect(150, 560, 260, 160) .fillAndStroke("white", "gray"); doc.end(); console.log('PDF created!'); });
rl.on('line', function (line) { if (y > bottom_margin) { pdf.addPage() .font(font) .fontSize(12) .lineGap(2); y = top_margin; } pdf.text(line, 72, y, {lineBreak: false}); y += 14; });
pdf: function (req, res) { var filename="report"; var content="que ondiux"; var doc = new PDFDocument(); // create instance of PDFDocument doc.fontSize(25).text('Hola', 100, 80); doc.text('And here is some wrapped text...', 100, 300).font('Times-Roman', 13).moveDown().text(content, { width: 412, align: 'justify', indent: 30, columns: 2, height: 300, ellipsis: true }); doc.y = 320; doc.text(content,100,100); console.log(path.resolve(".")+'/PDF/'+filename+'.pdf'); doc.pipe( fs.createWriteStream(path.resolve(".")+'/PDF/'+filename+'.pdf') ); res.set('Content-Type', 'application/pdf'); console.log(res.get('Content-Type')); res.redirect('/pdfGenerateDownload'); doc.end(); }
ep.once("loadpdf", function (tem) { //doc.addPage(); doc.text('Hello world!'); var base64Data,binaryData; base64Data = tem.replace(/^data:image\/png;base64,/, ""); base64Data += base64Data.replace('+', ' '); binaryData = new Buffer(base64Data, 'base64').toString('binary'); fs.writeFile("public/images/out/out.png", binaryData, "binary", function (err) { if(!err){ doc.image('public/images/out/out.png', 100, 100); } ep.emitLater("completed"); }); });
exports.getPdf = function(req, res) { // create a document and pipe to a blob var doc = new PDFDocument(); // write to PDF var createFs = fs.createWriteStream('permisos.pdf'); doc.pipe(createFs); // draw some text doc.fontSize(25) .text('Heré is séme véctor graphics...', 100, 80); // some vector graphics doc.save() .moveTo(100, 150) .lineTo(100, 250) .lineTo(200, 250) .fill("#FF3300"); doc.circle(280, 200, 50) .fill("#6600FF"); // an SVG path doc.scale(0.6) .translate(470, 130) .path('M 250,75 L 323,301 131,161 369,161 177,301 z') .fill('red', 'even-odd') .restore(); // and some justified text wrapped into columns doc.text('And here is some wrapped text...', 100, 300) .font('Times-Roman', 13) .moveDown() .text(lorem, { width: 412, align: 'justify', indent: 30, columns: 2, height: 300, ellipsis: true }); // HTTP response doc.pipe(res); doc.end(); return res.download('/permisos.pdf', 'permisos:///tmp/permisos.pdf'); };
fs.writeFile('public/downloads/pdf/chart.png', buf, function(err) { if (err) throw err; doc = new PDFDocument({size: 'LEGAL',layout: 'landscape'}); doc.fontSize(25); doc.text('Occupation with threshold ' + umbral + ' dBm (' + zona + ')', {align: 'center'}); doc.image('public/downloads/pdf/chart.png', { width: 850, height: 460}); doc.write('public/downloads/pdf/occupation.pdf',function(){ fs.unlink('public/downloads/pdf/chart.png', function(){ if (err) throw err; res.send('0'); }); }); });
exports.pdf = function(req,res){ doc = new PDFDocument(); doc.fontSize(20); doc.text(req.session.searchTerm); doc.moveDown(1); if(req.session.sortedSearchResults.length !== 0){ for(var i = 0; i < req.session.sortedSearchResults.length; i++){ doc.fontSize(15); doc.text(req.session.sortedSearchResults[i].title); doc.moveDown(0.5); doc.fontSize(11); doc.text(req.session.sortedSearchResults[i].content); doc.moveDown(1.5); } doc.output(function(string){ res.end(string); }); } else if(req.session.searchResults.length !== 0) { console.log('---pdf---'); for(var i = 0; i < req.session.searchResults.length; i++){ doc.fontSize(15); doc.text(req.session.searchResults[i].obj.title); doc.moveDown(0.5); doc.fontSize(11); doc.text(req.session.searchResults[i].obj.content); doc.moveDown(1.5); } doc.output(function(string){ res.end(string); }); } // doc.output(function(string){ // res.end(string); // }); // };
module.exports = function(object) { var myDoc = new Pdf(); myDoc.font('Times-Roman').fontSize(20).text('Favourites'); myDoc.font('Times-Roman').fontSize(15); myDoc.pipe(fs.createWriteStream(FILE_NAME)); for (var word in object) { if (object.hasOwnProperty(word)) { myDoc.text(word+': '+object[word]); } } console.log('PDF created.'); myDoc.end(); return './'+FILE_NAME; };
.success(function (basket) { if (basket) { var customer = insecurity.authenticatedUsers.from(req); var orderNo = insecurity.hash(new Date() + '_' + id); var pdfFile = 'order_' + orderNo + '.pdf'; var doc = new PDFDocument(); var fileWriter = doc.pipe(fs.createWriteStream(__dirname + '/../app/public/ftp/' + pdfFile)); doc.text('Juice-Shop - Order Confirmation'); doc.moveDown(); doc.moveDown(); doc.moveDown(); doc.text('Customer: ' + (customer ? customer.data ? customer.data.email : undefined : undefined)); doc.moveDown(); doc.text('Order #: ' + orderNo); doc.moveDown(); doc.moveDown(); var totalPrice = 0; basket.products.forEach(function (product) { var itemTotal = product.price * product.basketItem.quantity; doc.text(product.basketItem.quantity + 'x ' + product.name + ' ea. ' + product.price + ' = ' + itemTotal); doc.moveDown(); totalPrice += itemTotal; }); doc.moveDown(); var discount = insecurity.discountFromCoupon(basket.coupon); if (discount) { if (utils.notSolved(challenges.forgedCouponChallenge) && discount >= 80) { utils.solve(challenges.forgedCouponChallenge); } var discountAmount = (totalPrice * (discount/100)).toFixed(2); doc.text(discount + '% discount from coupon: -' + discountAmount); doc.moveDown(); totalPrice -= discountAmount; } doc.text('Total Price: ' + totalPrice); doc.moveDown(); doc.moveDown(); doc.text('Thank you for your order!'); doc.end(); if (utils.notSolved(challenges.negativeOrderChallenge) && totalPrice < 0) { utils.solve(challenges.negativeOrderChallenge); } fileWriter.on('finish', function () { basket.updateAttributes({coupon: null}); models.BasketItem.destroy({BasketId: id}); res.send('/public/ftp/' + pdfFile); }); } else { next(new Error('Basket with id=' + id + ' does not exist.')); } }).error(function (error) {
const renderPdf = model => { console.log('Render: ', model); const pdf = new PdfDocument(); const stream = pdf.pipe(blobStream()); pdf.fontSize(20); pdf.text(model.title, { underline: true, align: 'center' }); pdf.end(); stream.on('finish', () => { const blob = stream.toBlob('application/pdf'); const url = stream.toBlobURL('application/pdf'); window.open(url); }); };
function createHeader () { doc.image(logoPath, 40, 80, { width: 70 }); doc.fontSize(16); doc.text('Expense Report', 120, 100); doc.fontSize(12) .fillColor('gray') .text(timePeriod, 120, 125); doc.rect(350, 40, 180, 75).fillAndStroke('#9bd5cb', '#aaa') .rect(350, 115, 180, 60).stroke() .rect(350, 175, 180, 20).stroke(); doc.fontSize(16).fillColor('white').text(today, 350, 70, { width: 180, align: 'center' }); doc.fontSize(8).fillColor('#9bd5cb').text(credit, 350, 182, { width: 180, align: 'center' }); doc.fontSize(13).fillColor('#464646').text(name, 405, 140, { width: 125, align: 'center' }); var avatarPath = path.normalize(__dirname + '../../../../public/images/avatar.png'); doc.image(avatarPath, 354, 120, { height: 50 }); doc.moveTo(405, 115).lineTo(405, 175).stroke('#aaa'); }
router.get('/:id', function(req, res, next) { doc.pipe(fs.createWriteStream('file.pdf')); doc.fontSize(20); doc.text(eName, { width:410, align:'center' }); doc.fontSize(12); doc.text(headerQuali,100,90); doc.text(headerSpec,100,120); doc.text(headertrain,100,390); doc.text(headerCareer,100,490); doc.text(headerExp,100,590); doc.pipe(res); doc.end(); });
function makePDF(title, excel, image, defaultText) { var doc = new pdfkit(); doc.pipe(fs.createWriteStream('./public/file.pdf')); // draw some text doc.fontSize(25) .text('Title: ' + title, 100, 80); // write text according to the uploaded excel var i = 0; var excelJson = readExcel(excel); var dynamicTextHeight = 0; for (p in excelJson) { doc.fontSize(20) .text('Product: ' + excelJson[p].product + ', Price: ' + excelJson[p].price, 100, 110 + i); i += 20; } dynamicTextHeight = 110 + i; doc.image('./' + image[0].path, 100, dynamicTextHeight, {fit: [100, 100]}); dynamicTextHeight += 120; // and some justified text wrapped into columns doc.text('And here is some default text...', 100, dynamicTextHeight) .font('Times-Roman', 13) .moveDown() .text(defaultText, { width: 412, align: 'justify', indent: 30, columns: 2, height: 300, ellipsis: true }); doc.end(); }
//////////////////////////////////// function pdf_generate(Q_number,T_time,rows) { //PDF Creation var PDF = require('pdfkit'); var fs = require('fs'); //create pdf object doc = new PDF(); //create write object var file = fs.createWriteStream('que_bank.pdf'); doc.pipe(file); doc.fontSize(20);//font size of the pdf file doc.text("QUESTION BANK",205,300); doc.text("MAXIMUM MARKS :"+Q_number,190,340); doc.text("TOTAL TIME :"+T_time,220,380); doc.moveDown().text(""); doc.text("NUMBER OF OBJECTIVE QUESTIONS :"+rows.length,100,410); doc.text("NUMBER OF SUBJECTIIIVE QUESTION :3",100,440); doc.addPage(); doc.fontSize(11.5);//font size of the pdf file for(var j=0;j<rows.length;j++) { doc.text("Question ID :"+rows[j].id); //adding the text to be written, doc.moveDown().text(rows[j].que); doc.moveDown().text("(a) "+rows[j].opt1); doc.moveDown().text("(b) "+rows[j].opt2); doc.moveDown().text("(c) "+rows[j].opt3); doc.moveDown().text("(d) "+rows[j].opt4); doc.moveDown().text("");//for new line } doc.end(); }
getConfirmation: function(req, res) { doc = new PDFDocument(); doc.pipe(new MemoryStream()); //doc.pipe(fs.createWriteStream(res)); //doc.image('printlogo.png', 200, 15,{scale: 0.45}); doc.fontSize(12); doc.lineWidth(0.75); doc.moveTo(50,75).lineTo(550, 75); doc.stroke(); doc.text('P A Y M E N T R E C E I P T', 225, 82) doc.moveTo(50,99).lineTo(550, 99); doc.stroke(); doc.fontSize(10) .text('Date: 15/8/2014', 50, 110) doc.text('Apartment Number:', 150, 150) doc.text('D-105', 300, 150) doc.text('Owner\'s Name:', 150, 170) doc.text('Sachin Anand Sawant', 300, 170) doc.text('Payment Details:', 150, 190) doc.text('Clubhouse Rental for event on 05-08-2014', 300, 190) doc.text('Amount:', 150, 210) doc.text('$2,333.00', 300, 210) doc.text('Mode of Payment:', 150, 230) doc.text('Check', 300, 230) doc.text('Name of the Bank:', 150, 250) doc.text('ICICI', 300, 250) doc.text('Payment Date:', 150, 270) doc.text('05-08-2014', 300, 270) doc.text('Thank you for the payment. Please note that this receipt is issued subjected to realization of cheque. For queries or more information please contact our touch points mentioned below. We value your association with us and assure you the best of our service.', 50, 300) doc.text('Warm Regards', 50, 350) doc.text('Magnolia Managing Committee', 50, 370) doc.moveTo(50,410).lineTo(550, 410); doc.stroke(); doc.fillColor('gray'); doc.fontSize(8) .text('For queries and more information: Call Us - +91-8087648884 or EMail - magnolia.pashan@gmail.com', 50, 415) doc.end(); res.set({ 'Content-Disposition': 'attachment; filename="receipt.pdf' }) doc.pipe(res); }
connection.query('SELECT * from mcqbank where qid in (' + arr.toString() + ');', function(err, rows2, fields2) { connection.end(); if (!err) console.log('Question Query Done.'); else console.log('Error while performing Question Query.'); //PDF var PDFDocument = require('pdfkit'); var fs = require('fs'); var doc = new PDFDocument(); var stream = doc.pipe(fs.createWriteStream('output.pdf')); doc.fontSize(40).text('Question Paper', {'align':'center'}); doc.moveDown().fontSize(20).text('Total MCQ Questions = ' + numMCQ); doc.moveDown().fontSize(20).text('Total Subjective Questions = ' + numSub); doc.moveDown().fontSize(20).text('Total Duration = ' + durationToString(totalDuration)); var estimatedMCQDuration = 0; for(var i=0; i<rows2.length; i++) { estimatedMCQDuration += Number(rows2[i].duration); } doc.moveDown().moveDown().fontSize(16).text('Estimated Total Duration = ' + durationToString(estimatedMCQDuration+totalSubDuration)); doc.addPage(); doc.fontSize(40).text('Multiple Choice Questions', {'align':'center'}); doc.fontSize(14); for(var i=0; i<rows2.length; i++) { doc.moveDown().text('Q ' + (i+1) + ': ' + rows2[i].question.toString()); doc.text(secondsToString(rows2[i].duration), {'align':'right'}); doc.moveDown().text('a) ' + rows2[i].opt1); doc.moveDown().text('b) ' + rows2[i].opt2); doc.moveDown().text('c) ' + rows2[i].opt3); doc.moveDown().text('d) ' + rows2[i].opt4); doc.moveDown(); } doc.addPage(); doc.fontSize(40).text('Subjective Questions', {'align':'center'}); doc.fontSize(14); for(var i=0; i<rowsSub.length; i++) { doc.moveDown().text('Q ' + (i+1) + ': ' + rowsSub[i].question.toString()); doc.text(secondsToString(rowsSub[i].duration), {'align':'right'}); doc.moveDown(); } doc.end(); stream.on('finish', function() { console.log('Done'); res.download('output.pdf'); }); //End PDF });
var print = module.exports = function(content){ doc.fontSize(32); doc.font('Times-Roman'); doc.image('template2.png', 10, 10,{width: 590, height: 450}); doc.fontSize(32); //Box A doc.text("00",128,85); doc.text("00",173,85); doc.text("00",128,130); doc.text("00",173,130); doc.text("00",128,175); doc.text("00",173,175); doc.fontSize(12); doc.text("000000",170,222); //Box B doc.fontSize(32); doc.text("00",235,85); doc.text("00",280,85); doc.text("00",327,85); doc.text("00",235,130); doc.text("00",280,130); doc.text("00",327,130); doc.text("00",235,175); doc.text("00",280,175); doc.text("00",327,175); doc.fontSize(12); doc.text("000000",300,222); //Box C doc.fontSize(32); doc.text("00",386,85); doc.text("00",432,85); doc.text("00",477,85); doc.text("00",524,85); doc.text("00",386,130); doc.text("00",432,130); doc.text("00",477,130); doc.text("00",524,130); doc.text("00",386,175); doc.text("00",432,175); doc.text("00",477,175); doc.text("00",524,175); doc.fontSize(12); doc.text("000000",470,222); //Box D doc.fontSize(32); doc.text("00",53,280); doc.text("00",100,280); doc.text("00",145,280); doc.text("00",191,280); doc.text("00",237,280); doc.text("00",53,325); doc.text("00",100,325); doc.text("00",145,325); doc.text("00",191,325); doc.text("00",237,325); doc.text("00",53,370); doc.text("00",100,370); doc.text("00",145,370); doc.text("00",191,370); doc.text("00",237,370); doc.fontSize(12); doc.text("000000",160,417); //Box E doc.fontSize(32); doc.text("00",293,280); doc.text("00",339,280); doc.text("00",386,280); doc.text("00",432,280); doc.text("00",478,280); doc.text("00",523,280); doc.text("00",293,325); doc.text("00",339,325); doc.text("00",386,325); doc.text("00",432,325); doc.text("00",478,325); doc.text("00",523,325); doc.text("00",293,370); doc.text("00",339,370); doc.text("00",386,370); doc.text("00",432,370); doc.text("00",478,370); doc.text("00",523,370); doc.fontSize(12); doc.text("000000",460,417); //Box F doc.fontSize(32); doc.lineWidth(1); doc.lineCap('butt') .moveTo(607, 468) .lineTo(5, 468) .dash(5, {space: 10}) .fillAndStroke("black"); doc.image('template2.png', 10, 478,{width: 590, height: 450}); //Box A doc.text("00",128,85+467); doc.text("00",173,85+467); doc.text("00",128,130+467); doc.text("00",173,130+467); doc.text("00",128,175+467); doc.text("00",173,175+467); doc.fontSize(12); doc.text("000000",170,222+467); //Box B doc.fontSize(32); //Box B doc.text("00",235,85+467); doc.text("00",280,85+467); doc.text("00",327,85+467); doc.text("00",235,130+467); doc.text("00",280,130+467); doc.text("00",327,130+467); doc.text("00",235,175+467); doc.text("00",280,175+467); doc.text("00",327,175+467); doc.fontSize(12); doc.text("000000",300,222+467); //Box C doc.fontSize(32); doc.text("00",386,85+467); doc.text("00",432,85+467); doc.text("00",477,85+467); doc.text("00",524,85+467); doc.text("00",386,130+467); doc.text("00",432,130+467); doc.text("00",477,130+467); doc.text("00",524,130+467); doc.text("00",386,175+467); doc.text("00",432,175+467); doc.text("00",477,175+467); doc.text("00",524,175+467); doc.fontSize(12); doc.text("000000",470,222+467); //Box D doc.fontSize(32); doc.text("00",53,280+467); doc.text("00",100,280+467); doc.text("00",145,280+467); doc.text("00",191,280+467); doc.text("00",237,280+467); doc.text("00",53,325+467); doc.text("00",100,325+467); doc.text("00",145,325+467); doc.text("00",191,325+467); doc.text("00",237,325+467); doc.text("00",53,370+467); doc.text("00",100,370+467); doc.text("00",145,370+467); doc.text("00",191,370+467); doc.text("00",237,370+467); doc.fontSize(12); doc.text("000000",160,417+467); //Box E doc.fontSize(32); doc.text("00",293,280+467); doc.text("00",339,280+467); doc.text("00",386,280+467); doc.text("00",432,280+467); doc.text("00",478,280+467); doc.text("00",523,280+467); doc.text("00",293,325+467); doc.text("00",339,325+467); doc.text("00",386,325+467); doc.text("00",432,325+467); doc.text("00",478,325+467); doc.text("00",523,325+467); doc.text("00",293,370+467); doc.text("00",339,370+467); doc.text("00",386,370+467); doc.text("00",432,370+467); doc.text("00",478,370+467); doc.text("00",523,370+467); doc.fontSize(12); doc.text("000000",460,417+467); //Box F doc.fontSize(32); doc.lineWidth(1); doc.lineCap('butt') .moveTo(607, 468) .lineTo(5, 468) .dash(5, {space: 10}) .fillAndStroke("black"); doc.fontSize(12); doc.rotate(90,{origin:[100,80]}).text("000000",75,80); doc.write("Bingo1.pdf"); };