如何批量将文件夹中的TXT文档转换为PDF并保留原文件名?
批量将文件夹内所有TXT文件转换为PDF格式
实现思路
用os模块遍历目标文件夹下的所有.txt文件,对每个文件复用你原来的转换逻辑,输出的PDF文件自动沿用原TXT文件名,后缀改为.pdf。
完整代码
from fpdf import FPDF import os # 替换成你的目标文件夹路径,注意用原始字符串(加r)或者双反斜杠 TARGET_FOLDER = r"C:\Users\rc06587\Desktop\Text Doc\Sample\New folder (2)" def txt_to_pdf(txt_path, output_path): pdf = FPDF() pdf.add_page() pdf.set_font("Arial", size=8) # 打开TXT文件时建议指定编码,避免中文乱码,根据你的文件编码选utf-8或gbk with open(txt_path, "r", encoding="utf-8") as f: for line in f: # 原代码的cell宽度10过窄会截断文字,改成190适配A4页面有效宽度 pdf.cell(190, 4, txt=line, ln=1, align='L') pdf.output(output_path) # 遍历文件夹下所有TXT文件 for filename in os.listdir(TARGET_FOLDER): if filename.lower().endswith(".txt"): txt_full_path = os.path.join(TARGET_FOLDER, filename) # 生成PDF文件名:原文件名直接追加.pdf后缀 pdf_full_path = os.path.join(TARGET_FOLDER, f"{filename}.pdf") txt_to_pdf(txt_full_path, pdf_full_path) print(f"已转换:{filename} -> {filename}.pdf")
注意事项
- 路径设置:把
TARGET_FOLDER替换成你的实际文件夹路径,用原始字符串(前面加r)可以避免转义字符报错 - 编码适配:如果你的TXT文件是中文GBK编码,把
encoding="utf-8"改成encoding="gbk"即可解决乱码 - 自动分页优化:如果TXT内容太长超出单页,原代码不会自动分页,可将
pdf.cell替换为pdf.multi_cell,自动处理换行和分页:# 替换原cell代码,自动适配长文本分页 pdf.multi_cell(190, 4, txt=line, align='L')
内容的提问来源于stack exchange,提问作者Sai Teja
相关产品推荐
相关产品推荐

