【python】网页批量转PDF

news/2025/2/21 7:16:05

安装wkhtmltopdf 

网站:wkhtmltopdf

wkhtmltopdf http://www.baidu.com/ D:website1.pdf

安装pdfkit库

pip install pdfkit

批量转换代码

import os
import pdfkit
path_wkthmltopdf = r'E:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe'
config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)

def convert_html_to_pdf(input_folder, output_folder):
    # 确保输出文件夹存在
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    # 遍历输入文件夹及其子文件夹中的所有文件
    for root, dirs, files in os.walk(input_folder):
        for file in files:
            if file.endswith(".htm"):
                html_file_path = os.path.join(root, file)
                pdf_file_path = os.path.join(output_folder, file.replace('.htm', '.pdf'))

                try:
                    # 使用pdfkit将HTML文件转换为PDF文件
                    pdfkit.from_file(html_file_path, pdf_file_path,configuration=config, options={'encoding': 'utf-8',"enable-local-file-access":True})
                    print(f"成功转换: {html_file_path} -> {pdf_file_path}")
                except Exception as e:
                    print(f"转换失败: {html_file_path} -> {pdf_file_path}, 错误信息: {e}")


if __name__ == "__main__":
    input_folder = 'D:\'  # 输入文件夹路径,这里设置为当前目录
    output_folder = 'D:\pdf'  # 输出文件夹路径
    convert_html_to_pdf(input_folder, output_folder)

报错解决

Python OSError: wkhtmltopdf reported an error:Exit with code 1 due to network error:ProtocolUnknownE_exit with code 1 due to network error: protocolunk-CSDN博客

参考

pdfkit | 利用python实现html文件转pdf (zhihu.com)

Python OSError: wkhtmltopdf reported an error:Exit with code 1 due to network error:ProtocolUnknownE_exit with code 1 due to network error: protocolunk-CSDN博客


http://www.niftyadmin.cn/n/5860436.html

相关文章

Nginx WebSocket 长连接及数据容量配置

WebSocket 协议是实现实时通信的关键技术。相比于传统的 HTTP 请求-响应模式,WebSocket 提供了双向、持久化的通信方式。Nginx 作为一个高性能的反向代理服务器,可以非常有效地处理 WebSocket 连接,但要正确处理 WebSocket 长连接和传输大数据…

云计算如何解决延迟问题?

在云计算中,延迟(latency)指的是从请求发出到收到响应之间的时间间隔。延迟过高可能会严重影响用户体验,特别是在需要实时响应的应用中,如在线游戏、视频流、金融交易等。云计算服务如何解决延迟问题,通常依…

第四章:高级特性与最佳实践 - 第四节 - Tailwind CSS CSS 提取和打包优化

在现代前端工程中,CSS 的提取和打包优化对于项目性能至关重要。本节将详细介绍如何在使用 Tailwind CSS 的项目中实现 CSS 的高效提取和打包优化。 CSS 提取策略 MiniCssExtractPlugin 配置 // webpack.config.js const MiniCssExtractPlugin require(mini-css-…

常用电脑,护眼软件推荐 f.lux 3400K | 撰写论文 paper

常用电脑?平均每天用 5 个小时?你就要考虑用一个护眼软件了,对皮肤也好。因为电脑屏幕有辐射,比如蓝光。 f.lux 作为一款专业护眼软件,值得使用。之前用了三年的 Iris Pro,现在 f.lux 做的更好了。 使用…

数仓搭建(hive):DWB层(基础数据层)

维度退化: 通过减少表的数量和提高数据的冗余来优化查询性能。 在维度退化中,相关的维度数据被合并到一个宽表中,减少了查询时需要进行的表连接操作。例如,在销售数据仓库中,客户信息、产品信息和时间信息等维度可能会被合并到一…

分布式文本多语言翻译存储平台

分布式文本多语言翻译存储平台 地址: Gitee:https://gitee.com/dreamPointer/zza-translation/blob/master/README.md 一、提供服务 分布式文本翻译服务,长文本翻译支持流式回调(todo)分布式文本多语言翻译结果存储服…

Elasticsearch 自动补全搜索 - autocomplete

作者:来自 Elastic Amit Khandelwal 探索处理自动完成的不同方法,从基础到高级,包括输入时搜索、查询时间、完成建议器和索引时间。 在本文中,我们将介绍如何避免严重的性能错误、Elasticsearch 默认解决方案为何不适用以及重要的…

uniapp多端适配

UniApp是一个基于Vue.js开发多端应用的框架,它可以让开发者编写一次代码,同时适配iOS、Android、Web等多个平台。 环境搭建: UniApp基于Vue.js开发,所以需要先安装Vue CLI npm install -g vue/cli 创建一个新的UniApp项目&…