美文网首页PythonPython
Python快速将HTML转PDF

Python快速将HTML转PDF

作者: 小_源 | 来源:发表于2019-02-20 17:59 被阅读11次

    本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 极客导航 即可关注。

    概况

    在日常工作生活中,有时候需求是将HTML转成PDF,网上一些工具也有很多,不过一般都是在线转换或者一次只能转一张,甚至一些工具需要充值....


    image

    今天我们python写一个HTML转成PDF程序,对于一些会Python的小伙伴来说,自己写的程序,自由度比较高。

    准备工作

    我们今天用到的库是:pdfkit
    安装:pdfkit

    pip install pdfkit
    

    在自己的操作系统上安装:wkhtmltopdf

    Ubuntu

    sudo apt-get install wkhtmltopdf
    

    Mac

    brew install Caskroom/cask/wkhtmltopdf
    

    CentOS

    sudo yum intsall wkhtmltopdf
    

    windows

    下载地址:https://wkhtmltopdf.org/downloads.html
    并配置系统环境变量
    

    开始转换

    import pdfkit
    
    pdfkit.from_url('https://www.jianshu.com','out.pdf')    
    
    image

    看似效果还不错,并且还支持很多

    本地的Html文件

    import pdfkit
    
    pdfkit.from_file('jianshu.htm','out.pdf')   
    
    

    字符串

    import pdfkit
     
    pdfkit.from_string('HelloWorld','out.pdf')
    

    打开文件

    import pdfkit
    
    with open('jianshu.htm','r') as f:
        pdfkit.from_file(f,'out.pdf')   
    
    

    多个HTML同时转换

    import pdfkit
    
    pdfkit.from_url(['https://www.jianshu.com/','https://www.baidu.com/'],'out.pdf')
    
    #pdfkit.from_file(['jianshu.htm','jianshu1.htm'],'out.pdf')  
    

    自定义参数

    如果上面还满足不了你的需求,一些参数可以自定义:

    import pdfkit
    options={
       'page-size':'A4',#Letter
        'margin-top':'0.75in',
        'margin-right':'0.75in',
        'margin-bottom':'0.75in',
        'margin-left':'0.75in',
        'encoding':"UTF-8",
        'no-outline':None
    }    
    pdfkit.from_url('https://www.jianshu.com/','out1.pdf', options=options)
    
    

    这个工具很强大,里面有很多参数和方法,不过一般需求基本已经能搞定。如果还有深度需求大家可以参考下面的文档:

    pdfkit文档:https://pypi.org/project/pdfkit/
    wkhtmltopdf参数:http://www.kongzhizhen.com/%E7%94%9F%E6%B4%BB/282/

    下面的是我的公众号二维码图片,欢迎关注。


    欢迎关注

    相关文章

      网友评论

        本文标题:Python快速将HTML转PDF

        本文链接:https://www.haomeiwen.com/subject/tkxkyqtx.html