{"_id":"@eleven-code8/eleven-html-to-pdf","_rev":"2-bdc454767dfa7eb0adedecd72684d8a5","name":"@eleven-code8/eleven-html-to-pdf","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@eleven-code8/eleven-html-to-pdf","version":"0.1.0","keywords":[],"author":"","license":"ISC","_id":"@eleven-code8/eleven-html-to-pdf@0.1.0","maintainers":[{"name":"eleven--code8","email":"elevencode8@gmail.com"}],"bin":{"eleven-html-to-pdf":"dist/cli.js"},"dist":{"shasum":"9ae47ae6a6aa8d4bab5633a62c31c2ebfad6d9e4","tarball":"https://registry.npmjs.org/@eleven-code8/eleven-html-to-pdf/-/eleven-html-to-pdf-0.1.0.tgz","fileCount":22,"integrity":"sha512-24ES8yToHNg4JFsTOheddX+9fB9NR+v91AeVWzLV8CHIG8fNoipV0vG+RiclPmQqJAiKxXraWT4to8Z2aMvdyg==","signatures":[{"sig":"MEUCIQClH2l09ZERq4lFF9XEE/LYQiQgkyLIDf+tjj6gGJPX5QIgVhQ5r/TZn2VZwqII/e7957WTEAE9epDWJBpvdc9w040=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64553},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","scripts":{"cli":"ts-node src/cli.ts","dev":"ts-node src/index.ts","test":"node -e \"console.log('no tests yet')\"","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"eleven--code8","email":"elevencode8@gmail.com"},"_npmVersion":"11.8.0","description":"HTML/CSS to PDF renderer (MVP)","directories":{"example":"examples"},"_nodeVersion":"24.13.0","dependencies":{"parse5":"^8.0.0","pdfkit":"^0.17.2","postcss":"^8.5.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.4.5","@types/node":"^22.13.5","@types/pdfkit":"^0.13.9"},"_npmOperationalInternal":{"tmp":"tmp/eleven-html-to-pdf_0.1.0_1770400785917_0.2345041987484946","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@eleven-code8/eleven-html-to-pdf","version":"0.1.1","description":"HTML/CSS to PDF renderer (MVP)","main":"dist/index.js","types":"dist/index.d.ts","type":"commonjs","scripts":{"build":"tsc -p tsconfig.json","dev":"ts-node src/index.ts","cli":"ts-node src/cli.ts","test":"node -e \"console.log('no tests yet')\""},"bin":{"eleven-html-to-pdf":"dist/cli.js"},"dependencies":{"parse5":"^8.0.0","pdfkit":"^0.17.2","postcss":"^8.5.6"},"devDependencies":{"@types/node":"^22.13.5","@types/pdfkit":"^0.13.9","ts-node":"^10.9.2","typescript":"^5.4.5"},"directories":{"example":"examples"},"keywords":[],"author":"","license":"ISC","publishConfig":{"access":"public"},"_id":"@eleven-code8/eleven-html-to-pdf@0.1.1","_nodeVersion":"24.13.0","_npmVersion":"11.8.0","dist":{"integrity":"sha512-07ckkuDc7eRPXo418AVPI0azMNf2q8rBkw4+MKq9/2oz051/8BDDzkDXKTFKgMv5XlJU5F1YJpHCb34peSltTg==","shasum":"afa6c6235fd2d1d91fd435ca8e40c14b542bd00b","tarball":"https://registry.npmjs.org/@eleven-code8/eleven-html-to-pdf/-/eleven-html-to-pdf-0.1.1.tgz","fileCount":22,"unpackedSize":64553,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICzrQPuNnFo95jTolJjXS0GsptDttCEjPZbBIlSAvja8AiBZ/30i17e2a5CGX/sITgPog9MI2J4o+POKzuimfrRopA=="}]},"_npmUser":{"name":"eleven--code8","email":"elevencode8@gmail.com"},"maintainers":[{"name":"eleven--code8","email":"elevencode8@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eleven-html-to-pdf_0.1.1_1770401099102_0.10331364776967966"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-06T17:59:45.854Z","modified":"2026-02-06T18:04:59.454Z","0.1.0":"2026-02-06T17:59:46.059Z","0.1.1":"2026-02-06T18:04:59.322Z"},"license":"ISC","keywords":[],"description":"HTML/CSS to PDF renderer (MVP)","maintainers":[{"name":"eleven--code8","email":"elevencode8@gmail.com"}],"readme":"# pdf-eleven-ts\n\nHTML/CSS para PDF vetorial (MVP) em Node.js + TypeScript.\n\n## Recursos do MVP\n- HTML básico: `div`, `span`, `p`, `strong`, `em`, `h1–h3`, `ul/ol/li`, `br`, `img` (placeholder)\n- CSS básico: `font-*`, `color`, `background-color`, `margin`, `padding`, `width`, `height`, `text-align`, `line-height`\n- Layout simples: fluxo vertical com inline básico\n- Saída: arquivo `.pdf` e `Buffer`\n\n## Instalação (local)\n```bash\nnpm install\n```\n\n## Build\n```bash\nnpm run build\n```\n\n## Uso via API (Node.js)\n```ts\nimport { renderToPdfFile, renderToPdfBuffer } from \"pdf-eleven-ts\";\n\nconst html = `<h1>Hello</h1><p>Teste <strong>PDF</strong>.</p>`;\nconst css = `h1 { color: #3366cc; }`;\n\nawait renderToPdfFile(html, css, \"output.pdf\");\nconst buffer = await renderToPdfBuffer(html, css);\n```\n\n## Uso via CLI\nRodar em modo dev:\n```bash\nnpm run cli -- --html examples/example.html --css examples/example.css --out output.pdf\n```\n\nGerar buffer (stdout):\n```bash\nnpm run cli -- --html inline:<h1>Hello</h1> --buffer > out.pdf\n```\n\nApós build, usar como bin:\n```bash\nnpm run build\nnpx pdf-eleven --html examples/example.html --css examples/example.css --out output.pdf\n```\n\nAtalho na raiz (arquivos copiados):\n```bash\nnpx pdf-eleven --html example.html --css styles.css --out report.pdf\n```\n\n## Opções do CLI\n```bash\n# Tamanho de página predefinido\nnpx pdf-eleven --html example.html --css styles.css --size LETTER\n\n# Tamanho personalizado (pontos do PDF)\nnpx pdf-eleven --html example.html --css styles.css --page-width 500 --page-height 800\n\n# Margens\nnpx pdf-eleven --html example.html --css styles.css --margin 40\nnpx pdf-eleven --html example.html --css styles.css --margin 40,30,40,30\nnpx pdf-eleven --html example.html --css styles.css --margin 40 30 40 30\nnpx pdf-eleven --html example.html --css styles.css --margin 40 30\nnpx pdf-eleven --html example.html --css styles.css --margin 40 30 20\n\n# Saída em stdout\nnpx pdf-eleven --html example.html --css styles.css --out - > report.pdf\n```\n\n## Como instalar no seu projeto pessoal\nOpção A (local path):\n```bash\nnpm install ../pdf-eleven-ts\n```\n\nOpção B (link para desenvolvimento):\n```bash\nnpm link\n# no seu projeto:\nnpm link pdf-eleven-ts\n```\n\n## Guia completo de integração (outros projetos)\n\n### 1) Instalação (3 opções)\nLocal (path):\n```bash\nnpm install C:\\Users\\anton\\Github\\pdf-eleven-ts\\pdf-eleven-ts-0.1.0.tgz\n```\n\nLink para desenvolvimento:\n```bash\n# no pdf-eleven-ts\nnpm link\n# no seu projeto\nnpm link pdf-eleven-ts\n```\n\nMonorepo (workspace):\n```bash\n# no package.json do seu projeto\n{\n  \"dependencies\": {\n    \"pdf-eleven-ts\": \"workspace:*\"\n  }\n}\n```\n\n### 2) Uso via API (Node.js)\n```ts\nimport { renderToPdfFile, renderToPdfBuffer } from \"pdf-eleven-ts\";\n\nconst html = `\n  <h1>Relatório</h1>\n  <p>Texto <strong>forte</strong> e <em>itálico</em>.</p>\n`;\n\nconst css = `\n  h1 { color: #1b4f9c; margin-bottom: 12px; }\n  p { margin-bottom: 6px; }\n`;\n\nawait renderToPdfFile(html, css, \"relatorio.pdf\");\nconst buffer = await renderToPdfBuffer(html, css);\nconsole.log(\"Buffer size:\", buffer.length);\n```\n\n### 3) Uso via API (com HTML/CSS de arquivos)\n```ts\nimport fs from \"fs\";\nimport { renderToPdfFile } from \"pdf-eleven-ts\";\n\nconst html = fs.readFileSync(\"template.html\", \"utf8\");\nconst css = fs.readFileSync(\"styles.css\", \"utf8\");\n\nawait renderToPdfFile(html, css, \"saida.pdf\");\n```\n\n### 4) Uso via CLI (em outro projeto)\n```bash\nnpx pdf-eleven --html template.html --css styles.css --out saida.pdf\n```\n\n### 5) Como embutir em um serviço (ex.: API)\n```ts\nimport express from \"express\";\nimport { renderToPdfBuffer } from \"pdf-eleven-ts\";\n\nconst app = express();\napp.use(express.json({ limit: \"2mb\" }));\n\napp.post(\"/pdf\", async (req, res) => {\n  const html = req.body.html || \"\";\n  const css = req.body.css || \"\";\n  const buffer = await renderToPdfBuffer(html, css);\n  res.setHeader(\"Content-Type\", \"application/pdf\");\n  res.setHeader(\"Content-Disposition\", \"inline; filename=doc.pdf\");\n  res.send(buffer);\n});\n\napp.listen(3000);\n```\n\n### 6) Dicas de qualidade e performance\n- Reutilize CSS simples no MVP (evite layouts complexos por enquanto).\n- Prefira fontes padrão do PDF (Helvetica, Times, Courier) para evitar problemas.\n- Para documentos longos, gere PDF no servidor com filas e limite de concorrência.\n- Evite imagens grandes (no MVP ainda são placeholders).\n\n### 7) Problemas comuns\n- \"PDF vazio\": HTML sem conteúdo ou tudo com `display: none`.\n- Fonte não encontrada: use `font-family: Helvetica` no MVP.\n- Margens estranhas: passe `--margin` ou `options.margin`.\n\n## Exemplo de arquivo\n- `examples/example.html`\n- `examples/example.css`\n- `examples/example.ts`\n","readmeFilename":"README.md"}