V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
powersee
V2EX  ›  分享创造

bkhtmltopdf — 高性能 HTML 转 PDF 的程序

  •  
  •   powersee · 4 天前 · 1429 次点击

    bkhtmltopdf 的名称来源于 Blink HTML to PDF,其中 Blink 是 Chromium 的渲染引擎。

    由于 wkhtmltopdf 停止更新(我猜可能是 QtWebKit 的兼容问题),所以我开发了一个 bkhtmltopdf。它基于 Java + CEF 开发,提供两个版本:

    • 社区版( AGPL 协议):适合个人使用,但不支持无头模式。
    • 企业版:支持无头模式和更多特性,支持 Docker 部署,适合生产环境。

    bkhtmltopdf 通过 API 调用即可使用,启动后通过 HTTP 接口操作即可生成 PDF 。


    8 条回复    2025-10-07 21:40:24 +08:00
    explon
        1
    explon  
       4 天前
    Demo 改了 HTML 好像不会更新 PDF?
    powersee
        2
    powersee  
    OP
       4 天前 via iPhone
    @explon 按下 ctrl+s ,或者 command + s 就好了
    selca
        3
    selca  
       4 天前
    支持 echarts 之类的图表组件吗
    powersee
        4
    powersee  
    OP
       4 天前
    @selca 理论来说是支持的,因为底层是浏览器渲染。

    https://www.bkhtmltopdf.com/zh-CN/docs/api/html-to-pdf#manual 使用 `manual` 模式,在图表渲染完毕之后,再通知 `bkhtmltopdf` 取打印成 PDF 。
    bbbblue
        5
    bbbblue  
       3 天前
    之前看到过一个
    https://merchmindai.net/zh/tools/markdown-to-pdf
    应该是没用任何 js 的库
    因为他直接弹出浏览器的打印 pdf 🤣🤣🤣🤣🤣(这个需要用户交互 所以没法自动化用
    powersee
        6
    powersee  
    OP
       3 天前 via iPhone
    @bbbblue 看来可以集成一下 markdown to pdf 的功能
    laov2
        7
    laov2  
       3 天前
    和 playwright 比有啥优势
    powersee
        8
    powersee  
    OP
       3 天前 via iPhone
    @laov2 #7 playwright 是操作浏览器,而 bkhtmltopdf 是直接调用浏览器的 c++方法,后者有更高的性能。企业版集成了条码等功能,更适合 html to pdf 的业务场景。

    playwright 应该是基于浏览器的 debug 模式,总的来说性能比不上直接调用浏览器方法的。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2893 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 13:51 · PVG 21:51 · LAX 06:51 · JFK 09:51
    ♥ Do have faith in what you're doing.