精华内容
下载资源
问答
  • 使用Adobe Acrobat(首推) 有招啦!轻松实现Word文档批量转换为PDF 使用Mac的自动操作 Mac下实现批量Word或PPT转PDF 使用LibreOffice 如何在 macOS 上一键批量把 PPT 和 Word 文件转成 PDF
    展开全文
  • 我们在实际工作中很容易发现,有些时候我们需要将Word文档转换为PDF文档,如果只是一个文件,我们也只是需要通过Word提供的转换为PDF文档的功能就可以实现了。但是WPS需要收费才能使用将Word转换为PDF文档的服务,...

    Q:

            我们在实际工作中很容易发现,有些时候我们需要将Word文档转换为PDF文档,如果只是一个文件,我们也只是需要通过Word提供的转换为PDF文档的功能就可以实现了。但是WPS需要收费才能使用将Word转换为PDF文档的服务,而且Microsoft Word安装更新等等一系列问题出现。而且当我们要转换文档非常多的时候,转换则变得费时费力;可见手动转换文档就成为了鸡肋。

           本篇博文将教会大家如何用Python程序实现自动化方式批量转换文件格式。

    提前准备

           如果想要批量把Word文档转换为PDF文档,我们可以使用第三方模块win32com。步骤如下:

        (1)在CMD命令窗口中安装win32com模块,如果读者有Pycharm,可以在Pycharm的Terminal(控制台)中输入命令Pycharm对应命令:

    pip install pywin32

    引入模块函数

    (2)通过导入pywin32模块,创建Python文件。在该文件中导入win32com模块及其他辅助模块。应用代码及注释如下:

    import os    # 导入系统功能模块
    from win32com.client import Dispatch,DispatchEx    # 导入win32com模块的client包下的函数
    from win32com.client import constants    # 导入win32com模块的client包下的保存COM常量的类。
    from win32com.client import gencache    # 导入win2com模块的client包下的gencache()函数
    import re    # 导入正则表达式模块

    自定义转换文件格式函数

    (3)如果想要实现将Word文档转换为PDF文档,这里使用自定义方法定义函数:wordtopdf。该函数包含了两个参数,第一个参数表示要转换的文件路径列表;第二个参数表示转换后的文件保存的路径。在这个函数中,要注意的是首先调用win32com模块的Dispatch()函数获取Word应用程序对象;然后通过遍历文件列表中的Word文件名称,并且生成对应名称的PDF文件;最后通过Word应用程序对象的文档对象的open()方法打开Word文档并且进行转换。具体逻辑如下:

    def wordtopdf(filelist,targetpath):
        valueList = []
        try:
            gencache.EnsureModule('{00020905-0000-0000-C000-000000000046}',0,8,4)
            # 开始转换
            w = Dispatch("Word.Application")
            for fullfilename in filelist:
                # 分割文件路径和文件名,其中,filepath表示文件路径,filename表示文件名
                (filepath,filename) = os.path.spilt(fullfilename)
                softfilename = os.path.split(filename)  # 分割文件名和扩展名
                os.chdir(filepath)
                doc = os.path.abspath(filename)
                os.chdir(targetpath)
                pdfname = softfilename[0]+".pdf"
                output = os.path.abspath(pdfname)
                pdf_name = output
                
                # 文档路径需要为绝对路径,Word启动之后的当前路径不是调用脚本时的当前路径
                try:
                    doc = w.Document.Open(doc,ReadOnly = 1)
                    doc.ExportAsFixedFormat(output,constants.wdExportFormatPDF,
                                            Item = constants.wdExportDocumentWithMarkup,
                                            CreateBookmarks = constants.wdExportCreateHeadingBookmarks)
                except Exception as e:          # 处理异常
                    print(e)
                if os.path.isfile(pdf_name):        # 判断文件是否存在
                    valueList.append(pdf_name)      # 添加到文件列表中
                else:
                    print('转换失败!!!')
                    return False
                w.Quit(constants.wdDoNotSaveChanges)        # 退出Word应用程序
                return valueList
        except TypeError as e:
            print('出错了!!!')
            print(e)
            return False

    自定义遍历路径下文件格式 

      (4)由于要转换多个Word文档,索引需要实现或许指定的路径下全部的Word文件路径的功能。接下来我们再定义一个函数:getfilenames(),用于获取到指定路径下的指定扩展名的文件路径(也包括子目录下的文件)。在这个自定义的函数中,根据传递的路径遍历出该路径下的指定扩展名的文件。如果是Word文档,需要它同时遍历出.doc和.docx格式的文档。getfilenames()函数的具体逻辑如下:

    def getfilenames(filepath='',filelist_out = [],file_ext = 'all'):
        # 遍历filepath下的所有文件,包括子目录下的文件
        for fpath,dirs,fs in os.walk(filepath):
            for f in fs:
                fi_d = os.path.join(fpath,f)
                if file_ext == '.doc':                          # 遍历Word文档文件
                    if os.path.splitext(fi_d)[1] in ['.doc','.docx']:   # 判断是否为Word文件
                        filelist_out.append(re.sub(r'\\','/',fi_d))     # 添加到路径列表中
                else:
                    if file_ext =='all':                                # 要获取所有文件的情况
                        filelist_out.append(fi_d)                       # 将文件路径添加到路径列表中
                    elif os.path.splitext(fi_d)[1]==file_ext:           # 要获取除了Word文件以外的文件
                        filelist_out.append(fi_d)                       # 将文件路径添加到路径列表中
                    else:
                        pass
            filelist_out.sort()                                         # 对路径进行排序
        return filelist_out                                             # 返回文件完整路径中

    调用前两个自定义函数    

    (5)第五步就是要进行函数调用的过程,对两个函数体中的变量在该函数中进行赋值,然后执行已经声明的方法,在函数体中进行调用。分别实现单个的Word文件转换为PDF文件和多个Word文件进行转换。首先实现的是利用getfilename()函数得到要转换的文件路径,然后再使用wordtopdf()函数实现批量转换文件格式。

    if __name__ == '__main__':
        sourcepath =r"C:\Users\Administrator\Desktop\转换格式文档"        # 这里要指定路径(Word文档所在路径)
        targetpath =r"C:\Users\Administrator\Desktop\转换格式文档"        # 这里要及性能指定目标路径(PDF文件保存路径)
        filelist = getfilenames(sourcepath,[],'.doc')                    # 获取Word文件路径
        valuelist = wordtopdf(filelist,targetpath)                       # 实现Word文件批量转换为PDF文件
        if valuelist:
            print("转换成功!!!")
        else:
            print("转换失败!!!")

    效果图:

     

    展开全文
  • 日常工作中经常需要进行文件类型的转换,有时还要批量操作,如要把近百个 Word 文档需要转为 PDF, 怎么办?难道要一个一个的导出吗?确实,Office2010 以后版本的 Word 可以直接导出 PDF,是时候让 Python 来替我们...

    日常工作中经常需要进行文件类型的转换,有时还要批量操作,如要把近百个 Word 文档需要转为 PDF, 怎么办?

    难道要一个一个的导出吗?

    确实,Office2010 以后版本的 Word 可以直接导出 PDF,是时候让 Python 来替我们干这个重复性的活了!

    直接上代码:from win32com.client import Dispatch,constants,gencache

    import time

    import os

    path = os.getcwd()

    start_time = time.time()

    files = os.listdir(path)

    gencache.EnsureModule('{00020905-0000-0000-C000-000000000046}',0,8,4)

    wd = Dispatch('Word.Application')

    for file in files:

    if file.split('.')[-1] in ['docx','doc']:

    word_path = path + '\\'+ file

    file_list = (file.split('.')[-2::-1])[::-1]

    pdf_file = "".join(file_list)

    pdf_path = path + '\\'+ pdf_file + '.pdf'

    print('正在转换:')

    print('《{}》'.format(file))

    doc = wd.Documents.Open(word_path,ReadOnly=1)

    doc.ExportAsFixedFormat(pdf_path,constants.wdExportFormatPDF,Item=constants.wdExportDocumentWithMarkup,CreateBookmarks=constants.wdExportCreateHeadingBookmarks)

    print('上述文件转换完成!')

    print('')

    wd.Quit(constants.wdDoNotSaveChanges)

    end_time = time.time()

    print("该文件夹下的Word文件已转为PDF,用时:{:.2f}秒!".format(z,end_time-start_time))

    time.sleep(5)

    代码解释

    这个程序可以操作任意文件夹,不受文件夹所在位置的影响。

    只需要将它丢在需要转换的 Word 文件文件夹里,它就可以读取出所在文件夹下所有的 Word 文件,并进行转换。

    主要用到了下面几个方法:

    1、获取任意文件夹下文件名称import os

    path = os.getcwd()

    files = os.listdir(path)os.getcwd() :获取程序所在文件的路径,结果存入 path 中;

    os.listdir():获取 path 路径下的所有文件名称,结果存入 files 中。

    2、筛选出 Word 文件for file in files:

    if file.split('.')[-1] in ['docx','doc']:

    使用字符串的split函数,用.号将文件名称分割。

    file.split('.')[-1]:将 Word 文件的名称以.号分割,形成一个列表,取出这个列表的最后一项(即 Word 文件后缀名称),判断其是不是docx或doc,如果是,则说明是 Word 文件,则生成两个路径:

    3、计算出 Word、PDF 的路径word_path = path + '\\'+ file

    file_list = (file.split('.')[-2::-1])[::-1]

    pdf_file = "".join(file_list)

    pdf_path = path + '\\'+ pdf_file + '.pdf'word_path:Word 文件路径,用来告诉程序打开哪一个 Word 文件;

    pdf_path:PDF 文件路径,用来告诉程序,转换后的 PDF 文件名称和存储路径。

    在计算 PDF 文件路径时,需要先去掉 Word 文件的后缀:docx或doc,再加上.pdf。

    有时候,Word 文件的名称中可能含有多个.号,因为我们是通过.号将 Word 文件名称分割的,这样可能会导致计算的 PDF 文件名称和 Word 文件名称不同。

    因此,为了避免出现这种样的错误,我们进行以下操作:(file.split('.')[-2::-1]):按照逆序,取出除了后缀名称外的内容。

    (file.split('.')[-2::-1])[::-1]:转为正序,即正常的文件名称。

    pdf_file = "".join(file_list):将列表拼接成一个字符串。

    pdf_path = path + '\\'+ pdf_file + '.pdf':最后给文件名称加上.pdf的后缀。

    这样就完成了 Word、PDF 的路径计算。

    4、调用 Word 功能

    下面这些代码的功能是调用 Word 程序:gencache.EnsureModule('{00020905-0000-0000-C000-000000000046}',0,8,4)

    # 这是指向注册表的键,我们要调用它。

    wd = Dispatch('Word.Application')

    #启用 Word

    doc = wd.Documents.Open(word_path,ReadOnly=1)

    # 只读方式打开 Word 文档

    wd.Quit(constants.wdDoNotSaveChanges)

    # 关闭 Word

    关键操作就是下面这行代码,它定义了按特定格式导出的参数,模拟人工操作。doc.ExportAsFixedFormat(pdf_path,constants.wdExportFormatPDF,Item=constants.wdExportDocumentWithMarkup,CreateBookmarks=constants.wdExportCreateHeadingBookmarks)

    展开全文
  • 1、支持Word文档批量转换PDF文档。 2、PDF文档批量设置Owner密码(普通用户可正常打开文档,但没有编辑、复制、打印、另存等权限)。 3、PDF文档批量设置水印。
  • 主要大家详细介绍了python批量实现Word文件转换为PDF文件的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • word文档批量转换pdf

    2020-11-19 15:49:13
    今天和大家一起来学习一下word文档批量转换pdf的方法。 如果你是单个文档转换pdf,可以直接打开word文档另存,保存类型选择为pdf即可。但如果是工作或其它需要有多个文件需要转换的话,手工就太过麻烦耗时了,...

      今天和大家一起来学习一下word文档批量的转换pdf的方法。

    如果你是单个文档转换pdf,可以直接打开word文档另存为,保存类型选择为pdf即可。但如果是工作或其它需要有多个文件需要转换的话,手工就太过麻烦耗时了,网上有很多工具,大多是收费的。下面介绍一下用python脚本实现批量转换的方法,部分代码来源于网络搜索,本人进行整理优化;我这里没有使用doc2pdf库,因为在进行批量转换的时候遇到点问题,单个文件转换没有发现问题,需要的朋友可以自行搜索尝试一下。

    from win32com import client as wc
    import os
    
    
    def get_docx(input_doc):
        DocxPaths = []
        for root, dirs, filenames in os.walk(input_doc):
            for filename in filenames:
                if filename.endswith(('.docx', '.doc')):
                    DocxPaths.append(root+'/'+filename)
        return DocxPaths
    
    
    def docx2pdf(input_doc, pdf_paths):
        DocxPaths = get_docx(input_doc)
        print('DocxPaths', DocxPaths)
        word = wc.Dispatch('Word.Application')
        word.Visible = 0
    
        for docx_path in DocxPaths:
            pdf_name = pdf_paths + '/' + docx_path.split('/')[-1][:-5] + '.pdf'
            try:
                doc = word.Documents.Open(docx_path)
                doc.SaveAs(pdf_name, 17)  # 直接保存为PDF文件
                doc.Close()
            except:
                print('%s 转换失败' % docx_path)
        word.Quit()
    
    
    if __name__ == '__main__':
        input_docx = r'D:\Python\pdf\doc'
        pdf_path = r'D:\Python\pdf\doc'
        docx2pdf(input_docx, pdf_path)
    

     

    大家在使用时,只需将需要转换的word的文档放在一个单独的目录下,支持doc、docx两种格式;在脚本中设置一下文档路径,运行脚本即可。有问题请留言。

     

    给大家推荐一门“深度学习”课程
    扫码下单输优惠码【csdnfxzs】再减5元,比官网还便宜!

    https://marketing.csdn.net/poster/93?utm_source=NEWFXDT

    展开全文
  • vba 实现Word文档批量转换为PDF

    万次阅读 2019-03-04 15:36:02
    '需要转换word文档的个数 dim total as Integer '定义文件名数组:数组的个数根据需要进行设置 Dim fns(total) As String fns(0) = "d:\doc\1.docx" '..................... fn...
  • 这个资源我亲测可以用,和我用python写的代码运行出来的效果是差不多的,还可以批量操作,将word转换为pdf
  • C#将word批量转换为PDF

    2017-12-11 16:36:50
    软件使用VS2003,能够实现将word批量转换为PDF文档,有源代码和软件说明书。
  • word批量转换pdf工具

    2014-12-22 14:39:21
    自己闲时朋友做的小工具,功能实现将选定文件夹里面的word文档批量转换pdf文档,可选择存放原文件夹,也可存放其他选定的文件夹。说明下:闲时做的小工具,利用的office的功能实现批量,细节方面未做处理,另因...
  • word批量转换pdf

    千次阅读 2021-01-15 18:44:20
    word批量转换pdf 一、单个文件的转换 使用word软件的另存或者导出选项可以将word文件单个转换成pdf文件 二、多个文件的转换 ​ 多个文件的转换没法通过word进行一键处理,除非一个一个的转换,但是如果要转换的...
  • 引用 using Microsoft.Office.Interop.Word;...获取文件夹下待转换Word文件 string file = @""; string target=""; //获取路径下的文件到字符数组 string[] aa = Directory.GetFiles...
  • WPS文档批量转换PDF

    2021-02-02 10:12:33
    WPS文档批量转换PDF 年初保存的大量WPS文档,需要转换成PDF格式,起初使用WPS等软件逐个转换,实在是太麻烦了。上网搜索了相关软件,令人失望一直没有找到合适的软件,虽有Word抓换PDF的,但对Word版本有要求,更...
  • 四行Python代码实现将word文件高效转换为PDF文件,对于使用Office的小伙伴从此就告别Office转PDF页数限制,时间效率低下等问题;同时对于使用WPS的小伙伴再也不用担心将Word转PDF需要会员;仅仅4行核心代码即可实现...
  • 如何将Word文件批量转换PDF

    千次阅读 2019-07-04 11:48:29
    Doc和Docx格式的Word文件几乎天天和我们的工作打交道,但是为了避免随意被修改文档的内容,我们经常需要把word文件转换pdf格式文件来存储。当然,制作pdf电子书啊什么的也很常见啦。Word转换PDF格式最常见的办法...
  • from win32com.client import gencache from win32com.client import constants, gencache import os def createPdf(wordPath, pdfPath): """ word转pdf :param wordPath: word文件路径 :param pdfPath: 生成pdf...
  • word,execel批量转换swf或pdf软件永久免费版,可以把word,excel,txt等office文档批量转换成swf格式类似百度文库的swf格式的文档及pdf文档。从而没有安装office软件的计算机阅读,且具有更高的安全性。
  • Word转换为PDF,可以直接通过Word的另存功能来进行实现。但是对于自动化办公的小伙伴们,会遇到将批量Word转换为PDF文件的任务。面对批量转换,采用手动转换的方式,无疑是一...
  • 批量WORD转换为PDF

    2020-11-27 23:51:21
    在网络上,有很多批量Word转换为 PDF网站可以提供服务, 有的收费有的免费。 但是需要文档上传,这样会造成信息泄露, 在企业或者公司里面是不允许的。 由于 MS Office 自带此功能,因此只需要写个程序把这些...
  • 办公的时候常常需要将word文档转换pdf格式的文件,因为pdf格式的文件比word兼容性更好,而且便于浏览,对于那些不希望文本内容被修改的人来说pdf格式文件比word好用多了。但是手动
  • Word文档批量转PDF

    2021-01-21 18:12:18
    1.打开一个Word文档 2.按Alt+F11打开代码处理页面 点击ThisDocument打开编辑面板 输入以下代码: 'docx转pdf Option Explicit Sub docx2pdf() Dim sEveryFile As String Dim sSourcePath As String Dim ...
  • 可以批量转换word文档为带书签的pdf。包含三个文件: (1)doc2pdf.vbs (2)word批量转pdf带书签.vb (3)使用说明.txt 两种转换方式,可任君挑选
  • 霄鹞Office文档批量转PDF助手是由霄鹞软件工作室推出的一款批量将Office文档转换到PDF文档的应用软件。软件界面简洁,使用简单方便,特别适合将众多Office文档(Word/Excel/PPT)快速性批
  • 使用python将word文档转换为PDF文档

    千次阅读 2020-11-25 20:32:00
    欢迎关注”生信修炼手册”!对于windows系统的编程开发,微软一开始提供了基于VB语言的接口,后来又推出了.NET框架。对于word等offices套件的自动化操作,由于原生支持的特性...
  • python将word文件批量转pdf

    千次阅读 2020-07-16 17:55:12
    os.path.split(outp) if not os.path.exists(folder) : os.makedirs(folder) if p[-3:] == 'pdf': total += 1 covx_to_pdf(p, outp) print('共生成',total) mac用户 docx2pdf:专门用于word转pdf pip install docx2...
  • 微软Office Word本身已经提供了另存为PDF文档功能,对于少量文档,手工使用该方式进行Word转换为PDF尚可,一旦需要处理大量的文档,可能就显得有些捉襟见肘了。不过对于已经安装有Office环境,借助一些简单的代码...
  • 昨天女朋友告诉我她遇到了一个比较复杂的难题,需要对七十多篇文档统一改格式,改的很简单就是文件太多,然后保存为pdf,每个文档都有好多页,可能手动改得改一天。听了之后,我突然萌生了给写个程序帮她改的想法。...
  • Python - 批量转换Word文件为PDF文件

    万次阅读 2017-09-07 20:05:04
    1,目的通过万能的Python把一个目录下的所有Word文件转换为PDF文件。2,遍历目录作者总结了三种遍历目录的方法,分别如下。2.1,调用glob遍历指定目录下的所有文件和文件夹,不递归遍历,需要手动完成递归遍历功能。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,531
精华内容 2,612
关键字:

word文档批量转换为pdf