html2pdf-browser
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

html2pdf-browser | 截屏并生成 pdf 文件

Take a screenshot and generate a PDF, solved the problem of SVG rendering and chinese text overlap.

截屏并生成 pdf, 解决了 svg 渲染和中文文本重叠问题

感谢 html2canvas, jspdf 库作者提供的工具, 这里主要对两个插件的能力进行封装以及解决使用阶段产生的问题.

Support

[TIP] 由于 pr 还未合并, 所以内置了一个从原始库中 fork 的 html2canvas@v1.4.1 依赖, 后续 pr 合并后, 会还原到官方库

  1. 支持在浏览器内生成, 不需要额外添加 node 服务层

  2. 解决 <svg><use href='#id'></svg> 引用 svg 方式无法被 html2canvas 渲染转化问题

    • 特定场景: 使用如 svg-sprite-loader 插件, 加载 svg 资源
  3. 解决 html2canvas 渲染 svg 时, 设置 position: absolute; 导致的渲染内容残缺.

  4. 解决中文文字换行重叠问题。(中文符号体积计算渲染空间错误)

usage

  1. install
yarn add html2pdf-browser
# or
npm install html2pdf-browser
  1. use demo

注: 默认 scale(html2canvas 老版本的 dpi 参数) 为 4

await html2pdf(`filename.pdf`, el)

methods

method desc
html2pdf 将 html 转化为 pdf, 并触发下载
html2canvas 将 html 转化为 canvas (对 html2canvas 库封装, 解决中文符号渲染和 svg 渲染问题)

FAQ

  1. 浏览器兼容性

    继承 html2canvasjspdf 库的支持情况, 大多数浏览器环境内没什么问题

  2. 中文文本渲染

    这里通过为 <body> 节点设置一个 0.0001px的字间距, 解决计算中文符号占用空间与实际渲染空间不一致问题.

Package Sidebar

Install

npm i html2pdf-browser

Weekly Downloads

3

Version

1.0.2

License

MIT

Unpacked Size

87.3 kB

Total Files

23

Last publish

Collaborators

  • halo-951