Python实现网页文件转PDF文件和PNG图片的示例代码

 更新时间:2022年01月13日 09:59:14   作者:幸福的达哥  
这篇文章主要介绍了如何利用Python分别实现网页文件转为PDF文件和网页文件转PNG图片的示例代码,文中的代码简洁易懂,感兴趣的可以动手试试

一、html网页文件转pdf

#将HTML文件导出为PDF
def html_to_pdf(html_path,pdf_path='.\\pdf_new.pdf',html_encoding='UTF-8',path_wkpdf = r'.\Tools\wkhtmltopdf.exe'):
    '''
    将HTML文件导出为PDF
    
    :param html_path:str类型,目标HTML文件的路径,可以是一个路径,也可以是多个路径,以list方式传入路径;或者一个或者多个网址;或者为一个字符串
    
    :param pdf_path:str类型,需要导出的PDF文件的路径
    
    :param html_encoding:str类型,html的编码格式,具体要看html页面到底是以什么编码格式保存的
    
    :param path_wkpdf:str类型,path_wkpdf = r'.\Tools\wkhtmltopdf.exe'  # 工具路径
    :return:
    '''
    cfg = pdfkit.configuration(wkhtmltopdf=path_wkpdf)
    options = {
        "encoding": html_encoding  # 这个具体要看html页面到底是以什么编码格式保存的
    }
 
    if 'http' in str(html_path) and ('html' not in str(html_path) or 'HTML' not in str(html_path)):     #判断是否为非网址
        #从url获取html,再转为pdf
        print('http=>pdf')
        # pdfkit.from_url('https://httpbin.org/ip', 'ip.pdf', options=options, configuration=cfg)
        # pdfkit.from_url(['https://httpbin.org/ip', 'https://httpbin.org/ip'], 'ip.pdf', options=options,configuration=cfg)  # 传入列表
        pdfkit.from_url(html_path, pdf_path, options=options, configuration=cfg)
        
    elif 'html' in str(html_path) or 'HTML' in str(html_path):          #判断是否为HTML文件
        #将html文件转为pdf
        print('html,str=>pdf')
        # pdfkit.from_file(r'./helloworld.html', 'helloworld.pdf',options=options,  configuration=cfg)
        pdfkit.from_file(html_path, pdf_path, options=options, configuration=cfg)
        
    elif isinstance(html_path, list) and ('html' in str(html_path) or 'HTML' in str(html_path)):   #判断html目标是否为list,
        # 如:[r'./helloworld.html', r'./111.html', r'./222.html']
        print('html,list=>pdf')
        pdfkit.from_file(html_path, pdf_path,options=options,  configuration=cfg)  # 传入列表
    
    else:
        #将字符串转为pdf
        print('from_string=>pdf')
        pdfkit.from_string(html_path, pdf_path,options=options,  configuration=cfg)

所需要用的附件程序:

wkhtmltopdf.exe

下载地址

二、html网页文件转png

#将HTML文件导出为图片
def html_to_png(html_path,pdf_path='.\\pdf_new.pdf',html_encoding='UTF-8',path_wkpdf = r'.\Tools\wkhtmltoimage.exe'):
    '''
    将HTML文件导出为图片
    
    :param html_path:str类型,目标HTML文件的路径,可以是一个路径,也可以是多个路径,以list方式传入路径;或者一个或者多个网址;或者为一个字符串
    
    :param pdf_path:str类型,需要导出的图片文件的路径
    
    :param html_encoding:str类型,html的编码格式,具体要看html页面到底是以什么编码格式保存的
    
    :param path_wkpdf:str类型,path_wkpdf = r'.\Tools\wwkhtmltoimage.exe'  # 工具路径
    :return:
    '''
    cfg = imgkit.config(wkhtmltoimage=path_wkpdf)
    options = {
        "encoding": html_encoding  # 这个具体要看html页面到底是以什么编码格式保存的
    }
 
    if 'http' in str(html_path) and ('html' not in str(html_path) or 'HTML' not in str(html_path)):     #判断是否为非网址
        #从url获取html,再转为pdf
        print('http=>png')
        # pdfkit.from_url('https://httpbin.org/ip', 'ip.png', options=options, configuration=cfg)
        # pdfkit.from_url(['https://httpbin.org/ip', 'https://httpbin.org/ip'], 'ip.png', options=options,configuration=cfg)  # 传入列表
        imgkit.from_url(html_path, pdf_path, options=options, config=cfg)
        
    elif 'html' in str(html_path) or 'HTML' in str(html_path):          #判断是否为HTML文件
        #将html文件转为pdf
        print('html,str=>png')
        # pdfkit.from_file(r'./helloworld.html', 'helloworld.png',options=options,  configuration=cfg)
        imgkit.from_file(html_path, pdf_path, options=options, config=cfg)
        
    elif isinstance(html_path, list) and ('html' in str(html_path) or 'HTML' in str(html_path)):   #判断html目标是否为list,
        # 如:[r'./helloworld.html', r'./111.html', r'./222.html']
        print('html,list=>png')
        imgkit.from_file(html_path, pdf_path,options=options,  config=cfg)  # 传入列表
    
    else:
        #将字符串转为pdf
        print('from_string=>png')
        imgkit.from_string(html_path, pdf_path,options=options,  config=cfg)

所需要用的附件程序:

wkhtmltoimage.exe

下载地址

到此这篇关于Python实现网页文件转PDF文件和PNG图片的示例代码的文章就介绍到这了,更多相关Python网页文件转PDF PNG内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Django中数据库的数据关系:一对一,一对多,多对多

    Django中数据库的数据关系:一对一,一对多,多对多

    今天小编就为大家分享一篇关于Django中数据库的数据关系:一对一,一对多,多对多,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • Python基于matplotlib绘制栈式直方图的方法示例

    Python基于matplotlib绘制栈式直方图的方法示例

    这篇文章主要介绍了Python基于matplotlib绘制栈式直方图的方法,涉及Python使用matplotlib进行图形绘制的相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • 如何在pyqt中实现全局事件实战记录

    如何在pyqt中实现全局事件实战记录

    事件的处理机制非常的复杂,属于PyQt底层的事,不必我们关心,学会使用就行,下面这篇文章主要给大家介绍了关于如何在pyqt中实现全局事件的相关资料,需要的朋友可以参考下
    2022-02-02
  • Python实现FTP文件定时自动下载的步骤

    Python实现FTP文件定时自动下载的步骤

    这篇文章主要介绍了Python实现FTP文件定时自动下载的示例,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-12-12
  • 基于Python安装pyecharts所遇的问题及解决方法

    基于Python安装pyecharts所遇的问题及解决方法

    今天小编就为大家分享一篇基于Python安装pyecharts所遇的问题及解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • python二叉树类以及其4种遍历方法实例

    python二叉树类以及其4种遍历方法实例

    二叉树是一种特殊的树,最直观地体现于它的每个节点至多有两个子节点,二叉树是非常实用的一种数据结构,常常用于实现二叉查找树及二叉堆等,下面这篇文章主要给大家介绍了关于python二叉树类以及其4种遍历方法的相关资料,需要的朋友可以参考下
    2022-05-05
  • Python实现在PyPI上发布自定义软件包的方法详解

    Python实现在PyPI上发布自定义软件包的方法详解

    在Python中我们经常使用pip来安装第三方Python软件包,其实我们每个人都可以免费地将自己写的Python包发布到PyPI上。本文我们就将详细介绍如何发布测试包,需要的可以参考一下
    2022-06-06
  • Matplotlib绘图基础之地图绘制详解

    Matplotlib绘图基础之地图绘制详解

    如果分析的数据与地域相关,那么,把分析结果结合地图一起展示的话,会让可视化的效果得到极大的提升,下面就来讲讲如何利用Matplotlib一步步通过地图来展示分析结果吧
    2023-08-08
  • 通过字符串导入 Python 模块的方法详解

    通过字符串导入 Python 模块的方法详解

    这篇文章主要介绍了通过字符串导入 Python 模块的方法详解,本文通过实例结合,给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • 在Python中处理时间之clock()方法的使用

    在Python中处理时间之clock()方法的使用

    这篇文章主要介绍了在Python中处理时间之clock()方法的使用,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05

最新评论