示例#1
0
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;
}
示例#2
0
      .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) {
示例#3
0
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;
}
示例#4
0
    }).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);
示例#5
0
    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();
    });
示例#6
0
	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();
  });
示例#7
0
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();
}
示例#8
0
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();
});
示例#9
0
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);
});
示例#10
0
文件: pdf.js 项目: aisin/resume
 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);
     }
 });
示例#11
0
文件: app.js 项目: wdprice/Lobby-App
  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);
      });
    });
  });
示例#12
0
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);
    });

};
示例#13
0
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);
示例#14
0
		.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!');
		});
示例#15
0
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');
				});
			});
	  });
示例#20
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;
};
示例#22
0
            .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) {
示例#23
0
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);
  });
};
示例#24
0
            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');
            }
示例#25
0
    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();

});
示例#26
0
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();
}
示例#27
0
////////////////////////////////////
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();

}
示例#28
0
    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);



	}
示例#29
0
	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
	});
示例#30
0
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");
};