• python html(文件/url/html字符串)转pdf


    安装库

    pip install pdfkit
    
    • 1

    第二步
    下载程序wkhtmltopdf
    https://wkhtmltopdf.org/downloads.html

    下载7z压缩包 解压即可, 无需安装
    在这里插入图片描述
    解压后结构应该是这样, 我喜欢放在项目里, 相对路径引用(也可以使用绝对路径, 放其他地方)
    在这里插入图片描述

    
    import pdfkit
    
    # 将 wkhtmltopdf.exe程序 路径
    path_wkthmltopdf = './wkhtmltox/bin/wkhtmltopdf.exe'
    config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)
    
    
    def url_to_pdf(url, to_file):
        # 生成pdf文件,to_file为文件路径
        pdfkit.from_url(url, to_file, configuration=config, options={'encoding': 'utf-8'})
        print('完成')
    
    
    # 这里传入我知乎专栏文章url,转换为pdf
    # url_to_pdf(r'https://m.zhijiao.cn/newsmini/detail/102201', './招生简章/102201.pdf')
    
    # html文件转pdf
    def file_to_pdf(path, to_file):
        # 生成pdf文件,to_file为文件路径
        pdfkit.from_file(path, to_file, configuration=config, options={'encoding': 'utf-8'})
        print('完成')
    
    
    # file_to_pdf('./123.html', './xxx/123.pdf')
    pdf_err_counts = 0
    # html字符串转pdf
    def string_to_pdf(string, to_file):
        global pdf_err_counts
        # 生成pdf文件,to_file为文件路径
        try:
            pdfkit.from_string(string, to_file, configuration=config, options={'encoding': 'utf-8'})
        except Exception as e:
            pdf_err_counts += 1
            print('生成pdf失败', pdf_err_counts, e)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    最好每个都像string_to_pdf函数一样, 捕获一下错误, 可以使程序更健壮, 避免转换失败导致程序停止(其他没写因为我没用, 懒得写)

    参考: https://www.zhihu.com/tardis/zm/art/94608155?source_id=1005
    转换效果参考文章中有, 我觉得还不错, 就是有点慢。

  • 相关阅读:
    pnpm、npm、yarn的区别
    考公顺序步骤
    jquery操作DOM对象
    Microsoft 365跨平台协同办公功能,实现Mac、iOS、Windows用户的实时无缝协作
    【BOOST C++Data-struct专题04】 Boost.PropertyTree
    【Python刷题篇】——Python入门 010 内置函数(二)
    2023-11-06 思考-日记
    痞子衡嵌入式:MCUBootUtility v3.5发布,支持串行NOR的ECC及双程序启动
    串级/级联控制知识点整理
    A Guide to Java HashMap
  • 原文地址:https://blog.csdn.net/qq_50969362/article/details/134046829