mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
191 lines
4.0 KiB
TypeScript
191 lines
4.0 KiB
TypeScript
import PDFGradient = require('pdfkit/js/gradient');
|
|
|
|
var PDFRadialGradiant = PDFGradient.PDFRadialGradiant;
|
|
var PDFLinearGradient = PDFGradient.PDFLinearGradient;
|
|
|
|
import mtext = require('pdfkit/js/mixins/text');
|
|
|
|
import PDFDocument = require('pdfkit');
|
|
|
|
import font = require('pdfkit/js/mixins/fonts');
|
|
import pdfData = require('pdfkit/js/data');
|
|
import text = require('pdfkit/js/mixins/text');
|
|
|
|
font.registerFont('Arial');
|
|
text.widthOfString('Kila', { ellipsis: true });
|
|
|
|
var doc = new PDFDocument({ compress: false, size: [526, 525], autoFirstPage: true });
|
|
|
|
doc.addPage({
|
|
margin: 50,
|
|
});
|
|
|
|
doc.addPage({
|
|
margins: {
|
|
top: 50,
|
|
bottom: 50,
|
|
left: 72,
|
|
right: 72,
|
|
},
|
|
});
|
|
|
|
doc.addPage({
|
|
layout: 'landscape',
|
|
});
|
|
|
|
doc.info.Title = 'Sample';
|
|
doc.info.Author = 'kila Mogrosso';
|
|
|
|
// Create basic shapes
|
|
doc.moveTo(0, 20)
|
|
.lineTo(100, 160)
|
|
.quadraticCurveTo(130, 200, 150, 120)
|
|
.lineTo(400, 90)
|
|
.strokeColor([255, 0, 0], 1)
|
|
.strokeColor([255, 0, 0])
|
|
.stroke();
|
|
|
|
//SVG Paths
|
|
doc.path('M 0,20 L 100,160 Q 130,200 150,120 C 190,-40 200,200 300,150 L 400,90').stroke();
|
|
|
|
//Rectangle shape helper sample
|
|
doc.rect(100, 200, 100, 100);
|
|
// Rounded rectangle
|
|
doc.roundedRect(150, 250, 150, 150, 10);
|
|
|
|
//polygon
|
|
doc.polygon([100, 0], [50, 100], [50, 100]);
|
|
|
|
doc.lineWidth(25);
|
|
doc.lineCap('butt')
|
|
.moveTo(50, 20)
|
|
.lineTo(100, 20)
|
|
.stroke();
|
|
doc.lineCap('round')
|
|
.moveTo(150, 20)
|
|
.lineTo(200, 20)
|
|
.stroke();
|
|
doc.lineCap('square')
|
|
.moveTo(250, 20)
|
|
.circle(275, 30, 15)
|
|
.stroke();
|
|
doc.lineJoin('miter')
|
|
.rect(50, 100, 50, 50)
|
|
.stroke();
|
|
doc.lineJoin('round')
|
|
.rect(150, 100, 50, 50)
|
|
.stroke();
|
|
doc.lineJoin('bevel')
|
|
.rect(250, 100, 50, 50)
|
|
.stroke();
|
|
|
|
doc.circle(100, 50, 50)
|
|
.lineWidth(3)
|
|
.fillOpacity(0.8)
|
|
.fillAndStroke('red', '#900');
|
|
|
|
var grad = doc
|
|
.linearGradient(50, 0, 150, 100)
|
|
.stop(0, 'green')
|
|
.stop(1, 'red');
|
|
|
|
doc.rect(50, 0, 100, 100).fill(grad);
|
|
|
|
doc.rect(150, 0, 25, 25).fill();
|
|
|
|
doc.circle(100, 50, 50)
|
|
.dash(5, {
|
|
space: 10,
|
|
})
|
|
.stroke();
|
|
|
|
var rgrad = doc.radialGradient(300, 50, 0, 300, 50, 50);
|
|
rgrad.stop(0, 'orange', 0).stop(1, 'orange', 1);
|
|
doc.circle(300, 50, 50).fill(rgrad);
|
|
|
|
doc.fillColor('red')
|
|
.translate(-100, -50)
|
|
.scale(0.8);
|
|
|
|
doc.path('M 250,75 L 323,301 131,161 369,161 177,301 z').fill('non-zero');
|
|
|
|
doc.translate(280, 0)
|
|
.path('M 250,75 L 323,301 131,161 369,161 177,301 z')
|
|
.fill('even-odd');
|
|
|
|
doc.circle(100, 100, 100).clip();
|
|
|
|
doc.fontSize(25)
|
|
.fillColor('blue')
|
|
.text('This is a link!', 20, 0);
|
|
|
|
var width = doc.widthOfString('This is a link!');
|
|
|
|
var height = doc.currentLineHeight();
|
|
|
|
doc.underline(20, 0, width, height, {
|
|
color: 'blue',
|
|
}).link(20, 0, width, height, 'http://google.com/');
|
|
|
|
doc.moveDown()
|
|
.fillColor('black')
|
|
.highlight(20, doc.y, doc.widthOfString('This text is highlighted!'), height)
|
|
.text('This text is highlighted!');
|
|
|
|
doc.moveDown()
|
|
.strike(20, doc.y, doc.widthOfString('STRIKE!'), height)
|
|
.text('STRIKE!');
|
|
|
|
doc.image('images/test.jpeg', 0, 15, {
|
|
width: 300,
|
|
}).text('Proprotional to width', 0, 0);
|
|
|
|
doc.image('images/test.jpeg', 320, 15, {
|
|
fit: [100, 100],
|
|
})
|
|
.rect(320, 15, 100, 100)
|
|
.stroke()
|
|
.text('Fit', 320, 0);
|
|
|
|
doc.image('images/test.jpeg', 320, 145, {
|
|
width: 200,
|
|
height: 100,
|
|
}).text('Stretch', 320, 130);
|
|
|
|
doc.image('images/test.jpeg', 320, 280, {
|
|
scale: 0.25,
|
|
}).text('Scale', 320, 265);
|
|
|
|
doc.image(
|
|
{
|
|
/* something like a buffer */
|
|
},
|
|
{
|
|
scale: 0.25,
|
|
},
|
|
).text('Scale', 320, 265);
|
|
|
|
doc.text('Scale', { align: 'justify' });
|
|
|
|
doc.text('Baseline - string literal', { baseline: 'alphabetic' });
|
|
|
|
doc.text('Baseline - numeric', { baseline: 10 });
|
|
|
|
doc.goTo(0, 0, 0, 0, 'lorem');
|
|
|
|
doc.image('path/to/image.png', {
|
|
fit: [250, 300],
|
|
align: 'center',
|
|
valign: 'center',
|
|
});
|
|
|
|
doc.image('path/to/image.png', {
|
|
cover: [250, 300],
|
|
});
|
|
|
|
doc.image('path/to/image.png', {
|
|
link: {},
|
|
goTo: {},
|
|
destination: 'lorem',
|
|
});
|