代码生成 PDF 有比较好的方案吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mkmoon
V2EX    问与答

代码生成 PDF 有比较好的方案吗

  •  
  •   mkmoon 2024-10-10 09:51:03 +08:00 via iPhone 3211 次点击
    这是一个创建于 367 天前的主题,其中的信息可能已经有所发展或是发生改变。
    求推荐一些易用的方案,或者图形化生成模版,js 或 python 都行,看过 jspdf 和 reportlab ,感觉用代码手搓排版和元素样式及定位太痛苦了
    30 条回复    2025-07-10 16:53:11 +08:00
    Saturn72
        1
    Saturn72  
       2024-10-10 10:00:51 +08:00
    生成 html 转 pdf
    ZENGQH
        2
    ZENGQH  
       2024-10-10 10:10:07 +08:00
    @Saturn72 +1 我司 pdf 一直都是画好 html 然后数据填充之后再生成
    l1xnan
        3
    l1xnan  
       2024-10-10 10:16:04 +08:00
    nodejs/python 调 typst 试试,我看 HN 上有人这样搞,typst 非常轻量没啥依赖,速度快,能搞复杂排版
    thoo61871
        4
    thoo61871  
       2024-10-10 10:18:15 +08:00
    我是 jspdf ,半手搓,先让 AI 来搓一次
    lovedebug
        5
    lovedebug  
       2024-10-10 10:18:48 +08:00   1
    html 渲染页面 + puppeteer 和 headless chrome 直接调用导出 pdf ,puppeteer 自身提供了一些 CSS 定制 pdf 整体样式,接受自动页码,目录,页眉页脚。
    w292614191
        6
    w292614191  
       2024-10-10 10:39:24 +08:00
    LibreOffice + JodConverter 将 Excel 转 DPF 完美,还支持打印模式。
    wuyiccc
        7
    wuyiccc  
       2024-10-10 10:43:13 +08:00
    reactpdf , 我现在就在用,支持纯前端代码编写预览,或者 node 端部署 stream 流形式下载
    nzynzynzy
        8
    nzynzynzy  
       2024-10-10 10:44:57 +08:00
    freemarker ? netsuite 被迫用这个
    不过我猜你要找的是 WYSIWYG ,https://editorjs.io/ ,这个我打算抽空研究的现在还没时间,不过你可以先看看
    iyiluo
        9
    iyiluo  
       2024-10-10 10:51:35 +08:00
    jasper ,这个是先用软件画好模板,然后用代码填充数据生成 pdf
    googleaccount
        10
    googleaccount  
       2024-10-10 11:01:58 +08:00
    playwright 或者 puppeteer 把 html 转成 pdf
    forschers
        11
    forschers  
       2024-10-10 11:02:49 +08:00
    生成 html 转 pdf
    mkmoon
        12
    mkmoon  
    OP
       2024-10-10 11:14:29 +08:00 via iPhone
    @Saturn72
    @ZENGQH 这个我试过,js 生成的每页好像都是图片?
    mkmoon
        13
    mkmoon  
    OP
       2024-10-10 11:18:18 +08:00 via iPhone
    @l1xnan
    @wuyiccc 这俩看着不错,有空试试
    mkmoon
        14
    mkmoon  
    OP
       2024-10-10 11:19:21 +08:00 via iPhone
    @thoo61871 AI 也费劲,老是讲不明白
    spritevan
        15
    spritevan  
       2024-10-10 12:52:11 +08:00
    markdown -> pandoc + latex -> pdf

    https://yanyaoer.github.io/posts/pandoc-md2pdf
    justdoitzZ
        16
    justdoitzZ  
       2024-10-10 12:56:49 +08:00
    LaTeX + listings 包怎么样?
    sgq1128
        17
    sgq1128  
       2024-10-10 13:27:48 +08:00
    gotenberg
    lurenjiaMAX
        18
    lurenjiaMAX  
       2024-10-10 13:32:35 +08:00 via Android
    typst+1
    qyf1994
        19
    qyf1994  
       2024-10-10 13:34:52 +08:00
    wkhtmltopdf
    ATOnTheRun
        20
    ATOnTheRun  
       2024-10-10 14:25:28 +08:00
    vscode 里的 office viewer
    SenLief
        21
    SenLief  
       2024-10-10 17:01:57 +08:00
    调用 pandoc 处理
    xuelu520
        22
    xuelu520  
       2024-10-10 17:06:09 +08:00
    生成 html 再转成 pdf
    sleepm
        23
    sleepm  
       2024-10-10 17:15:35 +08:00
    html 转 pdf wkhtmltopdf
    word 转 pdf unoserver
    natsu94
        24
    natsu94  
       2024-10-10 17:45:15 +08:00
    借楼问下生成 word 有什么好方案
    sleepm
        25
    sleepm  
       2024-10-10 17:48:09 +08:00
    @natsu94 word 生成 word
    不是玩笑,word 支持模版
    ratazzi
        26
    ratazzi  
       2024-10-10 17:56:52 +08:00
    svg 做模板,可以用 figma 设计,导出时将 text 包含 id ,本身是 xml 很容易替换内容,然后画到 pdf 里
    Iamadog
        27
    Iamadog  
       2024-10-10 18:22:58 +08:00
    https://www.npmjs.com/package/pdfmake ,我之前给我们产品写用户协议的时候用的这个库,填充数据直接生成就行可以了
    mkmoon
        28
    mkmoon  
    OP
       2024-10-10 18:49:07 +08:00 via iPhone
    @spritevan
    @justdoitzZ 又得学新技能,学不动了
    EMMMMMMMMM
        29
    EMMMMMMMMM  
       2024-10-10 22:36:46 +08:00 via Android
    学习了,有没有收藏功能啊
    lmq1919
        30
    lmq1919  
       93 天前
    可以看我的全新解决方案,前端直接将 dom 节点转成真正的 pdf ,而不是 canvas 图片式的,体积更小,可编辑,高清晰度,无需服务器 https://github.com/lmn1919/dompdf.js
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2570 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 02:03 PVG 10:03 LAX 19:03 JFK 22:03
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86