X-Git-Url: https://git.kianting.info/?a=blobdiff_plain;f=src%2Flibclo%2Findex.ts;fp=src%2Flibclo%2Findex.ts;h=bcd6a46704d96b05580f4f81eea3e86eef1b214e;hb=134485a6d637ce5b422098c08bccb274c73bca86;hp=b64a819c9c719a63d2f7af34d0ec4c73d749fc7a;hpb=5e864363bc2d889edec9c5fe29336a8106201719;p=clo diff --git a/src/libclo/index.ts b/src/libclo/index.ts index b64a819..bcd6a46 100644 --- a/src/libclo/index.ts +++ b/src/libclo/index.ts @@ -5,6 +5,10 @@ import { JSDOM } from "jsdom"; import * as fontkit from "fontkit"; import * as util from "node:util"; import * as breakLines from "./breakLines"; +import "pdfkit"; +import PDFKitPage from "pdfkit/js/page"; +import { ColorTypes, PDFDocument, rgb } from "pdf-lib"; +import * as fs from "fs"; /** * TYPES @@ -443,7 +447,44 @@ export class Clo{ //console.log(breakLineAlgorithms.totalCost(a,70)); let segmentedNodes = breakLineAlgorithms.segmentedNodes(a, 70); - console.log(this.segmentedNodesToFrameBox(segmentedNodes, this.attrs["defaultFrameStyle"])); + console.log( + this.segmentedNodesToFrameBox(segmentedNodes, this.attrs["defaultFrameStyle"])); + + // generate pdf + const pdfDoc = await PDFDocument.create(); + var page = pdfDoc.addPage(); + page.drawText('You can create PDFs!'); + + for (var j = 0; j<1000; j+=5){ + if (j %50 == 0){ + page.drawText(i.toString(), {x: 50, y: j}); + } + + page.drawLine({ + start: { x: 0, y: j }, + end: { x: 1000, y: j }, + thickness: 0.5, + color: rgb(0.75, 0.2, 0.2), + opacity: 0.20, + }); + } + + for (var i = 0; i<1000; i+=5){ + if (i % 50 == 0){ + page.drawText(i.toString(), {x: i, y: 50}); + } + page.drawLine({ + start: { x: i, y: 0 }, + end: { x: i, y: 1000 }, + thickness: 0.5, + color: rgb(0.75, 0.2, 0.2), + opacity: 0.20, + }); + } + pdfDoc.save(); + + const pdfBytes = await pdfDoc.save(); + fs.writeFileSync("blank.pdf", pdfBytes); } segmentedNodesToFrameBox(segmentedNodes : BoxesItem[][], frame : FrameBox) : Box{