Python批量将多种格式文件合并成一个PDF文件

import docx
import os
from docx2pdf import convert
from glob import glob
from PyPDF2 import PdfMerger
from win32com import client as wc #doc转docx


def doc2docx(filepath):       #将doc文件另存为docx文件
    word = wc.Dispatch("Word.Application")
    docx_file = os.path.join(inputdir, f.replace(".doc", ".docx"))  # f.replace并不会改变f变量
    doc = word.Documents.Open(os.path.join(inputdir, f))
    doc.SaveAs(dest_file, 12)  #12是docx文件格式
    doc.Close()
    word.Quit()

def docx2pdf(filepath):   #传入完整的docx路径并转为PDF
    out_filepath = filepath.replace('.docx','.pdf') #在docx的基础上生成同名PDF文档
    f1 = open(out_filepath,'w')   #新建pdf后关闭文件
    f1.close()
    convert(filepath,out_filepath)#将docx文档转为pdf
    print(os.path.basename(filepath) + "已转为PDF")


inputdir= r"E:\Desktop\test"  #在这里传入文件所在文档
outdir = r"E:\Desktop\test"   #在这里修改合并后PDF文件输出位置
filelist = os.listdir(inputdir)  #取出文件名字列表
filemerge = PdfMerger()
for f in filelist:
    if f.endswith(".doc"):
        doc2docx(os.path.join(inputdir, f))   #将doc文件转存为docx文件
        docx2pdf(os.path.join(inputdir, f.replace(".doc", ".docx")))  #调用函数,将docx文件转为pdf文件
        os.remove(os.path.join(inputdir, f.replace(".doc", ".docx")))#将临时生成的docx文件删除掉
    elif f.endswith(".docx"):
        docx2pdf(os.path.join(inputdir, f))              #调用函数,将docx文件转为pdf文件
pdflist = glob(os.path.join(inputdir, '*.pdf'))
filemerge = PdfMerger()
for f in pdflist:
    filemerge.append(f,import_outline= False)
filemerge.write(os.path.join(outdir, 'merge.pdf'))
print("已将文件夹中doc、docx、pdf格式文件合并成PDF,并放在原文件目录下")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值