123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- var PDFDocument = require('pdfkit');
- var fs = require('fs');
- var factor = 300;
- var doc = new PDFDocument({layout: 'landscape', size: 'A0'});
- doc.pipe(fs.createWriteStream('output.pdf'));
- // background
- doc.polygon([0,0], [4000, 0], [4000,2500], [0, 2500]).fill("#000");
- // doc.polygon([100, 200], [600, 200], [600,1600], [100, 1600]).fill("#fff");
- for (var i = 0; i < 80; i++) {
- var width = doc._pageBuffer[0].width;
- var height = doc._pageBuffer[0].height;
- var x = Math.random()*width;
- var y = Math.random()*height;
- var figure_prob = Math.random();
- if (figure_prob < 1/3.0) {
- // rectangle
- var a = [x-factor*Math.random(), y-factor*Math.random()];
- var b = [x+factor*Math.random(), y-factor*Math.random()];
- var c = [x+factor*Math.random(), y+factor*Math.random()];
- var d = [x-factor*Math.random(), y+factor*Math.random()];
- doc.polygon(a, b, c, d).fill("#fff");
- console.log("REC", a, b, c, d);
- } else if (figure_prob < 2/3.0) {
- var radius = factor*Math.random()+factor/10;
- doc.circle(x, y, radius).fill("#fff");
- console.log("CIRCLE", x, y, radius);
- } else {
- // triangle
- var a = [x-factor*Math.random(), y-factor*Math.random()];
- var b = [x+factor*Math.random(), y-factor*Math.random()];
- var c = [x+factor*Math.random(), y+factor*Math.random()];
- doc.polygon(a, b, c).fill("#fff");
- console.log("TRIANGLE", a, b, c);
- }
- }
- doc.end();
|