{"_id":"html2pdfsmith","_rev":"29-087a9e3b2e3807992d0349c06949ee39","name":"html2pdfsmith","dist-tags":{"latest":"0.2.9"},"versions":{"0.1.0":{"name":"html2pdfsmith","version":"0.1.0","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.1.0","maintainers":[{"name":"dmytro_yatskovskyi","email":"dmytroyatskovskyi@outlook.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"dist":{"shasum":"8a69ba30fa5bda72b6189008abce75e33e461f25","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.1.0.tgz","fileCount":16,"integrity":"sha512-0y2YCBg9mniw0QHMt6Is6MFYv9hmQzizFEgTvSpzKS3yFyOkGCo1XwsDm+n03YVlZ+Mbv7CAvSVhBi4yHd8PrQ==","signatures":[{"sig":"MEYCIQDjL8unUz1ljBAletvib1NV0x2NDMDnYhOn9v8dt5leVwIhAOrP86BqtCANdgwzz8viqm/S5M6rD3ksnTpd1KlOsu28","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105648},"main":"./src/index.ts","type":"module","types":"./src/index.ts","engines":{"bun":">=1.2.0"},"gitHead":"0f91f327aeb7e3f8fe9f65a7c0e877defa9f6849","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","smoke":"bun run examples/smoke.ts","example":"bun run examples/simple-table.ts","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:document":"bun run examples/simple-document.ts","example:css-table":"bun run examples/css-table.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"dmytroyatskovskyi@outlook.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript and Bun. No Chromium, ~41MB RSS, ~123ms per document. Google Fonts support with disk caching.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","pdf-lib":"^1.17.1","domutils":"^3.2.2","domhandler":"^5.0.3","htmlparser2":"^10.0.0","@types/pdfkit":"^0.17.6","svg-to-pdfkit":"^0.1.8","@pdf-lib/fontkit":"^1.1.1","@types/svg-to-pdfkit":"^0.1.4"},"_hasShrinkwrap":false,"devDependencies":{"bun-types":"latest","typescript":"^5.8.0"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.1.0_1776496882956_0.6126713092642244","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"html2pdfsmith","version":"0.1.1","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.1.1","maintainers":[{"name":"dmytro_yatskovskyi","email":"dmytroyatskovskyi@outlook.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"dist":{"shasum":"fec42cb31069c8635faebdfede0a5f28e1f93af9","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.1.1.tgz","fileCount":63,"integrity":"sha512-6jZRONCuFAg/luN/5mut10KzCwvo962pGRZcV9mHYW1KUclMNXkreTuy7h4B0NEPGfw+l87iUhmCZ70rY+2eYg==","signatures":[{"sig":"MEYCIQD6LRlCh8f6yVgaBDTtseKxLjPg3Ne3r9jL1DShGxsBggIhALSftxwZgeWcQT+m/A5nmNDAAwcEir7DE2ZXlhdfyWAv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":864310},"main":"./src/index.ts","type":"module","types":"./src/index.ts","engines":{"bun":">=1.2.0"},"exports":{".":{"types":"./src/index.ts","default":"./src/index.ts"}},"gitHead":"f0a5e7753e51a5ea290da3e7da3b8c5c00c53773","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","smoke":"bun run examples/smoke.ts","example":"bun run examples/simple-table.ts","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","example:layout":"bun run examples/layout-controls.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"dmytroyatskovskyi@outlook.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript and Bun. No Chromium, low-memory streaming renderer, Google Fonts support with disk caching.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","pdf-lib":"^1.17.1","domutils":"^3.2.2","domhandler":"^5.0.3","htmlparser2":"^10.0.0","@types/pdfkit":"^0.17.6","svg-to-pdfkit":"^0.1.8","@pdf-lib/fontkit":"^1.1.1","@types/svg-to-pdfkit":"^0.1.4"},"_hasShrinkwrap":false,"devDependencies":{"bun-types":"latest","typescript":"^5.8.0"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.1.1_1776529041933_0.005081118681258268","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"html2pdfsmith","version":"0.1.2","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.1.2","maintainers":[{"name":"dmytro_yatskovskyi","email":"dmytroyatskovskyi@outlook.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"dist":{"shasum":"84d06fe0b7690cddeea55fc8507f8dc70015b728","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.1.2.tgz","fileCount":63,"integrity":"sha512-SFS2cytyW6HF2TILpneZfV+tTFF7hqAPanySl/xsAUOUmd/RIT3jExZ99cIbEagK2ztNHZ4MyKz4xN6boxFuCQ==","signatures":[{"sig":"MEYCIQCs+qU+aBVnHy+Xt48/VBYdyJOrsmX7g1LqsgD9czkC0wIhAJ9cxQWENHNOR+eLcWvyh0MaDuPBVzpZebZ/Oi/yKwSk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":864310},"main":"./src/index.ts","type":"module","types":"./src/index.ts","engines":{"bun":">=1.2.0"},"exports":{".":{"types":"./src/index.ts","default":"./src/index.ts"}},"gitHead":"f0a5e7753e51a5ea290da3e7da3b8c5c00c53773","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","smoke":"bun run examples/smoke.ts","example":"bun run examples/simple-table.ts","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","example:layout":"bun run examples/layout-controls.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"dmytroyatskovskyi@outlook.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript and Bun. No Chromium, low-memory streaming renderer, Google Fonts support with disk caching.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","pdf-lib":"^1.17.1","domutils":"^3.2.2","domhandler":"^5.0.3","htmlparser2":"^10.0.0","@types/pdfkit":"^0.17.6","svg-to-pdfkit":"^0.1.8","@pdf-lib/fontkit":"^1.1.1","@types/svg-to-pdfkit":"^0.1.4"},"_hasShrinkwrap":false,"devDependencies":{"bun-types":"latest","typescript":"^5.8.0"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.1.2_1776529637411_0.24793056542420167","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"html2pdfsmith","version":"0.1.3","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.1.3","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"dist":{"shasum":"1450e0d79a3c0f58799dadefb32aef39ccf26d7e","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.1.3.tgz","fileCount":6,"integrity":"sha512-Xz8ZnRMYQEXf4waAdmdTBgG8yy6TGMaq+XTwj0bKpz1FzEHO0b4DzHk4AvNtgfnX2A4EsOsuIsWjQ9JYOmIbMQ==","signatures":[{"sig":"MEYCIQD4WR3pgjq9wjunLoIQqaVAuT6nsZZQo4sAqU7/7S3HGgIhANgs4k/TIgTtKwegEekBrhl9SUfJ5Hib0F6I8zVQ7lg0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":304736},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"77f9992356a67cf60c53127d50fd9257d421b29f","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, Google Fonts support with disk caching.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","pdf-lib":"^1.17.1","domutils":"^3.2.2","domhandler":"^5.0.3","htmlparser2":"^10.0.0","@types/pdfkit":"^0.17.6","svg-to-pdfkit":"^0.1.8","@pdf-lib/fontkit":"^1.1.1","@types/svg-to-pdfkit":"^0.1.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","bun-types":"latest","typescript":"^5.8.0"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.1.3_1776778953226_0.3045237766333948","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"html2pdfsmith","version":"0.1.4","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.1.4","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"dist":{"shasum":"36f4471e36f7502c2c7cbc6ac05fd13cab21a215","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.1.4.tgz","fileCount":6,"integrity":"sha512-2y1dYLcwRU3B5JVFhTemmgHmbPGa/e9lqLYRAdJNSUJUBa3ENqPeW2zvG63FSOpFuYd8yV7d9wmc8qSlEXdgUw==","signatures":[{"sig":"MEQCIHbZlxYzHrAuVHPXi2WOfAIG4QcamhMly+/vSe9BffRaAiAhz4Pzy25tsXHUGSclcDQXqbMSAOWc//EbpEr2HK2U5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287830},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"3bbe140711439b42b935244a0054cca849bc88a6","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, Google Fonts support with disk caching.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","domhandler":"^5.0.3","htmlparser2":"^10.0.0","svg-to-pdfkit":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","bun-types":"latest","typescript":"^5.8.0","@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.1.4_1776827997364_0.7490983510080942","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"html2pdfsmith","version":"0.1.5","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.1.5","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"bin":{"html2pdfsmith":"dist/cli.js"},"dist":{"shasum":"806e50d9ac3818fb9c3f4d8683bfcc738e6d1121","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.1.5.tgz","fileCount":10,"integrity":"sha512-a85ZtjZkvYvqC2PiTK1sxI8Gj8Fq6/i1vjVd9+MymPpOqH0vNwkdN/an/XjrvKDzW6QeBkSPmWFGCbXYwNRuxw==","signatures":[{"sig":"MEQCIA7dDbfFkNBYc3oGXQHvdg2vmZrWwMfzQRIOzqEkQgpzAiB2vbgFiRhJG3r0lKIb6yUY1Na+fNo0KZuf4rL6uZ8+TQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":312947},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"bde834d88f09aac5211e2dbd3100200c9c46a17f","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts src/cli.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts","example:font-family-fallback":"bun run examples/font-family-fallback.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","domhandler":"^5.0.3","htmlparser2":"^10.0.0","svg-to-pdfkit":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","bun-types":"latest","typescript":"^5.8.0","@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.1.5_1776940863106_0.8615230658836641","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"html2pdfsmith","version":"0.1.6","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.1.6","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"bin":{"html2pdfsmith":"dist/cli.js"},"dist":{"shasum":"72329be15c919e544ae0a90610154f1fb14608f3","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.1.6.tgz","fileCount":9,"integrity":"sha512-b//v7n2mWgkzKolZUDCqdYTRUYc0Lm0Lg9tztQ+DMYikNcpA5V9myNnfgdMiPdj0RN3x92x0E0evkil29ob8EA==","signatures":[{"sig":"MEUCIHYPe2vTIqggAkk9bHLW4jLgjbffnmoRiBioOR5g07lXAiEAmApF5Grp6BGGrqlWhssXgzGgTipFdwsFbXZsbu/UVqo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":305650},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"7125ef1e71a992e9d6129ad9f6a0e90e50269100","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts src/cli.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts","example:font-family-fallback":"bun run examples/font-family-fallback.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","domhandler":"^5.0.3","htmlparser2":"^10.0.0","svg-to-pdfkit":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","pdf-lib":"^1.17.1","bun-types":"latest","typescript":"^5.8.0","@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.1.6_1776998109905_0.7015286758481958","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"html2pdfsmith","version":"0.1.8","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.1.8","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"bin":{"html2pdfsmith":"dist/cli.js"},"dist":{"shasum":"25c9d7bc3784b652647ed8e137d3b5958919df28","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.1.8.tgz","fileCount":9,"integrity":"sha512-C8vaaj2AXlcy8NnQWESBwK4KjAGPTtHKb7ZoE378mvF8e0T7d2tbf6uHxqFWaEFSZlPqEf/PDOoFhoKCT1/Y5g==","signatures":[{"sig":"MEQCIEMn1z4H6DAHPlDMgegNwv5KUF7hTaHlmwut1s5xdfDGAiAW6kxIOJEWsz2zZ0//AzpGbjheBiKFFlSkstjcHdT0sw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":331486},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"e3b02d1c15c8f1240019b2d2d12cb418674059fb","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts src/cli.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts","example:font-family-fallback":"bun run examples/font-family-fallback.ts","example:production-comparison":"bun run examples/production-comparison-table.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","domhandler":"^5.0.3","htmlparser2":"^10.0.0","svg-to-pdfkit":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","pdf-lib":"^1.17.1","bun-types":"latest","typescript":"^5.8.0","@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.1.8_1777010342517_0.19536724642215275","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"html2pdfsmith","version":"0.1.9","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.1.9","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"bin":{"html2pdfsmith":"dist/cli.js"},"dist":{"shasum":"6ccb582c2a3db2d87c9d2e6cc14d085a25287ad2","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.1.9.tgz","fileCount":9,"integrity":"sha512-ZGmMwghbMDLIbWJsMYjH7UUz++t9lJ7+LUaUMa6wyv1iTsgsHOvxcJiUcwLXtIbG3Fg7kWzQRdb59B1mvq57nw==","signatures":[{"sig":"MEUCIHzUbGyMd/4wJGT6Zw9Lw/PVkxACFa1+Isogb9CbrpAmAiEA+TtICREy/Fuof3RWNPgzL/FtIQIMV6KGVuCDe/2bWAs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335380},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"511dffe4b1cf092174c4804b668cf3d64afb4697","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts src/cli.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts","example:font-family-fallback":"bun run examples/font-family-fallback.ts","example:production-comparison":"bun run examples/production-comparison-table.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","domhandler":"^5.0.3","htmlparser2":"^10.0.0","svg-to-pdfkit":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","pdf-lib":"^1.17.1","bun-types":"latest","typescript":"^5.8.0","@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.1.9_1777018700672_0.012412508923805632","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"html2pdfsmith","version":"0.1.10","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.1.10","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"bin":{"html2pdfsmith":"dist/cli.js"},"dist":{"shasum":"5e5ce281286454fe851480629335d63f0a00cfdd","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.1.10.tgz","fileCount":9,"integrity":"sha512-k4x6Dq+yukSPJ6RgLS0rk8XhmIT0pjjpaNfiMBgUxbSMsHTgVGjAJmLbzq+Jf88N47ZUegUlxYd70mjY0nChTQ==","signatures":[{"sig":"MEYCIQDABm74zKf4riuVifW9XXU23Jeo5PaTMKYPlDSvPAwY/QIhAJmbji2n8TdQ8raozLl4TPBqrPhHlNq3hVReo3Z4Qok3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":336250},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"65b4f1c7b1c474714aeb459eb57cc9ad3a40f067","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts src/cli.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts","example:font-family-fallback":"bun run examples/font-family-fallback.ts","example:production-comparison":"bun run examples/production-comparison-table.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","domhandler":"^5.0.3","htmlparser2":"^10.0.0","svg-to-pdfkit":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","pdf-lib":"^1.17.1","bun-types":"latest","typescript":"^5.8.0","@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.1.10_1777018791740_0.1395924483773623","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"html2pdfsmith","version":"0.1.11","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.1.11","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"bin":{"html2pdfsmith":"dist/cli.js"},"dist":{"shasum":"d9c338e4c089bf8eabc72742b5e0cb4c94998254","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.1.11.tgz","fileCount":9,"integrity":"sha512-sg3RxhQFkqMzH18qiZlMppyv5HLGSJJbgPK48CyVRoCl2y2eNsF3uiV+L9knkHi07PCIRSlQe6+TILssyWFZWA==","signatures":[{"sig":"MEUCIQCR/UiqwdHjCTBqoc1EGWcuvowH8aC6+x8g/6mXy8N3aAIgGVcv7nKBK26+DSyprM8zxt9bFZY9XyEsCp/N03puYJw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":337483},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"0c35276b2858cd1e691798c4e5a08f247a5822ad","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts src/cli.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts","example:font-family-fallback":"bun run examples/font-family-fallback.ts","example:production-comparison":"bun run examples/production-comparison-table.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","domhandler":"^5.0.3","htmlparser2":"^10.0.0","svg-to-pdfkit":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","pdf-lib":"^1.17.1","bun-types":"latest","typescript":"^5.8.0","@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.1.11_1777021164999_0.7839039902776421","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"html2pdfsmith","version":"0.1.12","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.1.12","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"bin":{"html2pdfsmith":"dist/cli.js"},"dist":{"shasum":"c7bcffa2c99b8a1b3dfee3195cbf487110d3a0b7","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.1.12.tgz","fileCount":9,"integrity":"sha512-RjCfV7kXLqfGcNQuezriwjhX0eBuMxYkFCi55ee2txlzHkUm47Fhkj1awP/wo0I1MQPCCPxeOWnZsuj62+JHPg==","signatures":[{"sig":"MEQCIBUZKzMw9NkErDDvYUjjc7Vfed19YkPBlxaToDV7V3NoAiAaHtoUviOTiHrKktPBbRl2L0oKa4FkL80e6Gaz9V/YKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":337483},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"27cc010f33b8e8461da3d8f020ac974d8a518ba8","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts src/cli.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts","example:font-family-fallback":"bun run examples/font-family-fallback.ts","example:production-comparison":"bun run examples/production-comparison-table.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","domhandler":"^5.0.3","htmlparser2":"^10.0.0","svg-to-pdfkit":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","pdf-lib":"^1.17.1","bun-types":"latest","typescript":"^5.8.0","@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.1.12_1777022075263_0.5927035636158042","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"html2pdfsmith","version":"0.1.13","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.1.13","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"bin":{"html2pdfsmith":"dist/cli.js"},"dist":{"shasum":"e314bdec14ab6a9cae992b6789f0a3f2985e1d79","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.1.13.tgz","fileCount":9,"integrity":"sha512-Pj4J/M6oSH8lZmxUP4oLhjlbuh/BBeSCs5WH2tKzo6MVI0cpjNbsN41JA/TdvTNascJXLHI1JvX2ZhqWUxtORA==","signatures":[{"sig":"MEUCIAuKF++hYnoTK1ReF5KGcugxd8BmlbnL+B36bPSZSwRWAiEAyhku2bD6QgsqKOK0qUzSRyvrkOSs2DYYTuLekylgxz0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343664},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"81157caa1c2ee61116eb5b889b330cff8d3612ce","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts src/cli.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts","example:font-family-fallback":"bun run examples/font-family-fallback.ts","example:production-comparison":"bun run examples/production-comparison-table.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","domhandler":"^5.0.3","htmlparser2":"^10.0.0","svg-to-pdfkit":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","pdf-lib":"^1.17.1","bun-types":"latest","typescript":"^5.8.0","@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.1.13_1777049100212_0.25441695019486676","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"html2pdfsmith","version":"0.1.14","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.1.14","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"bin":{"html2pdfsmith":"dist/cli.js"},"dist":{"shasum":"ae6a4b0fb0b8ec0624b4623bd2518bc79dad7321","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.1.14.tgz","fileCount":9,"integrity":"sha512-EWlXciMYoyzOQyO+bLDE9qMYri2bK/eMlSnT5JGJc5bfIg4zrTwySn6ypTPxOPVi7ZQ/uTpg4mTu69L29qBeBw==","signatures":[{"sig":"MEUCIQD7ZYPsXMU94DLea9wiWszDzrCgQEduMymg8y0gBJ6PWQIgaOFF3lQJntquTQfrmb2M2ZfSrJ76SaZv3g1bj3nMsu8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":345706},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"86406afbba369a1133ce4441afbcd2081740384e","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts src/cli.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts","example:font-family-fallback":"bun run examples/font-family-fallback.ts","example:production-comparison":"bun run examples/production-comparison-table.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","domhandler":"^5.0.3","htmlparser2":"^10.0.0","svg-to-pdfkit":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","pdf-lib":"^1.17.1","bun-types":"latest","typescript":"^5.8.0","@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.1.14_1777085057245_0.7734665184691858","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"html2pdfsmith","version":"0.1.15","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.1.15","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"bin":{"html2pdfsmith":"dist/cli.js"},"dist":{"shasum":"c7762827f03a5bb5b6f8af9e0cf96fb48c3202c8","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.1.15.tgz","fileCount":9,"integrity":"sha512-XlOE+Gp2ObVQGzMbD7IItY0JfBf882GkO1ms5RLHRwVlMeUAw9sI1167IfuQELfojsrSzhrIjEzoK6J3ZPtjdA==","signatures":[{"sig":"MEUCIQCd2J6LRjOv/ceoAPRjBOJgctLGuWnB/q4MWmUZyBTUOAIgb5dD+WiJZW3exASltPJL2SJjCUXOeFEeRjvWDI9oa+g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":340450},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"139bb605890ded169ca3b79a36335f20382b0dfb","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts src/cli.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts","example:font-family-fallback":"bun run examples/font-family-fallback.ts","example:production-comparison":"bun run examples/production-comparison-table.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","domhandler":"^5.0.3","htmlparser2":"^10.0.0","svg-to-pdfkit":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","pdf-lib":"^1.17.1","bun-types":"latest","typescript":"^5.8.0","@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.1.15_1777102379395_0.9659368326061768","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"html2pdfsmith","version":"0.1.16","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.1.16","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"bin":{"html2pdfsmith":"dist/cli.js"},"dist":{"shasum":"366b3a217cd1b99fcbf9ca4dc2361139f98b8977","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.1.16.tgz","fileCount":9,"integrity":"sha512-eZ2x7szYbznhbX65FPI79qyczgKDrLBDoCP1FEEnt+YAT3jAuaTtuyEGKBNFe1jSntia3A9bg1WTUM8a1qHWXg==","signatures":[{"sig":"MEUCIQCquzeP8lZaLLl0xnrL1/rHu45U9Iojw0P0L5kiV8OMWAIgaweWr363z4ayO973nF0gQeOECW/aYe+dvynX/N/Vtzk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":342588},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"0636470085f7d1193e5fac91d1f206acc03b19ec","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts src/cli.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts","example:font-family-fallback":"bun run examples/font-family-fallback.ts","example:production-comparison":"bun run examples/production-comparison-table.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","domhandler":"^5.0.3","htmlparser2":"^10.0.0","svg-to-pdfkit":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","pdf-lib":"^1.17.1","bun-types":"latest","typescript":"^5.8.0","@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.1.16_1777103928143_0.722263103835254","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"html2pdfsmith","version":"0.1.17","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.1.17","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"bin":{"html2pdfsmith":"dist/cli.js"},"dist":{"shasum":"7ec5a70652b359dceb25475accb9c5569ff8793c","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.1.17.tgz","fileCount":9,"integrity":"sha512-WIaw0gqdxVkHMlgK0gznaxA55bdgnuH9oIOKmqsfFdc4bi6trZLr1ApFjHgv5w1/+YR3Nm6Nkzzj2RZs22V+Ng==","signatures":[{"sig":"MEQCICfaLy4Dwj1LN2gOKm1gEul7oVjA0lJH/myO65QXfLPqAiAduR/Fu1bfbb1kGZQCMp0tl6PKIfKBC9KHm1Y3/f+QFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343537},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"0636470085f7d1193e5fac91d1f206acc03b19ec","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts src/cli.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts","example:font-family-fallback":"bun run examples/font-family-fallback.ts","example:production-comparison":"bun run examples/production-comparison-table.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","domhandler":"^5.0.3","htmlparser2":"^10.0.0","svg-to-pdfkit":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","pdf-lib":"^1.17.1","bun-types":"latest","typescript":"^5.8.0","@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.1.17_1777119460497_0.20384217128653725","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"html2pdfsmith","version":"0.1.18","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.1.18","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"bin":{"html2pdfsmith":"dist/cli.js"},"dist":{"shasum":"55171e4ee9f97022de7affe1664e5135e03d5373","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.1.18.tgz","fileCount":9,"integrity":"sha512-Gl8+9GoGD0VVmn9pgYvtFN08Wz1IHkcH9qoe9vD/hAH8jrqeAtOvjQ/82nJr4rGIqdLWn0eg8VPSL4xZP18lKg==","signatures":[{"sig":"MEUCIQCIltvhvJNzt/aMD7FzsxwiSsf38kZ0OtMJ8l1IHrf8EQIgOfgOd09p1v8P2+RtceEoDUCNG8otYYZ4Xc5n/N956iA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":347032},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"925af91bb3f3b3ac9a974722272f8f439ad7914b","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts src/cli.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts","example:font-family-fallback":"bun run examples/font-family-fallback.ts","example:production-comparison":"bun run examples/production-comparison-table.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","domhandler":"^5.0.3","htmlparser2":"^10.0.0","svg-to-pdfkit":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","pdf-lib":"^1.17.1","bun-types":"latest","typescript":"^5.8.0","@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.1.18_1777138907519_0.9986182254494254","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"html2pdfsmith","version":"0.1.19","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.1.19","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"bin":{"html2pdfsmith":"dist/cli.js"},"dist":{"shasum":"09d915b2fad56bd0a9f0da274453bc9389e50eca","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.1.19.tgz","fileCount":9,"integrity":"sha512-hfcdQIxovNW3AuHITFztlW4OqS456VNlxyaeXuhsosjP+Qz+A2a452XYAEamtke9+pmn11FR4W3hpaB25o3sAg==","signatures":[{"sig":"MEQCIGSHsPlHmA/Ty/qdRgnnmSpOFE+IxUEKcZK4XK3+TtbiAiB1iFn5Yx3JFZL/eeGtM4ZM+AdEipBLVnxfg07eW+vKaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":347883},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"3355c2cc0d6c859e9b196decfccc18f39dc58db3","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts src/cli.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts","example:font-family-fallback":"bun run examples/font-family-fallback.ts","example:production-comparison":"bun run examples/production-comparison-table.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","domhandler":"^5.0.3","htmlparser2":"^10.0.0","svg-to-pdfkit":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","pdf-lib":"^1.17.1","bun-types":"latest","typescript":"^5.8.0","@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.1.19_1779107428740_0.1259095999998372","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"html2pdfsmith","version":"0.2.0","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.2.0","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"bin":{"html2pdfsmith":"dist/cli.js"},"dist":{"shasum":"0371aa4fbd3cd50024a429b2f8994d3a3a17180f","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.2.0.tgz","fileCount":9,"integrity":"sha512-2VlPhXYlfrFN+0Y6/J2ORc071ePCq+ILONCCHOkTwMrqMBN7gNPUTGmR0dg9R4L6WKsLYZpe05wu8UwvQUbm9g==","signatures":[{"sig":"MEYCIQDVYt0YO8jZrFYdQEsvRX/CTn36yxh4ZNztG7IZm3CjmgIhAMY8/bm6uJr27wdXlRbYo4uGzGOMPtNNsa36DbazdZrx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":353342},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"c61675b46793051ea41de660d3ddd8be0ce08171","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts src/cli.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts","example:font-family-fallback":"bun run examples/font-family-fallback.ts","example:production-comparison":"bun run examples/production-comparison-table.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","domhandler":"^5.0.3","htmlparser2":"^10.0.0","svg-to-pdfkit":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","pdf-lib":"^1.17.1","bun-types":"latest","typescript":"^5.8.0","@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.2.0_1780570591956_0.6336166452360579","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"html2pdfsmith","version":"0.2.1","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.2.1","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"bin":{"html2pdfsmith":"dist/cli.js"},"dist":{"shasum":"b0eecae8c12771d0fb44d11ce7c70b14de2e7dc1","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.2.1.tgz","fileCount":9,"integrity":"sha512-W/AGK6mD2cU0fiGcMXx9/evinUdzoYitUoIXYl0/qNdd2M9gHYal7V5KHcorFK1mVDDxkIvsJ4fWeylm1Y3aTQ==","signatures":[{"sig":"MEYCIQC51KjO2WCiOO6JdAdrLLyuMyF5ueYDISSfVUAgRmQL0gIhALWA/bfs8XQzEeFEaMe8Awz8oHxhFp/0avO1Hh8FRzts","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":354141},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"a3c41d983214be0b54224e579e620a51a41e918f","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts src/cli.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts","example:font-family-fallback":"bun run examples/font-family-fallback.ts","example:production-comparison":"bun run examples/production-comparison-table.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","domhandler":"^5.0.3","htmlparser2":"^10.0.0","svg-to-pdfkit":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","pdf-lib":"^1.17.1","bun-types":"latest","typescript":"^5.8.0","@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.2.1_1780573258109_0.5343321954148612","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"html2pdfsmith","version":"0.2.2","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.2.2","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"bin":{"html2pdfsmith":"dist/cli.js"},"dist":{"shasum":"6418a31b7f8afbbc56431be0aaecedb08354136d","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.2.2.tgz","fileCount":9,"integrity":"sha512-MMXcjee40Xbj/dKVy8M/px/IW7ykR2Lgx/PHurezoTQhti07RcdRXHrjN4hDVue1NTz9ZpTdWA5svC5q9uJ//A==","signatures":[{"sig":"MEUCICBGXn5bYwDeUPoh8pxmqjbS1jC4bG4wCU2z0FgKtFcMAiEAx2x74m2ElaS42AbNKK7v//OPxccWBWu/cBYxCeYmkEE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355085},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"3cb3845a2e3827ceaea618358007be272c8448a2","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts src/cli.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts","example:font-family-fallback":"bun run examples/font-family-fallback.ts","example:production-comparison":"bun run examples/production-comparison-table.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","domhandler":"^5.0.3","htmlparser2":"^10.0.0","svg-to-pdfkit":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","pdf-lib":"^1.17.1","bun-types":"latest","typescript":"^5.8.0","@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.2.2_1780589924055_0.2327176418626633","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"html2pdfsmith","version":"0.2.3","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.2.3","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"bin":{"html2pdfsmith":"dist/cli.js"},"dist":{"shasum":"14279da7a6b2d71a05853e5ce2b3388780a4b569","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.2.3.tgz","fileCount":9,"integrity":"sha512-0LgiPx0l1+vG1u8zsQuoUgPSo97emGi/qBX2cNE0ulBmmZ88c9iSGhyJ9RvchCkqS9FjRFqF1+hUh+GszH38zw==","signatures":[{"sig":"MEUCIDFW36SOOt7Srl3gnSoEG33EjIHq2FRzKoT9BcM+kAO/AiEArZNsXBON0fYw5SEE0lSAPmB0XBh+n2h3YlVCa3wncPQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":358814},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"3551ecb461ebf44ae2b0cc09412794456eb10ed0","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts src/cli.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts","example:font-family-fallback":"bun run examples/font-family-fallback.ts","example:production-comparison":"bun run examples/production-comparison-table.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","domhandler":"^5.0.3","htmlparser2":"^10.0.0","svg-to-pdfkit":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","pdf-lib":"^1.17.1","bun-types":"latest","typescript":"^5.8.0","@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.2.3_1780632413419_0.6217893421267797","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"html2pdfsmith","version":"0.2.4","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.2.4","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"bin":{"html2pdfsmith":"dist/cli.js"},"dist":{"shasum":"9dc32c7a805a34c0a326971ffae733c169465ebe","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.2.4.tgz","fileCount":9,"integrity":"sha512-eZivTgGXKikAPQuSjnemytNAvtdZh/HKayXfmO7cH9ntsSU9texoLapAxLDZJlJnGdOP0EiC1ihksCFYaBOWeg==","signatures":[{"sig":"MEUCIHOltsfo2EF3jGCVuBGhj3lqdphEn629WSbddEp4h4eSAiEAxRySUl2Rq+zvpA4g6SKD96NAEh5Z7diaDpGX2tBkKzs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":359316},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"3551ecb461ebf44ae2b0cc09412794456eb10ed0","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts src/cli.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts","example:font-family-fallback":"bun run examples/font-family-fallback.ts","example:production-comparison":"bun run examples/production-comparison-table.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","domhandler":"^5.0.3","htmlparser2":"^10.0.0","svg-to-pdfkit":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","pdf-lib":"^1.17.1","bun-types":"latest","typescript":"^5.8.0","@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.2.4_1780635630429_0.391492833213803","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"html2pdfsmith","version":"0.2.5","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.2.5","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"bin":{"html2pdfsmith":"dist/cli.js"},"dist":{"shasum":"c189fef14a08b49437379edaea9e6668cc3772a5","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.2.5.tgz","fileCount":9,"integrity":"sha512-Zm1DSestDQ2SgMNdIiM/CnkS2X98wh2HJ6nPkE5LoTZQ3kYdxoec5u7I2/bpGVOjALCq7H0tcmq9qYHPKdxSnw==","signatures":[{"sig":"MEQCIFHmtGHAn7oxDIWv7Uydt8LXo4awswyiFFtzAgi08nq+AiAMajcjlPGohc/lQAsrFp2qFTL9RTVMkTOc9h5BW5lrCQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":359717},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"eb939cc95bccda012b1526a9bba9be59d4e61c61","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts src/cli.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts","example:font-family-fallback":"bun run examples/font-family-fallback.ts","example:production-comparison":"bun run examples/production-comparison-table.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","domhandler":"^5.0.3","htmlparser2":"^10.0.0","svg-to-pdfkit":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","pdf-lib":"^1.17.1","bun-types":"latest","typescript":"^5.8.0","@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.2.5_1780638862258_0.5544401667778476","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"html2pdfsmith","version":"0.2.6","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.2.6","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"bin":{"html2pdfsmith":"dist/cli.js"},"dist":{"shasum":"5d944a211ebc75912e3ce42f2db79e3e74e82b89","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.2.6.tgz","fileCount":9,"integrity":"sha512-XjswwQSaYajnHV96QaJMSMKWt365FVt1g6h1wkQW2eSH7JYknF81yf3lDA1lsAMxidltB/d+dncDk2ltA+qsyA==","signatures":[{"sig":"MEUCIFQ0BpEyQt2xKtR417LKxTU9vy/8YpVsiVS8Kvk5YmV6AiEAmLbd2YBh9LaglxAv0197z/EcIYGJE+Og1nSzYlXv6gk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":369044},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"2c72fac9b6b08fa5c71b10ea6a473c76ddaefe9e","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts src/cli.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts","example:font-family-fallback":"bun run examples/font-family-fallback.ts","example:production-comparison":"bun run examples/production-comparison-table.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","domhandler":"^5.0.3","htmlparser2":"^10.0.0","svg-to-pdfkit":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","pdf-lib":"^1.17.1","bun-types":"latest","typescript":"^5.8.0","@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.2.6_1780641007625_0.9982495785520746","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"html2pdfsmith","version":"0.2.7","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.2.7","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"bin":{"html2pdfsmith":"dist/cli.js"},"dist":{"shasum":"c4444fedb7dcdc4fcabd282ba02646c484aa5677","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.2.7.tgz","fileCount":9,"integrity":"sha512-vf8Aeq/HQgBR0f0KeYnDo3VpOJxq04MjGVU6+gJUp3jbax+iHPAVtT4ee1RseW/FA8sxk42a33YyJgI7ZIDPzQ==","signatures":[{"sig":"MEQCIHAn7qMiWNVWIsWZgoZTVNGdtbiwGLKBVOaXK6GnHBr2AiBrCiMIs8TGDEB/J6iTMgEjoxetYAVGA8AKI3S56DoePQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":369968},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"acf7d66d5dfbf2434c029d339812a3973aa2e9b7","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts src/cli.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts","example:font-family-fallback":"bun run examples/font-family-fallback.ts","example:production-comparison":"bun run examples/production-comparison-table.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","domhandler":"^5.0.3","htmlparser2":"^10.0.0","svg-to-pdfkit":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","pdf-lib":"^1.17.1","bun-types":"latest","typescript":"^5.8.0","@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.2.7_1780674651833_0.6795681458197342","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"html2pdfsmith","version":"0.2.8","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","_id":"html2pdfsmith@0.2.8","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"bin":{"html2pdfsmith":"dist/cli.js"},"dist":{"shasum":"857e877d4464841f09bc724861c4afa0dc8f58df","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.2.8.tgz","fileCount":9,"integrity":"sha512-gkLmYzguLNy77OTDXTvWL0Oe0r5Y9UsRc6ld9KeDtV7G2KRAQ69R1P7CP6GjXQAy8FRsbFiLkTPBtTF89kgHdQ==","signatures":[{"sig":"MEQCIBkth+G34EtcHnDuNWqX8Tka7p7evLHg51+5yY2sjuFlAiBwm0BgnbmwKbqfgVbq7lgZJhzlVNmxoJTqmXhl7qVPFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":372382},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.2.0","node":">=18.17.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"7f463ab019c887c6a58b7eb425b6ff8b4f5a0586","scripts":{"bench":"bun --expose-gc run examples/bench-table.ts","build":"tsup src/index.ts src/cli.ts --format esm --dts --clean","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","example":"bun run examples/simple-table.ts","prepack":"bun run build","prepare":"npm run build","typecheck":"tsc --noEmit","test:fonts":"bun run examples/test-google-fonts.ts","example:fonts":"bun run examples/font-table.ts","visual:update":"bun run examples/visual-regression.ts --update","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","example:layout":"bun run examples/layout-controls.ts","example:autocore":"bun run examples/autocore-invoice.ts","example:document":"bun run examples/simple-document.ts","example:alignment":"bun run examples/alignment-controls.ts","example:css-table":"bun run examples/css-table.ts","example:font-face":"bun run examples/font-face.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:resources":"bun run examples/base-url-resources.ts","example:transform":"bun run examples/transform-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts","example:font-family-fallback":"bun run examples/font-family-fallback.ts","example:production-comparison":"bun run examples/production-comparison-table.ts"},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"repository":{"url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git","type":"git"},"_npmVersion":"11.6.2","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"pdfkit":"^0.18.0","domhandler":"^5.0.3","htmlparser2":"^10.0.0","svg-to-pdfkit":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","pdf-lib":"^1.17.1","bun-types":"latest","typescript":"^5.8.0","@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/html2pdfsmith_0.2.8_1781196714378_0.24828456684529665","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"html2pdfsmith","version":"0.2.9","description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","bin":{"html2pdfsmith":"dist/cli.js"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsup src/index.ts src/cli.ts --format esm --dts --clean","typecheck":"tsc --noEmit","prepare":"npm run build","prepack":"bun run build","example":"bun run examples/simple-table.ts","example:css-table":"bun run examples/css-table.ts","example:document":"bun run examples/simple-document.ts","example:fonts":"bun run examples/font-table.ts","example:bundled-fonts":"bun run examples/bundled-fonts.ts","example:table-showcase":"bun run examples/table-showcase.ts","example:resources":"bun run examples/base-url-resources.ts","example:font-face":"bun run examples/font-face.ts","example:font-family-fallback":"bun run examples/font-family-fallback.ts","example:page-wrap-repeat":"bun run examples/page-wrap-repeat.ts","example:merged-table":"bun run examples/merged-table-pagination.ts","example:wide-table":"bun run examples/wide-table-pagination.ts","example:alignment":"bun run examples/alignment-controls.ts","example:transform":"bun run examples/transform-controls.ts","example:layout":"bun run examples/layout-controls.ts","example:visual-css":"bun run examples/visual-css-controls.ts","example:production-layout":"bun run examples/production-layout-controls.ts","example:production-comparison":"bun run examples/production-comparison-table.ts","example:inline-badges":"bun run examples/inline-badges.ts","example:error-handling":"bun run examples/error-handling.ts","example:comparison-showcase":"bun run examples/comparison-table-showcase.ts","example:html-file":"bun run examples/render-html-file.ts examples/fixtures/comparison-rich-table.html tmp/pdfs/comparison-rich-table.from-html.pdf","example:autocore":"bun run examples/autocore-invoice.ts","bench":"bun --expose-gc run examples/bench-table.ts","bench:internal":"bun --expose-gc run examples/internal-benchmark.ts","smoke":"bun run examples/smoke.ts","visual":"bun run examples/visual-regression.ts","visual:update":"bun run examples/visual-regression.ts --update","test:fonts":"bun run examples/test-google-fonts.ts"},"keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git"},"bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","dependencies":{"domhandler":"^5.0.3","htmlparser2":"^10.0.0","pdfkit":"^0.18.0","svg-to-pdfkit":"^0.1.8"},"devDependencies":{"@types/pdfkit":"^0.17.6","@types/svg-to-pdfkit":"^0.1.4","bun-types":"latest","pdf-lib":"^1.17.1","tsup":"^8.0.2","typescript":"^5.8.0"},"engines":{"node":">=18.17.0","bun":">=1.2.0"},"gitHead":"f5ad4dbf2db357275b5b87822af5865f32f2ee0b","_id":"html2pdfsmith@0.2.9","_nodeVersion":"24.11.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-vRuL77dOVCH8aTMghDwYfTyjXIw82vJB+AXkUJtWJq6tNCs8zYW/hlLLRMs0+ct8IOiPHDryRyHeC5wRckJYxw==","shasum":"092bc9e22375ebc923d2ad2326e170a2a31e8a3f","tarball":"https://registry.npmjs.org/html2pdfsmith/-/html2pdfsmith-0.2.9.tgz","fileCount":9,"unpackedSize":373064,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAh0qku0JYsBv7gWAJ3jEol5U8CDbLYYAbz8fjgwsIfsAiB5GS6PjT9nlO+Alw8WehkyrzRyXRoYkpu1n8HMsPj2dg=="}]},"_npmUser":{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"},"directories":{},"maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/html2pdfsmith_0.2.9_1783607682021_0.4148582938630656"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-18T07:21:22.790Z","modified":"2026-07-09T14:34:42.299Z","0.1.0":"2026-04-18T07:21:23.122Z","0.1.1":"2026-04-18T16:17:22.155Z","0.1.2":"2026-04-18T16:27:17.595Z","0.1.3":"2026-04-21T13:42:33.361Z","0.1.4":"2026-04-22T03:19:57.504Z","0.1.5":"2026-04-23T10:41:03.267Z","0.1.6":"2026-04-24T02:35:10.059Z","0.1.8":"2026-04-24T05:59:02.659Z","0.1.9":"2026-04-24T08:18:20.805Z","0.1.10":"2026-04-24T08:19:51.909Z","0.1.11":"2026-04-24T08:59:25.134Z","0.1.12":"2026-04-24T09:14:35.390Z","0.1.13":"2026-04-24T16:45:00.362Z","0.1.14":"2026-04-25T02:44:17.371Z","0.1.15":"2026-04-25T07:32:59.538Z","0.1.16":"2026-04-25T07:58:48.335Z","0.1.17":"2026-04-25T12:17:40.644Z","0.1.18":"2026-04-25T17:41:47.665Z","0.1.19":"2026-05-18T12:30:28.901Z","0.2.0":"2026-06-04T10:56:32.106Z","0.2.1":"2026-06-04T11:40:58.256Z","0.2.2":"2026-06-04T16:18:44.273Z","0.2.3":"2026-06-05T04:06:53.615Z","0.2.4":"2026-06-05T05:00:30.588Z","0.2.5":"2026-06-05T05:54:22.399Z","0.2.6":"2026-06-05T06:30:07.777Z","0.2.7":"2026-06-05T15:50:51.974Z","0.2.8":"2026-06-11T16:51:54.519Z","0.2.9":"2026-07-09T14:34:42.189Z"},"bugs":{"url":"https://github.com/YATSKOVSKYI/html2pdfsmith/issues"},"author":{"name":"dmytro_yatskovskyi"},"license":"MIT","homepage":"https://github.com/YATSKOVSKYI/html2pdfsmith#readme","keywords":["pdf","html-to-pdf","html2pdf","pdfkit","browserless","bun","typescript","pdf-generator","pdf-render","google-fonts","node","nodejs","streaming","low-memory","no-chromium","no-puppeteer","document","table","report"],"repository":{"type":"git","url":"git+https://github.com/YATSKOVSKYI/html2pdfsmith.git"},"description":"Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun. No Chromium, low-memory streaming renderer, CSS font-family, Google Fonts caching, and local font installs.","maintainers":[{"name":"dmytro_yatskovskyi","email":"foxsers@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/YATSKOVSKYI/html2pdfsmith/main/.github/assets/html2pdfsmith-banner.png\" alt=\"Html2PdfSmith\" width=\"860\"/>\n</p>\n\r\n<p align=\"center\">\r\n  <strong>Browserless HTML-to-PDF rendering engine for TypeScript, Node.js, and Bun.</strong><br/>\r\n  <sub>HTML in. PDF out. No Chromium, no Playwright, no headless browser process.</sub>\r\n</p>\r\n\r\n<p align=\"center\">\r\n  <a href=\"https://www.npmjs.com/package/html2pdfsmith\"><img src=\"https://img.shields.io/npm/v/html2pdfsmith?style=flat-square&color=cb3837&logo=npm&logoColor=white\" alt=\"npm\"/></a>\r\n  <a href=\"#quickstart\"><img src=\"https://img.shields.io/badge/Node.js-%3E%3D18.17-5fa04e?style=flat-square&logo=node.js&logoColor=white\" alt=\"Node.js >= 18.17\"/></a>\r\n  <a href=\"#quickstart\"><img src=\"https://img.shields.io/badge/Bun-%3E%3D1.2.0-f472b6?style=flat-square&logo=bun&logoColor=white\" alt=\"Bun >= 1.2.0\"/></a>\r\n  <a href=\"#api\"><img src=\"https://img.shields.io/badge/TypeScript-first-3178c6?style=flat-square&logo=typescript&logoColor=white\" alt=\"TypeScript first\"/></a>\r\n  <a href=\"#performance\"><img src=\"https://img.shields.io/badge/incremental_RSS-~63_MB-22c55e?style=flat-square\" alt=\"~63 MB incremental RSS\"/></a>\r\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-818cf8?style=flat-square\" alt=\"MIT\"/></a>\r\n</p>\r\n\r\n---\r\n\r\n## Why\r\n\r\nMost HTML-to-PDF stacks render through Chromium. That gives broad web compatibility, but it also brings browser startup, large binaries, and high memory use.\r\n\r\nHtml2PdfSmith is a different tradeoff: it is a document renderer for predictable printable HTML. It parses HTML, applies a pragmatic print-focused CSS subset, lays out pages, and writes PDF directly through a streaming PDFKit pipeline.\r\n\r\n| Area | Browser-based renderers | Html2PdfSmith |\r\n|---|---:|---:|\r\n| Runtime | Chromium / Playwright / Puppeteer | Node.js or Bun + PDFKit |\r\n| Memory model | Browser process per render or pool | Streaming PDF writer |\r\n| Best fit | Arbitrary web pages | Reports, invoices, tables, branded PDFs |\r\n| JavaScript execution | Yes | No |\r\n| CSS scope | Browser CSS engine | Practical document CSS subset |\r\n| Typical benchmark | Hundreds of MB RSS | ~63 MB incremental RSS for 10x100 table |\r\n\r\nHtml2PdfSmith is not trying to be a full browser. It is trying to be a small, controllable, production-friendly HTML-to-PDF engine.\r\n\r\nUse it when you own the template and want stable PDF output for reports, invoices, tables, dashboards, statements, price lists, or branded printable documents. Do not use it to screenshot arbitrary websites, run client-side JavaScript, or expect browser-perfect CSS compatibility.\r\n\r\n## Features\r\n\r\n- Browserless renderer: no Chromium, no Puppeteer, no Playwright, no DOM runtime.\r\n- Streaming PDF output through PDFKit with a low-memory render path.\r\n- A4 and Letter pages with portrait, landscape, or automatic orientation.\r\n- Page headers, page footers, text/image watermarks, and streaming page numbers.\r\n- Document blocks: headings, paragraphs, sections, lists, blockquotes, `pre`/`code`, links, images, horizontal rules, and page breaks.\r\n- Inline rich text: `strong`, `em`, `u`, `s`, `sup`, `sub`, inline `code`, links, styled spans, and inline badge/chip boxes.\r\n- Practical CSS support for print documents: margins, padding, borders, colors, backgrounds, border radius, shadows, line-height, text alignment, text transforms, overflow wrapping, nowrap, pre-wrap, and ellipsis.\r\n- Lightweight document grids with `display: grid`, `grid-template-columns`, `gap`, `row-gap`, and `column-gap`.\r\n- Production table rendering: repeated headers, `thead`/`tbody`/`tfoot`, `colgroup`, `colspan`, basic `rowspan`, fixed and auto table layout, vertical alignment, per-side borders, and row/cell heights.\r\n- Wide table pagination: split very wide tables into horizontal page slices with repeated left columns.\r\n- Rich table cells with nested boxes, headings, paragraphs, images, clipped rounded content, and bounded absolute badges.\r\n- Images from PNG, JPEG, SVG, data URLs, local files, and HTTP(S) URLs, including aspect-ratio handling, `object-fit`, `object-position`, opacity, and PDF-native transforms.\r\n- Browserless charts through declarative `<chart>` blocks: bar, horizontal-bar, stacked-bar, line, area, sparkline, pie, donut, gauge, radial, radial-stacked, and radar.\r\n- Fonts through explicit file paths, in-memory bytes, CSS `@font-face`, optional bundled fonts, optional Google Fonts disk cache, project-local font installs, and optional system font discovery.\n- Resource loading policy for HTTP/file/data access, timeouts, and max CSS/image/font sizes.\r\n- Optional `qpdf` owner-password protection.\r\n- Warnings API for non-fatal rendering issues.\r\n\r\n## Quickstart\r\n\r\nHtml2PdfSmith works as an ESM package in Node.js `>=18.17.0` and Bun `>=1.2.0`. The library returns standard `Uint8Array` PDF bytes; the repository's development scripts and examples use Bun for speed and convenience.\r\n\r\n```bash\r\nnpm install html2pdfsmith\r\n# or\r\nbun add html2pdfsmith\r\n```\r\n\r\n```ts\r\nimport { renderHtmlToPdf } from \"html2pdfsmith\";\r\nimport { writeFile } from \"node:fs/promises\";\r\n\r\nconst pdf = await renderHtmlToPdf({\r\n  html: `\r\n    <!doctype html>\r\n    <html>\r\n      <body>\r\n        <h1>Quarterly Report</h1>\r\n        <p>Revenue increased compared with the previous quarter.</p>\r\n\r\n        <table>\r\n          <thead>\r\n            <tr><th>Metric</th><th>Q1</th><th>Q2</th></tr>\r\n          </thead>\r\n          <tbody>\r\n            <tr><td>Revenue</td><td>$1.2M</td><td>$1.4M</td></tr>\r\n            <tr><td>Users</td><td>8,400</td><td>12,100</td></tr>\r\n          </tbody>\r\n        </table>\r\n      </body>\r\n    </html>\r\n  `,\r\n});\r\n\r\nawait writeFile(\"report.pdf\", pdf);\r\n```\r\n\r\n## Full Example\r\n\r\n```ts\r\nimport { renderHtmlToPdfDetailed } from \"html2pdfsmith\";\r\nimport { writeFile } from \"node:fs/promises\";\r\n\r\nconst result = await renderHtmlToPdfDetailed({\r\n  html,\r\n  baseUrl: \"./public\",\r\n  stylesheets: [\"./pdf.css\"],\r\n  resourcePolicy: { allowHttp: false, allowFile: true },\r\n  repeatHeaders: true,\r\n  tableHeaderRepeat: \"auto\",\r\n  text: { overflowWrap: \"break-word\" },\r\n  page: { size: \"A4\", orientation: \"landscape\", marginMm: 4 },\r\n  pageHeader: { text: \"Quarterly Report\", align: \"right\" },\r\n  pageFooter: { text: \"Generated by Html2PdfSmith\", align: \"left\" },\r\n  pageNumbers: { format: \"Page {page}\", align: \"right\" },\r\n  watermarkText: \"CONFIDENTIAL\",\r\n  watermarkOpacity: 12,\r\n  watermarkLayer: \"foreground\",\r\n  font: { googleFont: \"Inter\" },\r\n});\r\n\r\nconsole.log(result.pages, result.orientation, result.warnings);\r\nawait writeFile(\"report.pdf\", result.pdf);\r\n```\r\n\r\n## API\r\n\r\n### `renderHtmlToPdf(options)`\r\n\r\nReturns raw PDF bytes as `Uint8Array`.\r\n\r\n```ts\r\nconst pdf = await renderHtmlToPdf({ html });\r\n```\r\n\r\n### `renderHtmlToPdfDetailed(options)`\r\n\r\nReturns PDF bytes plus render metadata.\r\n\r\n```ts\r\ninterface RenderHtmlToPdfResult {\r\n  pdf: Uint8Array;\r\n  warnings: RenderWarning[];\r\n  pages: number;\r\n  columns: number;\r\n  orientation: \"portrait\" | \"landscape\";\r\n}\r\n```\r\n\r\n### Options\r\n\r\n| Option | Type | Description |\r\n|---|---|---|\r\n| `html` | `string` | HTML document string to render |\r\n| `baseUrl` | `string` | Base URL or directory for relative assets such as CSS, images, SVGs, and fonts |\r\n| `stylesheets` | `(string \\| { href, content })[]` | Extra CSS files, URLs, or inline stylesheet content |\n| `resourcePolicy` | `object` | Resource loading guardrails: HTTP/file/data access, timeout, max image/CSS/font bytes |\n| `title` | `string` | PDF metadata title; falls back to `recordId`, then `\"HTML PDF\"` |\n| `repeatHeaders` | `boolean` | Repeat table headers on page breaks |\n| `tableHeaderRepeat` | `boolean \\| \"auto\"` | Repeat table headers explicitly, or automatically for tables with headers |\r\n| `table.rowspanPagination` | `\"avoid\" \\| \"split\"` | Keep rowspan-connected rows together when they fit on a fresh page |\n| `table.preset` | `\"comparison\" \\| \"compact-comparison\" \\| \"dense-comparison\"` | Apply generic comparison-table defaults; explicit options and CSS still win |\n| `table.horizontalPagination` | `\"none\" \\| \"auto\" \\| \"always\"` | Split wide tables into several horizontal page slices |\n| `table.horizontalPageColumns` | `number` | Maximum non-repeated source columns per horizontal slice |\n| `table.repeatColumns` | `number` | Number of left-side source columns repeated in every horizontal slice |\n| `table.cellPagination` | `\"off\" \\| \"text\" \\| \"rich-text\"` | Split oversized table-cell text across vertical page fragments; `rich-text` handles structural text blocks |\n| `table.verticalAlignMode` | `\"layout\" \\| \"optical\"` | Use layout box math or optical text metrics for `vertical-align: middle` in table cells |\n| `table.density` | `\"normal\" \\| \"compact\" \\| \"dense\"` | Predictable table density preset for generated font size, padding, and line-height defaults |\n| `table.fit` | `\"content\" \\| \"page-width\"` | Preserve content/CSS width or fit the table to the available page content width |\n| `table.firstColumnWeight` | `number` | Relative first-column width weight when generated widths are used |\n| `table.columnWeights` | `number[]` | Relative generated column widths, for example `[1.8, 1, 1, 1]`; explicit colgroup widths still win |\n| `table.cellTextAlign` | `\"left\" \\| \"center\" \\| \"right\"` | Default body cell alignment when CSS `text-align` is absent |\n| `table.headerTextAlign` | `\"left\" \\| \"center\" \\| \"right\"` | Default header cell alignment when CSS `text-align` is absent |\n| `table.firstColumnTextAlign` | `\"left\" \\| \"center\" \\| \"right\"` | Default first-column alignment when CSS `text-align` is absent |\n| `table.minFontSize` / `table.maxFontSize` | `number` | Clamp generated table font sizes; explicit CSS `font-size` still wins |\n| `text.overflowWrap` | `\"normal\" \\| \"break-word\" \\| \"anywhere\"` | Break long unspaced words/tokens instead of clipping them |\n| `page.size` | `\"A4\" \\| \"LETTER\"` | PDF page size |\r\n| `page.orientation` | `\"portrait\" \\| \"landscape\" \\| \"auto\"` | Page orientation |\r\n| `page.marginMm` | `number` | Page margin in millimeters |\r\n| `pageHeader` | `{ text, align, fontSize, color, heightMm }` | Repeated page header |\r\n| `pageFooter` | `{ text, align, fontSize, color, heightMm }` | Repeated page footer |\r\n| `pageNumbers` | `boolean \\| object` | Streaming page numbers, for example `Page {page}` |\r\n| `watermarkText` | `string \\| null` | Text watermark |\r\n| `watermarkUrl` | `string \\| null` | Image watermark |\r\n| `watermarkOpacity` | `number` | Watermark opacity, `0..100` or `0..1` |\r\n| `watermarkScale` | `number` | Watermark size scale |\r\n| `watermarkLayer` | `\"background\" \\| \"foreground\" \\| \"both\"` | Draw watermark behind content, above content, or both |\r\n| `patternType` | `string` | Watermark pattern hint |\r\n| `userLogoUrl` | `string \\| null` | Logo image for the document header |\r\n| `logoScale` | `number` | Logo image size scale |\r\n| `font.googleFont` | `string` | Google Fonts family name, cached to disk |\n| `font.googleFonts` | `string[]` | Additional Google Fonts selectable with CSS `font-family` |\n| `font.fallbackFonts` | `string[]` | Additional Google Font families used when the selected font does not cover the text |\n| `font.fallbackFontPaths` | `{ family, regularPath, boldPath? }[]` | Additional local fallback font families selectable by CSS and coverage fallback |\n| `font.bundled` | `PdfBundledFontFace` | Default offline font from an optional bundled-font package |\n| `font.bundledFonts` | `PdfBundledFontFace[]` | Additional offline fonts selectable with CSS `font-family` |\r\n| `font.regularPath` | `string` | Path to regular font |\r\n| `font.boldPath` | `string` | Path to bold font |\r\n| `font.italicPath` | `string` | Path to italic font |\r\n| `font.boldItalicPath` | `string` | Path to bold italic font |\r\n| `font.regularBytes` | `Uint8Array` | Regular font bytes |\r\n| `font.boldBytes` | `Uint8Array` | Bold font bytes |\r\n| `font.italicBytes` | `Uint8Array` | Italic font bytes |\r\n| `font.boldItalicBytes` | `Uint8Array` | Bold italic font bytes |\r\n| `font.autoDiscover` | `boolean` | Discover system fonts; convenient but heavier |\r\n| `protectPdf` | `boolean` | Apply optional qpdf owner-password protection |\r\n| `qpdfPath` | `string` | Custom qpdf binary path |\r\n| `hideHeader` | `boolean` | Hide document brand/contact header |\r\n| `onWarning` | `(warning) => void` | Receive non-fatal render warnings |\r\n\r\n`{total}` page counts are intentionally not resolved by the default streaming renderer. Use `{page}` for low-memory page numbers. Total page counts require buffering pages or a second pass.\r\n\r\n### Error Handling\r\n\r\nHtml2PdfSmith separates fatal render failures from recoverable document problems.\r\n\r\nMost template/resource issues are non-fatal. The renderer keeps producing a PDF and reports them through `result.warnings` and the optional `onWarning` callback:\r\n\r\n```ts\r\nconst result = await renderHtmlToPdfDetailed({\r\n  html,\r\n  baseUrl: \"./public\",\r\n  resourcePolicy: { allowHttp: false, allowFile: true },\r\n  onWarning(warning) {\r\n    console.warn(`[${warning.code}] ${warning.message}`);\r\n  },\r\n});\r\n\r\nif (result.warnings.length > 0) {\r\n  // Store, inspect, or fail your own job depending on policy.\r\n}\r\n```\r\n\r\nCommon warning cases:\r\n\r\n| Warning | Meaning |\r\n|---|---|\r\n| `font_fallback` | No usable custom font was registered, so the renderer fell back to a built-in PDF font |\r\n| `font_register_failed` / `font_face_register_failed` | A configured font path, font bytes, or CSS `@font-face` could not be registered |\r\n| `google_font_download_failed` | Google Fonts could not be downloaded; cached or fallback fonts may be used instead |\r\n| `image_load_failed` / `image_embed_failed` / `image_draw_failed` | An image was blocked, missing, unsupported, or failed during PDF drawing |\r\n| `stylesheet_load_failed` | A linked or configured stylesheet could not be loaded |\r\n| `page_total_unsupported_streaming` | `{total}` was requested in page numbers; streaming mode keeps memory low and prints `?` |\r\n| `table_row_too_tall` | A table row is taller than a fresh page and must be rendered sequentially |\n| `table_rowspan_group_too_tall` | Rows connected by `rowspan` cannot fit together on a fresh page |\n| `table_colspan_horizontal_split` | A wide `colspan` crossed a horizontal table slice boundary |\n| `table_cell_pagination_rich_content_unsupported` | Cell pagination met atomic image, positioned, or fixed-height rich content that cannot be text-split |\n| `table_cell_pagination_rowspan_unsupported` | A rowspan group stayed in conservative `avoid` mode instead of using text fragments |\n| `table_cell_pagination_no_progress` | Cell pagination stopped to avoid a pathological infinite loop |\n| `table_cell_pagination_fragment_too_small` / `table_cell_pagination_forced_line` | A wrapped line was taller than the available fragment and had to be forced |\n| `table_cell_pagination_clipped_block` | An atomic rich/image block could not fit in a fragment and fell back to clipping |\n| `qpdf_failed` | PDF protection failed; the unprotected PDF is returned with a warning |\n\r\nResource policy failures are warnings by default. For example, if `allowHttp: false` blocks an HTTP image, the image is omitted and the PDF still renders. If your production policy must fail closed, throw from `onWarning`:\r\n\r\n```ts\r\nawait renderHtmlToPdfDetailed({\r\n  html,\r\n  resourcePolicy: { allowHttp: false, allowFile: true, allowData: true },\r\n  onWarning(warning) {\r\n    if (\r\n      warning.code.endsWith(\"_load_failed\") ||\r\n      warning.code === \"qpdf_failed\" ||\r\n      warning.code === \"font_fallback\"\r\n    ) {\r\n      throw new Error(`PDF render rejected: ${warning.code}: ${warning.message}`);\r\n    }\r\n  },\r\n});\r\n```\r\n\r\nA runnable version of this pattern is included:\r\n\r\n```bash\r\nbun run example:error-handling\r\n```\r\n\r\nUnexpected renderer bugs, invalid runtime state, and exceptions thrown from your own `onWarning` callback reject the render promise. The package exports error classes for callers that want typed handling:\r\n\r\n```ts\r\nimport {\r\n  Html2PdfError,\r\n  ResourcePolicyError,\r\n  ResourceLoadError,\r\n  FontLoadError,\r\n  PdfProtectionError,\r\n  renderHtmlToPdfDetailed,\r\n} from \"html2pdfsmith\";\r\nimport { writeFile } from \"node:fs/promises\";\r\n\r\ntry {\r\n  const result = await renderHtmlToPdfDetailed({ html });\r\n  await writeFile(\"report.pdf\", result.pdf);\r\n} catch (error) {\r\n  if (error instanceof Html2PdfError) {\r\n    console.error(error.name, error.message);\r\n  }\r\n  throw error;\r\n}\r\n```\r\n\r\n### Resource Loading\r\n\r\nUse `baseUrl` when the HTML contains relative resources:\r\n\r\n```ts\r\nconst result = await renderHtmlToPdfDetailed({\r\n  html: `\r\n    <link rel=\"stylesheet\" href=\"assets/report.css\">\r\n    <img src=\"assets/logo.svg\">\r\n  `,\r\n  baseUrl: \"/srv/app/public\",\r\n  resourcePolicy: {\r\n    allowHttp: false,\r\n    allowFile: true,\r\n    allowData: true,\r\n    timeoutMs: 8000,\r\n    maxImageBytes: 5_000_000,\r\n    maxStylesheetBytes: 500_000,\r\n    maxFontBytes: 10_000_000,\r\n  },\r\n});\r\n```\r\n\r\nThe renderer takes finished HTML. TypeScript is only the caller; it does not have to build the PDF structure. A file-based render can be as small as:\r\n\r\n```ts\r\nimport { dirname } from \"node:path\";\r\nimport { readFile, writeFile } from \"node:fs/promises\";\r\nimport { renderHtmlToPdfDetailed } from \"html2pdfsmith\";\r\n\r\nconst input = \"/srv/templates/comparison.html\";\r\nconst html = await readFile(input, \"utf8\");\r\nconst result = await renderHtmlToPdfDetailed({\r\n  html,\r\n  baseUrl: dirname(input),\r\n  resourcePolicy: { allowFile: true, allowData: true },\r\n});\r\n\r\nawait writeFile(\"comparison.pdf\", result.pdf);\r\n```\r\n\r\nYou can also pass stylesheets explicitly:\r\n\r\n```ts\r\nawait renderHtmlToPdfDetailed({\r\n  html,\r\n  baseUrl: \"./public\",\r\n  stylesheets: [\r\n    \"./pdf.css\",\r\n    { content: \"table { border-collapse: collapse }\" },\r\n  ],\r\n});\r\n```\r\n\r\nExternal CSS can declare fonts with `@font-face`. Font URLs are resolved relative to the stylesheet file, then loaded through the same resource policy:\r\n\r\n```css\r\n@font-face {\r\n  font-family: \"Report Sans\";\r\n  src: url(\"./fonts/ReportSans-Regular.ttf\") format(\"truetype\");\r\n  font-weight: 400;\r\n  font-style: normal;\r\n}\r\n\r\n@font-face {\r\n  font-family: \"Report Sans\";\r\n  src: url(\"./fonts/ReportSans-BoldItalic.ttf\") format(\"truetype\");\r\n  font-weight: 700;\r\n  font-style: italic;\r\n}\r\n\r\nbody { font-family: \"Report Sans\"; }\r\n```\r\n\r\n## Supported HTML\r\n\r\nHtml2PdfSmith supports a document-oriented HTML subset:\r\n\r\n- `html`, `head`, `body`\r\n- `title`\r\n- `header` with `.brand-name`\r\n- `div`, `section`, `article`, `main`, `aside`\r\n- `h1` through `h6`\r\n- `p`, `address`, `blockquote`, `pre`, `code`\r\n- `strong`, `b`, `em`, `i`, `u`, `s`, `del`, `sup`, `sub`, `span`, `a`\r\n- `ul`, `ol`, `li`\r\n- `table`, `thead`, `tbody`, `tfoot`, `colgroup`, `col`, `tr`, `th`, `td`\r\n- `img`, `hr`, `br`\r\n- `chart` for built-in PDF-rendered charts: bar, horizontal-bar, stacked-bar, line, area, sparkline, pie, donut, gauge, radial, radial-stacked, and radar\r\n- `link rel=\"stylesheet\"`, `style`\r\n- text nodes\r\n\r\nUnsupported elements are traversed when possible. Unsupported CSS is ignored rather than failing the render.\r\n\r\n## Supported CSS\r\n\r\nThe CSS support is intentionally pragmatic:\r\n\r\n- selector support: tag, class, id, combined simple selectors, and descendant selectors such as `table td`\r\n- print media support through `@media print` and `@media all`\r\n- `font-family` for registered, bundled, and Google Fonts\r\n- `font-size`\r\n- `font-weight`\r\n- `font-style: italic`\r\n- `color`\r\n- `display: inline-block` and `display: inline-flex` for inline spans/chips\r\n- `display: grid` for simple block grids\r\n- `grid-template-columns`, including fixed lengths, percentages, `fr`, and `repeat(2, 1fr)`\r\n- `gap`, `row-gap`, and `column-gap`\r\n- `background-color`\r\n- `background-image: url(...)`\r\n- `background-size: cover`, `background-size: contain`, `background-size: auto`, and explicit sizes such as `32px 32px`\r\n- `background-position` keywords such as `center center`, `left top`, `right bottom`\r\n- `background-repeat: no-repeat`, `repeat`, `repeat-x`, `repeat-y`\r\n- `text-align`\r\n- `text-transform: uppercase`, `lowercase`, `capitalize`\r\n- `vertical-align: top`, `vertical-align: middle`, `vertical-align: bottom` for table cells\r\n- `vertical-align: super` and `vertical-align: sub` for inline text\r\n- `baseline-shift` for inline text, including `super`, `sub`, percentages, and lengths\r\n- `margin-top`\r\n- `margin-bottom`\r\n- `margin`, `margin-left`, `margin-right`\r\n- `padding`, `padding-top`, `padding-right`, `padding-bottom`, `padding-left`\r\n- `border`, `border-width`, `border-color`\r\n- `border-style: solid`, `border-style: dashed`, `border-style: dotted`, `border-style: none`\r\n- `border-top`, `border-right`, `border-bottom`, `border-left`\r\n- `border-*-width`, `border-*-style`, `border-*-color`\r\n- `line-height`\r\n- `text-decoration`\r\n- `border-collapse: collapse`\r\n- `table-layout: fixed`\r\n- `table-layout: auto` with content-based column width estimation\r\n- `colgroup` / `col style=\"width: ...\"` for table column widths\r\n- `width`, `height` for images and tables\r\n- `height`, `min-height` for table rows and cells\r\n- `height`, `width`, `margin`, `padding`, `border`, `border-radius`, `background-color`, `box-shadow`, `font-size`, and `color` for `<chart>` blocks\r\n- `border-radius` for text boxes and table cells, including four-value shorthand and `border-*-radius`\r\n- `padding`, `border`, `border-radius`, and `background-color` for inline `span` badges/chips\r\n- `box-shadow` with multiple comma-separated layers, blur, spread, negative spread, `none`, and basic `inset`\r\n- `object-fit: contain`, `object-fit: cover`, `object-fit: fill` for images in table cells\r\n- `object-position` keywords such as `left top`, `center center`, `right bottom`\r\n- `opacity` for images\r\n- `transform` and `-webkit-transform` for images: `rotate`, `scale`, `scaleX`, `scaleY`, `translate`, `translateX`, `translateY`\r\n- `transform-origin` and `-webkit-transform-origin` for image transforms\r\n- `display: none`\r\n- `visibility: hidden`\r\n- bounded rich-cell `position: relative` containers and `position: absolute` children with `top`, `right`, `bottom`, `left`\r\n- `overflow: hidden` for rounded/clipped boxes and table-cell content\r\n- `page-break-before`, `page-break-after`, `break-before`, `break-after`\r\n- CSS `@page { size: A4 landscape; margin: 8mm }`\r\n- CSS `@font-face { font-family: ...; src: url(...) }` for custom fonts loaded from external stylesheets\r\n- `overflow-wrap: break-word`, `overflow-wrap: anywhere`, `word-break: break-word`, `word-break: break-all`\r\n- `white-space: nowrap`, `white-space: pre-line`, `white-space: pre-wrap`\r\n- `text-overflow: ellipsis` with `white-space: nowrap`\r\n- `thead { display: table-header-group }` for repeated table headers on page breaks\r\n\r\nOut of scope for now:\r\n\r\n- arbitrary web pages\r\n- JavaScript execution\r\n- full Flexbox layout\r\n- full browser-compatible CSS Grid; only the lightweight document grid described above is supported\r\n- general fixed/absolute page positioning; only bounded rich-cell absolute badges are supported\r\n- CSS animations and browser visual effects\r\n- full browser-compatible cascade and layout\r\n\r\n## Paged Documents\r\n\r\nHtml2PdfSmith supports a practical subset of CSS paged media:\r\n\r\n```css\r\n@page {\r\n  size: A4 landscape;\r\n  margin: 8mm;\r\n}\r\n```\r\n\r\nExplicit API options still win when both are present:\r\n\r\n```ts\r\nawait renderHtmlToPdfDetailed({\r\n  html,\r\n  page: { size: \"A4\", orientation: \"landscape\", marginMm: 8 },\r\n});\r\n```\r\n\r\nTable headers can repeat on page breaks through API options or CSS:\r\n\r\n```ts\r\nawait renderHtmlToPdfDetailed({\n  html,\n  tableHeaderRepeat: \"auto\",\n  table: { rowspanPagination: \"avoid\", cellPagination: \"text\" },\n});\n```\n\r\n```css\r\nthead {\n  display: table-header-group;\n}\n```\n\n`table.cellPagination: \"text\"` lets an oversized row continue across pages by splitting wrapped plain text and inline-styled cell content line by line. Each high cell keeps its own continuation cursor, so two long cells in one row can advance independently while short neighboring cells preserve the grid, background, and borders as empty continuation cells. `cellPagination: \"rich-text\"` also paginates structural text inside rich cells, including paragraph/heading text nested in boxes, while preserving inline styles. Image, positioned, and fixed-height rich blocks are treated as atomic blocks: when they fit on a fresh page they are moved whole instead of being split; when they cannot fit, the renderer emits `table_cell_pagination_rich_content_unsupported` / `table_cell_pagination_clipped_block` and uses the deterministic clipped fallback.\n\nFor dense production comparison tables, use table presets instead of repeating application-level CSS:\n\n```ts\nawait renderHtmlToPdfDetailed({\n  html,\n  page: { size: \"A4\", orientation: \"landscape\", marginMm: 8 },\n  tableHeaderRepeat: \"auto\",\n  table: {\n    preset: \"dense-comparison\",\n  },\n  text: { overflowWrap: \"break-word\" },\n});\n```\n\nThe comparison presets are ordinary defaults: `comparison`, `compact-comparison`, and `dense-comparison` set page-width fitting, optical middle alignment, centered generated value columns, left-aligned first column, and text cell pagination. Explicit table options override preset values, and CSS on rows/cells still wins over generated defaults.\n\nFor exact generated column control, pass weights:\n\n```ts\nawait renderHtmlToPdfDetailed({\n  html,\n  table: {\n    preset: \"dense-comparison\",\n    columnWeights: [1.8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],\n  },\n});\n```\n\n`density: \"normal\"` preserves defaults. `compact` and `dense` reduce only generated table font sizes, padding, and default line-height; explicit CSS `padding`, `font-size`, `line-height`, `text-align`, and `colgroup` widths continue to win. `verticalAlignMode: \"optical\"` applies optical text metrics only to table-cell `vertical-align: middle`; `top` and `bottom` remain layout-based.\n\nFor rowspan groups, `cellPagination` keeps the conservative default behavior under `rowspanPagination: \"avoid\"`. With `rowspanPagination: \"split\"`, both rows that start an owner `rowspan > 1` text cell and rows that contain rowspan placeholders can paginate oversized text fragments while preserving repeated cell chrome and deterministic borders. Non-text atomic rich content inside a rowspan still follows the whole-block fallback rules above.\n\nLong unspaced tokens can be wrapped instead of clipped:\n\r\n```ts\r\nawait renderHtmlToPdfDetailed({\r\n  html,\r\n  text: { overflowWrap: \"break-word\" },\r\n});\r\n```\r\n\r\n```css\r\ntd {\r\n  overflow-wrap: anywhere;\r\n}\r\n```\r\n\r\nTall table cells can align content horizontally and vertically:\r\n\r\n```css\r\ntd.logo {\r\n  height: 80px;\r\n  text-align: center;\r\n  vertical-align: middle;\r\n}\r\n\r\ntd.logo img {\r\n  width: 42px;\r\n  height: 42px;\r\n  object-fit: contain;\r\n  object-position: center center;\r\n}\r\n```\r\n\r\nImages can be transformed without relying on a browser engine:\r\n\r\n```css\r\ntd.mirror img {\r\n  transform: scaleX(-1);\r\n  transform-origin: center center;\r\n}\r\n\r\ntd.apple-template img {\r\n  -webkit-transform: rotate(-18deg) scale(1.1);\r\n  -webkit-transform-origin: center center;\r\n  opacity: 0.65;\r\n}\r\n```\r\n\r\nThe `-webkit-*` aliases are parsed for Safari/Apple-authored templates, but the render path is the same cross-platform PDF transform engine on Windows, Linux, macOS, and Bun runtimes.\r\n\r\nTables can use fixed column widths and text overflow controls:\r\n\r\n```html\r\n<table>\r\n  <colgroup>\r\n    <col style=\"width: 90px\">\r\n    <col style=\"width: 180px\">\r\n    <col style=\"width: 35%\">\r\n    <col>\r\n  </colgroup>\r\n  ...\r\n</table>\r\n```\r\n\r\n```css\r\ntable {\r\n  table-layout: fixed;\r\n}\r\n\r\ntd.vin {\r\n  white-space: nowrap;\r\n}\r\n\r\ntd.title {\r\n  white-space: nowrap;\r\n  overflow: hidden;\r\n  text-overflow: ellipsis;\r\n}\r\n\r\ntd.custom-border {\r\n  border-left: 3px solid #2563eb;\r\n  border-right: 2px dashed #d97706;\r\n  border-bottom: 2px dotted #059669;\r\n}\r\n```\r\n\r\nCells and document boxes can use lightweight visual styling:\r\n\r\n```css\r\n.card {\r\n  padding: 12px 16px;\r\n  border-radius: 8px;\r\n  background-color: #ffffff;\r\n  background-image: url(\"./pattern.svg\");\r\n  background-size: 48px 48px;\r\n  background-repeat: repeat;\r\n  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.22);\r\n  text-transform: capitalize;\r\n}\r\n\r\ntd.status {\r\n  border-radius: 6px;\r\n  background-color: #dcfce7;\r\n  text-transform: uppercase;\r\n}\r\n```\r\n\r\nFor merged table cells, the renderer groups rows connected by `rowspan` and keeps that group on one page whenever it fits on a fresh page. A section row immediately before a rowspan group, such as `<tr><td colspan=\"5\">Section</td></tr>`, is kept with that group too. If the merged group is taller than a fresh page, Html2PdfSmith renders it sequentially and emits a warning instead of silently hiding the edge case.\r\n\r\nWide tables can be split horizontally without using a browser:\r\n\r\n```ts\r\nawait renderHtmlToPdfDetailed({\r\n  html,\r\n  tableHeaderRepeat: \"auto\",\r\n  table: {\r\n    horizontalPagination: \"always\",\r\n    horizontalPageColumns: 5,\r\n    repeatColumns: 2,\r\n    rowspanPagination: \"avoid\",\r\n  },\r\n});\r\n```\r\n\r\nWith this mode Html2PdfSmith renders the table as multiple column slices. The first `repeatColumns` source columns are pinned on every slice, `thead` is repeated on every vertical page, rowspans keep their pagination behavior inside each slice, and body colspans push the horizontal break forward when they can fit in the current slice. If a body `colspan` is still too wide and crosses a horizontal slice boundary, the renderer clips it to the visible columns and emits a warning so the caller can decide whether the source table should be adjusted.\r\n\r\n## Charts\r\n\r\nCharts are rendered directly into the PDF stream. They do not require Canvas, SVG generation, JavaScript execution, or a browser:\r\n\r\n```html\r\n<chart\r\n  type=\"bar\"\r\n  title=\"Memory profile\"\r\n  subtitle=\"Warm process, render delta, and peak RSS\"\r\n  unit=\" MB\"\r\n  data-labels=\"Warm RSS,Render Delta,Peak RSS\"\r\n  data-values=\"250,116,366\"\r\n  data-colors=\"#334155,#2563eb,#0f766e\">\r\n</chart>\r\n```\r\n\r\nSupported chart types are `bar`, `horizontal-bar`, `stacked-bar`, `line`, `area`, `sparkline`, `pie`, `donut`, `gauge`, `radial`, `radial-stacked`, and `radar`. Chart blocks accept normal document styling such as `width`, `height`, `margin`, `padding`, `border`, `border-radius`, `background-color`, `box-shadow`, `font-size`, and `color`.\r\n\r\nBuilt-in chart themes are available through `data-theme`: `default`, `aurora`, `emerald`, `graphite`, `royal`, `sunset`, and `ocean`. Explicit `data-colors` always override the theme palette.\r\n\r\nLine, area and sparkline charts support multiple series through `data-series`:\r\n\r\n```html\r\n<chart\r\n  type=\"area\"\r\n  title=\"Traffic\"\r\n  data-theme=\"ocean\"\r\n  data-labels=\"Apr 5,Apr 10,Apr 15,Apr 20\"\r\n  data-series-labels=\"Desktop,Mobile\"\r\n  data-series=\"42,38,45,51|24,28,26,35\">\r\n</chart>\r\n```\r\n\r\nHorizontal bars, stacked bars, pie charts, gauges and sparklines use the same declarative data attributes:\r\n\r\n```html\r\n<chart\r\n  type=\"horizontal-bar\"\r\n  title=\"Feature score\"\r\n  unit=\"%\"\r\n  data-max=\"100\"\r\n  data-labels=\"Tables,Grid,Fonts,SVG\"\r\n  data-values=\"94,78,86,74\"\r\n  data-colors=\"#2563eb,#0f766e,#f59e0b,#7c3aed\">\r\n</chart>\r\n\r\n<chart\r\n  type=\"stacked-bar\"\r\n  title=\"Memory classes\"\r\n  data-labels=\"Warm,Measured,Final\"\r\n  data-series-labels=\"Heap,External,Buffers\"\r\n  data-series=\"34,38,39|18,21,19|2,3,2\"\r\n  data-colors=\"#2563eb,#93c5fd,#0f766e\">\r\n</chart>\r\n\r\n<chart\r\n  type=\"sparkline\"\r\n  title=\"Render trend\"\r\n  unit=\" ms\"\r\n  data-theme=\"royal\"\r\n  data-series-labels=\"Current,Previous\"\r\n  data-series=\"95,88,93,84,87,81|101,97,96,89,91,86\">\r\n</chart>\r\n```\r\n\r\nRadial charts support `data-max` for the scale and `data-center` for the centered KPI value:\r\n\r\n```html\r\n<chart\r\n  type=\"radial\"\r\n  title=\"Radial Chart\"\r\n  unit=\"%\"\r\n  data-max=\"100\"\r\n  data-center=\"84\"\r\n  data-labels=\"Tables,Fonts,SVG,Charts\"\r\n  data-values=\"92,86,74,88\"\r\n  data-colors=\"#2563eb,#0f766e,#f59e0b,#7c3aed\">\r\n</chart>\r\n```\r\n\r\nStacked radial gauges render segmented semicircle progress:\r\n\r\n```html\r\n<chart\r\n  type=\"radial-stacked\"\r\n  title=\"Runtime memory mix\"\r\n  unit=\" MB\"\r\n  data-labels=\"Heap,External,Buffers\"\r\n  data-values=\"38,19,2\"\r\n  data-colors=\"#2563eb,#93c5fd,#0f766e\">\r\n</chart>\r\n```\r\n\r\nRadar charts support multiple series through `data-series` and `data-series-labels`:\r\n\r\n```html\r\n<chart\r\n  type=\"radar\"\r\n  title=\"Radar Chart\"\r\n  data-max=\"100\"\r\n  data-labels=\"Layout,Tables,Fonts,SVG,Charts,Memory\"\r\n  data-series-labels=\"Desktop,Mobile\"\r\n  data-series=\"84,92,88,72,90,76|68,78,82,64,74,91\"\r\n  data-colors=\"#93c5fd,#2563eb\">\r\n</chart>\r\n```\r\n\r\nCharts and other block content can be placed in a lightweight CSS Grid:\r\n\r\n```html\r\n<div class=\"chart-grid\">\r\n  <chart type=\"line\" title=\"Trend\" data-labels=\"A,B,C\" data-values=\"10,18,14\"></chart>\r\n  <chart type=\"donut\" title=\"Mix\" data-labels=\"A,B,C\" data-values=\"34,18,2\"></chart>\r\n</div>\r\n```\r\n\r\n```css\r\n.chart-grid {\r\n  display: grid;\r\n  grid-template-columns: 1fr 1fr;\r\n  gap: 12px;\r\n}\r\n```\r\n\r\nFor TypeScript callers that build report HTML from data, `createChartDashboardHtml` generates a reusable chart dashboard fragment:\r\n\r\n```ts\r\nimport { createChartDashboardHtml, renderHtmlToPdf } from \"html2pdfsmith\";\r\n\r\nconst dashboard = createChartDashboardHtml({\r\n  title: \"Benchmark Intelligence\",\r\n  lead: \"Memory, throughput, density and budget in one PDF-ready dashboard.\",\r\n  columns: 3,\r\n  charts: [\r\n    {\r\n      type: \"bar\",\r\n      title: \"Memory envelope\",\r\n      subtitle: \"Warm, render delta and peak RSS\",\r\n      unit: \" MB\",\r\n      theme: \"ocean\",\r\n      labels: [\"Warm\", \"Render\", \"Peak\"],\r\n      values: [254, 105, 360],\r\n    },\r\n    {\r\n      type: \"donut\",\r\n      title: \"Runtime split\",\r\n      subtitle: \"Heap, external and buffers\",\r\n      unit: \" MB\",\r\n      theme: \"emerald\",\r\n      labels: [\"Heap\", \"External\", \"Buffers\"],\r\n      values: [36, 19, 2],\r\n    },\r\n  ],\r\n});\r\n\r\nconst pdf = await renderHtmlToPdf({\r\n  html: `<!doctype html><html><body>${dashboard}</body></html>`,\r\n});\r\n```\r\n\r\n## Additional Exports\r\n\r\nBesides the main `renderHtmlToPdf` and `renderHtmlToPdfDetailed` functions, the library exports several utilities:\r\n\r\n```ts\r\nimport {\r\n  // Legacy compat wrappers (accept htmlContent instead of html)\r\n  convertHtmlToPdf,\r\n  convertHtmlToPdfDetailed,\r\n\r\n  // HTML parser - returns the structured ParsedDocument\r\n  parsePrintableHtml,\r\n\r\n  // Dashboard HTML helper for reusable chart grids\r\n  createChartDashboardHtml,\r\n\r\n  // Google Fonts utilities\n  resolveGoogleFont,\n  isGoogleFontCached,\n  getGoogleFontCacheDir,\n  loadFontManifest,\n  fontOptionsFromManifest,\n\r\n  // PDF protection (requires qpdf in PATH or a custom path)\r\n  protectPdfWithQpdf,\r\n\r\n  // Font resolution\r\n  resolveFontPaths,\r\n\r\n  // Layout helpers\r\n  calculateFontScale,\r\n  calculateHeaderCellHeight,\r\n  calculatePaddingScale,\r\n  determineOrientation,\r\n} from \"html2pdfsmith\";\r\n```\r\n\r\nAll TypeScript types are also exported for consumers:\r\n\r\n```ts\r\nimport type {\r\n  RenderHtmlToPdfOptions,\r\n  RenderHtmlToPdfResult,\r\n  RenderWarning,\r\n  PdfResourcePolicy,\r\n  PdfFontOptions,\r\n  PdfPageOptions,\r\n  PdfTextOptions,\n  PdfTableOptions,\n  PdfBundledFontFace,\n  PdfFallbackFontPath,\n  PdfFontManifest,\n  PdfFontManifestFace,\n  LoadFontManifestOptions,\n  ParsedDocument,\n  ParsedTable,\r\n  ParsedRow,\r\n  ParsedCell,\r\n  ChartDashboardCard,\r\n  ChartDashboardOptions,\r\n} from \"html2pdfsmith\";\r\n```\r\n\r\n## Fonts\r\n\r\nFor Latin-only documents, the default built-in PDF fonts are the lightest option.\r\n\r\nFor production documents, prefer bundled fonts, explicit fonts, or Google Fonts.\r\n\r\nBundled fonts are best when production must render offline without first-run network downloads:\r\n\r\n```bash\r\nbun add @html2pdfsmith/fonts\r\n```\r\n\r\n```ts\r\nimport { renderHtmlToPdfDetailed } from \"html2pdfsmith\";\r\nimport { bundledFonts } from \"@html2pdfsmith/fonts\";\r\n\r\nconst result = await renderHtmlToPdfDetailed({\r\n  html,\r\n  font: {\r\n    bundled: bundledFonts.openSans,\r\n    bundledFonts: [\r\n      bundledFonts.ubuntu,\r\n      bundledFonts.anton,\r\n      bundledFonts.merriweather,\r\n      bundledFonts.notoSans,\r\n    ],\r\n  },\r\n});\r\n```\r\n\r\nThen CSS can select those families:\r\n\r\n```css\r\nh1 { font-family: \"Anton\"; }\r\ntd.note { font-family: \"Ubuntu\"; font-style: italic; }\r\ntd.body { font-family: \"Open Sans\"; }\r\n```\r\n\r\nThe optional package currently includes Open Sans, Ubuntu, Anton, Roboto Condensed, Merriweather, and Noto Sans. It lives outside the core renderer so the main package stays small.\n\nYou can also install Google Fonts into your own project directory with the package CLI. This is useful when production must run offline, CI should be deterministic, or you want to commit reviewed font assets instead of relying on first-render downloads:\n\n```bash\nnpx html2pdfsmith fonts install \"Open Sans\" \"Anton\" \"Noto Sans SC\" \\\n  --out ./assets/pdf-fonts \\\n  --default \"Open Sans\" \\\n  --fallback \"Noto Sans SC\"\n```\n\nThe command downloads only the requested families. Families named in `--default` or `--fallback` are installed too, so fallback configuration cannot point at a missing local font by accident. It copies the regular, bold, italic, and bold italic files into `./assets/pdf-fonts`, and writes:\n\n- `html2pdfsmith-fonts.json` - manifest for the renderer\n- `fonts.css` - optional `@font-face` declarations\n- `README.md` - short usage and licensing note\n\nUse the manifest at runtime:\n\n```ts\nimport { loadFontManifest, renderHtmlToPdfDetailed } from \"html2pdfsmith\";\n\nconst result = await renderHtmlToPdfDetailed({\n  html,\n  font: await loadFontManifest(\"./assets/pdf-fonts/html2pdfsmith-fonts.json\"),\n  resourcePolicy: { allowHttp: false },\n});\n```\n\nLocal installs are optional. Html2PdfSmith does not ship Google font files in the main package and does not create project font directories unless you run the CLI command.\n\nGoogle Fonts are useful when you do not want to vendor fonts:\n\r\n```ts\r\nconst pdf = await renderHtmlToPdf({\r\n  html,\r\n  font: { googleFont: \"Inter\" },\r\n});\r\n```\r\n\r\nMultiple Google Fonts can be preloaded and selected inside tables with CSS:\n\r\n```ts\r\nconst result = await renderHtmlToPdfDetailed({\r\n  html,\r\n  font: {\r\n    googleFont: \"Inter\",\r\n    googleFonts: [\"Roboto\", \"Lato\", \"Merriweather\"],\r\n  },\r\n});\r\n```\r\n\r\n```css\r\nth { font-family: \"Inter\"; font-weight: 700; text-align: center; }\r\ntd.left { font-family: \"Roboto\"; text-align: left; padding-left: 14px; }\r\ntd.center { font-family: \"Lato\"; text-align: center; font-size: 11pt; }\r\ntd.money { font-family: \"Merriweather\"; text-align: right; font-weight: 700; }\n```\n\nTables, flow blocks, inline spans, charts, watermarks, and page templates resolve CSS `font-family` through the same lightweight font resolver. The resolver respects the CSS stack, `font-weight`, and `font-style`, then falls back to the default regular/bold font when a family is unknown.\n\nFor branded and multilingual PDFs, register only the families you need:\n\n```ts\nconst result = await renderHtmlToPdfDetailed({\n  html,\n  font: {\n    googleFont: \"Open Sans\",\n    googleFonts: [\"Anton\", \"Noto Sans SC\"],\n    fallbackFonts: [\"Noto Sans SC\"],\n  },\n});\n```\n\n```css\nbody {\n  font-family: \"Open Sans\", \"Noto Sans SC\", sans-serif;\n}\n\n.autocore-brand {\n  font-family: \"Anton\", sans-serif;\n}\n\ntable {\n  font-family: \"Open Sans\", \"Noto Sans SC\", sans-serif;\n}\n```\n\nOpen Sans does not cover CJK text. When mixed text such as `Vehicle report / 车辆报告` is rendered with the stack above, Html2PdfSmith checks font coverage and uses the first configured fallback family that can cover the text. The current implementation performs coverage-aware whole-text fallback per inline segment/cell; it is intentionally small and keeps the path open for finer per-character font runs later.\n\nLocal fallback fonts can be registered without Google Fonts:\n\n```ts\nawait renderHtmlToPdfDetailed({\n  html,\n  font: {\n    regularPath: \"/fonts/OpenSans-Regular.ttf\",\n    boldPath: \"/fonts/OpenSans-Bold.ttf\",\n    fallbackFontPaths: [\n      {\n        family: \"Noto Sans SC\",\n        regularPath: \"/fonts/NotoSansSC-Regular.otf\",\n        boldPath: \"/fonts/NotoSansSC-Bold.otf\",\n      },\n    ],\n  },\n});\n```\n\nRunnable example:\n\n```bash\nbun run example:font-family-fallback\n```\n\nGoogle Fonts are downloaded on first use and cached to disk. Html2PdfSmith caches regular, bold, italic, and bold italic variants when the family provides them:\n\r\n- Windows: `%LOCALAPPDATA%/html2pdfsmith/fonts`\r\n- Linux/macOS: `$XDG_CACHE_HOME/html2pdfsmith/fonts` or `~/.cache/html2pdfsmith/fonts`\r\n- Override: set `HTML2PDFSMITH_CACHE_DIR=/path/to/cache`\r\n\r\nYou can also pass explicit font files:\r\n\r\n```ts\r\nconst pdf = await renderHtmlToPdf({\r\n  html,\r\n  font: {\r\n    regularPath: \"/fonts/NotoSans-Regular.ttf\",\r\n    boldPath: \"/fonts/NotoSans-Bold.ttf\",\r\n  },\r\n});\r\n```\r\n\r\nFor low-memory production targets, avoid auto-discovering large CJK system fonts unless you need them.\r\n\r\n## Performance\r\n\r\nCurrent local benchmark on Windows/Bun for a 10-column, 100-row table with a text watermark:\r\n\r\n```json\r\n{\r\n  \"pages\": 6,\r\n  \"ms\": 192,\r\n  \"deltaPeakRssMb\": 63.2\r\n}\r\n```\r\n\r\nRun it locally:\r\n\r\n```bash\r\nbun run bench -- 10 100 --watermark\r\n```\r\n\r\nFor a heavier visual benchmark, generate a styled 15-page HTML table document with SVGs, rich cells, rounded badges, sub/sup text, baseline shifts, repeated page chrome, a watermark, and an embedded final metrics page:\r\n\r\n```bash\r\nbun run bench:internal\r\n```\r\n\r\nRecent local `bench:internal` run:\r\n\r\n```json\r\n{\r\n  \"pages\": 16,\r\n  \"measuredRenderMs\": 743,\r\n  \"measuredDeltaPeakRssMb\": 102.3,\r\n  \"finalRenderMs\": 638,\r\n  \"finalDeltaPeakRssMb\": 64.8\r\n}\r\n```\r\n\r\nThe internal benchmark reports memory in two ways:\r\n\r\n- `peakRssMb`: total RSS of the current Bun process at peak.\r\n- `deltaPeakRssMb`: additional RSS used during this render after the process is already warm.\r\n\r\nThis matters in production because Html2PdfSmith does not launch a separate Chromium process. Browser-based renderers must count both the server process and the browser process.\r\n\r\n## Package Contents\r\n\r\nThe published npm package is intentionally small. The package includes the built `dist/` entrypoint and CLI, README, changelog, license, and the README logo. It does not ship examples, generated PDFs, visual regression PNGs, or local benchmark output.\n\r\nCheck the package before publishing:\r\n\r\n```bash\r\nnpm pack --dry-run\r\n```\r\n\r\nRecent dry run:\r\n\r\n```text\r\npackage size: 74.0 kB\nunpacked size: 312.9 kB\ntotal files: 10\n```\r\n\r\n## Development\r\n\r\n```bash\r\nbun install\r\nbun run typecheck\r\nbunx tsc --noEmit --noUnusedLocals --noUnusedParameters\r\nbun run build\r\nbun run smoke\r\nbun run visual:update\r\nbun run visual\r\nnpm pack --dry-run\r\n```\r\n\r\nExample scripts write generated PDFs to `tmp/pdfs/` so the `examples/` folder stays source-only:\r\n\r\n```bash\r\nbun run example\r\nbun run example:css-table\r\nbun run example:fonts\r\nbun run example:bundled-fonts\r\nbun run example:table-showcase\r\nbun run example:resources\nbun run example:font-face\nbun run example:font-family-fallback\nbun run example:page-wrap-repeat\nbun run example:merged-table\r\nbun run example:wide-table\r\nbun run example:alignment\r\nbun run example:transform\r\nbun run example:layout\r\nbun run example:visual-css\r\nbun run example:production-layout\r\nbun run example:inline-badges\r\nbun run example:error-handling\r\nbun run example:comparison-showcase\r\nbun run example:html-file\r\nbun run example:document\r\nbun run bench -- 10 100 --watermark\r\nbun run bench:internal\r\n```\r\n\r\nVisual regression tests require Poppler's `pdftoppm` command in `PATH`. Use `bun run visual:update` to refresh PNG baselines in `examples/visual-baselines/`, then `bun run visual` to compare current renders against them. Current renders and diff PNGs are written under `tmp/visual/`.\r\n\r\nThe GitHub Actions workflow runs the same guardrail set on Windows: typecheck, strict unused check, build, smoke, visual regression with Poppler, and `npm pack --dry-run`.\r\n\r\n## License\r\n\r\nMIT\r\n","readmeFilename":"README.md"}