V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
itIsUnbelievable
V2EX  ›  问与答

如何使用 Python 实现根据用户所填信息填入合同 word 模板,自动生成 pdf 合同?

  •  
  •   itIsUnbelievable · 2020-01-03 11:33:03 +08:00 · 3620 次点击
    这是一个创建于 1546 天前的主题,其中的信息可能已经有所发展或是发生改变。

    部署在 linux 环境下。

    17 条回复    2020-01-04 07:51:24 +08:00
    a719114136
        1
    a719114136  
       2020-01-03 11:54:30 +08:00
    用图片吧,然后就是在 pdf 里插图片
    itIsUnbelievable
        2
    itIsUnbelievable  
    OP
       2020-01-03 12:07:12 +08:00
    @a719114136 把 word 转成图片吗?我随便搜了一下好像没看到实现的方法,而且转图片排版也有问题吧
    k8ser
        3
    k8ser  
       2020-01-03 12:34:56 +08:00
    {} 模板 读成字符串 format 不就行了?
    renmu
        4
    renmu  
       2020-01-03 12:37:27 +08:00 via Android
    直接写成 PDF 可能倒比写到 Word 再转更方便
    a719114136
        5
    a719114136  
       2020-01-03 12:50:11 +08:00 via Android
    @itIsUnbelievable 模板就直接用图片,然后在图片上添加文字
    ddd2500
        6
    ddd2500  
       2020-01-03 12:54:47 +08:00
    使用 html 模板吧, 再转 pdf 感觉比较简单
    CallMeReznov
        7
    CallMeReznov  
       2020-01-03 13:03:06 +08:00
    用 flask 写个页面,然后把你的 WORD 格式在 HTML 模板里做好
    最后用转成 PDF.
    virusdefender
        8
    virusdefender  
       2020-01-03 13:08:52 +08:00
    直接写 pdf 或者 html 转 pdf 或者 LaTeX 转 pdf 会更简单点
    chenxj123
        9
    chenxj123  
       2020-01-03 13:13:38 +08:00
    chenxj123
        10
    chenxj123  
       2020-01-03 13:17:21 +08:00   ❤️ 1
    python-docx-template
    可以用这个包,事先用 word 做好模板

    word 弄好之后,在 linux 下装好 libreoffice,然后用这个工具转成 pdf
    Hyseen
        11
    Hyseen  
       2020-01-03 14:41:25 +08:00
    用 html 模版,再转 pdf
    no1xsyzy
        12
    no1xsyzy  
       2020-01-03 15:53:49 +08:00
    @chenxj123 那为何不直接写 LibreOffice 宏?替换、转 PDF 一步到位。
    而且用 LaTeX 方便多了,可用 pandoc 从 docx 转成 LaTeX 然后清理。
    chenxj123
        13
    chenxj123  
       2020-01-03 17:56:09 +08:00
    @no1xsyzy python-docx-template 这个包支持很多 word 格式,而且 python 实现起来很方便,数据从数据库里一取一填就好了。
    其他工具我不知道对 word 的格式支持能到什么程度,反正我之前做的一个自动化报告的项目,里面各种乱七八糟的格式要求,字体,字号,一段文字中间的不同颜色,斜体黑体什么的。还要表格根据数据自动生成相应的行数,没有数据就没有表格,还要插入图片什么的,各种要求吧。
    唯一做不到的就是转 PDF,所以就再找个转 pdf 的工具就好了
    iilxy
        14
    iilxy  
       2020-01-03 21:10:51 +08:00
    PyFPDF 直接生成 pdf 就行了
    xml123
        15
    xml123  
       2020-01-03 23:50:13 +08:00
    这个需求直接用 LaTeX 更方便吧,就是需要把模板用 LaTeX 重新写一边。
    no1xsyzy
        16
    no1xsyzy  
       2020-01-04 01:59:57 +08:00
    @chenxj123 原来是 jinja2
    那直接 jinja2 做出 html 转 PDF 就行了啊,你这是绕一圈
    不过 LaTeX 告诉我们有时绕一圈生成速度快生成文件还小(手动笑哭
    changxiushanwu
        17
    changxiushanwu  
       2020-01-04 07:51:24 +08:00 via iPhone
    同推荐 python-docx-template,直接生成 word 文档。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1246 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 17:58 · PVG 01:58 · LAX 10:58 · JFK 13:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.