使用wkhtmltopdf批量转HTML为PDF:需修改代码的哪部分?
如何修改代码实现批量转换文件夹中的HTML文件为PDF?
我之前写了一段Python代码可以单个HTML转PDF,代码如下:
import pdfkit #Define path to wkhtmltopdf.exe path_to_wkhtmltopdf = r'C:\Program Files\wkhtmltopdf\bin\wkthmltopdf.exe' #Define path to HTML file path_to_file = 'sample.html' #Point pdfkit configuration to wkhtml.exe config = pdfkit.configuration(wkhtmltopdf = path_to_wkhtmltopdf) #Convert HTML file to PDF pdfkit.from_file(path_to_file, output_path = 'sample.pdf', configuration = config)
现在我有一个包含大量HTML文件的文件夹,逐个转换太麻烦,请问要修改哪部分才能实现批量转换?
需要调整的核心部分
- 引入
os模块:用于遍历目标文件夹内的所有HTML文件 - 替换单个文件路径为文件夹路径:指定存放HTML文件的文件夹位置
- 添加循环遍历逻辑:逐个处理文件夹中的
.html文件,生成对应PDF
另外注意你原代码里的拼写错误:wkthmltopdf.exe应该是wkhtmltopdf.exe,不修正会导致找不到执行程序。
修改后的完整代码
import pdfkit import os # 定义wkhtmltopdf的路径(修正拼写错误) path_to_wkhtmltopdf = r'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe' # 定义存放HTML文件的文件夹路径,请替换为你的实际路径 html_folder = r'C:\你的HTML文件夹路径' # 配置pdfkit config = pdfkit.configuration(wkhtmltopdf=path_to_wkhtmltopdf) # 遍历文件夹中的所有文件 for filename in os.listdir(html_folder): # 仅处理.html后缀的文件 if filename.endswith('.html'): # 拼接完整的HTML文件路径 html_file_path = os.path.join(html_folder, filename) # 生成对应PDF文件名(替换后缀为.pdf) pdf_filename = os.path.splitext(filename)[0] + '.pdf' # PDF可与HTML存同一文件夹,也可自定义其他输出路径 pdf_file_path = os.path.join(html_folder, pdf_filename) # 执行转换,添加异常处理避免单个文件失败中断程序 try: pdfkit.from_file(html_file_path, output_path=pdf_file_path, configuration=config) print(f"转换完成:{filename} -> {pdf_filename}") except Exception as e: print(f"转换{filename}失败:{str(e)}")
关键细节说明
os.listdir(html_folder):获取文件夹下所有文件和子文件夹名称filename.endswith('.html'):过滤出仅HTML文件,避免处理无关文件os.path.splitext(filename)[0] + '.pdf':保证PDF文件与原HTML文件同名,方便对应查找try-except块:单个文件转换失败时,程序会继续处理其他文件,同时输出错误信息便于排查
内容的提问来源于stack exchange,提问作者YL73
相关产品推荐
相关产品推荐

