@olptools/pdf-utils
Advanced tools
| <b>Hello {{name}}!</b> |
| const { readFileSync, writeFileSync } = require('fs'); | ||
| const { join } = require('path'); | ||
| const { HTMLParser } = require('..'); | ||
| const parser = new HTMLParser(readFileSync(join(__dirname, "./example.html"), "utf-8")); | ||
| parser.pdf({ name: "CamiloTD" }).then(pdf => { | ||
| console.log({ pdf }) | ||
| writeFileSync(join(__dirname, "example.pdf"), pdf); | ||
| }).catch(console.log); |
+7
-1
@@ -1,1 +0,7 @@ | ||
| export {}; | ||
| export declare class HTMLParser { | ||
| _html: string; | ||
| constructor(_html: string); | ||
| html(data: any): string; | ||
| pdf(data: any): Promise<any>; | ||
| } | ||
| export default HTMLParser; |
+8
-15
@@ -5,4 +5,5 @@ var __importDefault = (this && this.__importDefault) || function (mod) { | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.HTMLParser = void 0; | ||
| const handlebars_1 = __importDefault(require("handlebars")); | ||
| const wkhtmltopdf_1 = __importDefault(require("wkhtmltopdf")); | ||
| const html_pdf_node_1 = __importDefault(require("html-pdf-node")); | ||
| class HTMLParser { | ||
@@ -15,18 +16,10 @@ constructor(_html) { | ||
| } | ||
| pdf(data) { | ||
| return new Promise(async (done, err) => { | ||
| const stream = (0, wkhtmltopdf_1.default)(await this.html(data)); | ||
| const chunks = []; | ||
| stream | ||
| .on('data', d => { | ||
| chunks.push(d); | ||
| }) | ||
| .on('end', async function () { | ||
| const buf = Buffer.concat(chunks); | ||
| return done(buf); | ||
| }) | ||
| .on('error', err); | ||
| }); | ||
| async pdf(data) { | ||
| return await html_pdf_node_1.default.generatePdf({ | ||
| content: await this.html(data) | ||
| }, { format: 'A4' }); | ||
| } | ||
| } | ||
| exports.HTMLParser = HTMLParser; | ||
| exports.default = HTMLParser; | ||
| //# sourceMappingURL=index.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;AAAA,4DAAoC;AACpC,8DAAoC;AAEpC,MAAM,UAAU;IAEZ,YAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAErC,IAAI,CAAE,IAAS;QACX,OAAO,oBAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,GAAG,CAAE,IAAS;QACV,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YACnC,MAAM,MAAM,GAAG,IAAA,qBAAS,EAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,EAAE,CAAC;YAClB,MAAM;iBACH,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;gBACd,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAChB,CAAC,CAAC;iBACD,EAAE,CAAC,KAAK,EAAE,KAAK;gBACd,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAClC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC,CAAC;iBACD,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;AAAA,4DAAoC;AACpC,kEAAsC;AAEtC,MAAa,UAAU;IAEnB,YAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAErC,IAAI,CAAE,IAAS;QACX,OAAO,oBAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,IAAS;QAChB,OAAO,MAAM,uBAAS,CAAC,WAAW,CAAC;YACjC,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;SAC/B,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACzB,CAAC;CACJ;AAbD,gCAaC;AAED,kBAAe,UAAU,CAAC"} |
+9
-17
| import Handlebars from "handlebars"; | ||
| import HTMLToPDF from "wkhtmltopdf"; | ||
| import HTMLToPDF from "html-pdf-node"; | ||
| class HTMLParser { | ||
| export class HTMLParser { | ||
@@ -12,17 +12,9 @@ constructor (public _html: string) {} | ||
| pdf (data: any) { | ||
| return new Promise(async (done, err) => { | ||
| const stream = HTMLToPDF(await this.html(data)); | ||
| const chunks = []; | ||
| stream | ||
| .on('data', d => { | ||
| chunks.push(d) | ||
| }) | ||
| .on('end', async function () { | ||
| const buf = Buffer.concat(chunks); | ||
| return done(buf); | ||
| }) | ||
| .on('error', err); | ||
| }); | ||
| async pdf (data: any) { | ||
| return await HTMLToPDF.generatePdf({ | ||
| content: await this.html(data) | ||
| }, { format: 'A4' }); | ||
| } | ||
| } | ||
| } | ||
| export default HTMLParser; |
+5
-4
| { | ||
| "name": "@olptools/pdf-utils", | ||
| "version": "1.0.0", | ||
| "main": "index.js", | ||
| "version": "1.0.1", | ||
| "main": "build/index.js", | ||
| "license": "MIT", | ||
| "dependencies": { | ||
| "handlebars": "^4.7.7", | ||
| "wkhtmltopdf": "^0.4.0" | ||
| "html-pdf-node": "^1.0.8" | ||
| }, | ||
@@ -15,4 +15,5 @@ "devDependencies": { | ||
| "scripts": { | ||
| "build": "tsc" | ||
| "build": "tsc", | ||
| "test": "node test/index.test.js" | ||
| } | ||
| } |
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
8
33.33%3234
-5.93%71
-4.05%2
100%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed