前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自动完成PDF转Word

自动完成PDF转Word

原创
作者头像
airxiechao
发布2022-04-25 16:30:22
3.7K0
发布2022-04-25 16:30:22
举报

现在WPS和百度网盘都提供了PDF转Word的功能,但是需要充值会员。网上也有其他网站可以把PDF转成Word的,可是有一定限制。还有一些开源软件,效果就达不到要求了。经过了一番调查,发现真正完成PDF转Word的是一个来自Soliddocuments公司的程序,在smallpdf、adobe acrobat dc等网站上都有提到。

本地实现

经过一番搜索,没有找到Soliddocuments的免费程序。我的目的是通过程序自动完成PDF转Word,转换一下思路,想到Adobe Acrobat DC Pro既然有PDF转Word的功能,内部一定就是Soliddocuments,那我直接控制Acrobat DC Pro不就可以了!果然,Acrobat DC Pro是可以通过Python控制的。这样,我就找到了这样一套几乎完美的本地方法,完成PDF转Word:

【步骤1】

在淘宝上搜“Acrobat DC Pro“,花几块钱就可以买到,然后本地安装好。(如果不需要实现自动转换,直接用这个软件的”导出到->Word“就可以了)

【步骤2】

安装Anaconda Python,是一套完整的Python程序环境。安装时一定要选中”Add anaconda to my PATH environment variable“,这样才能从命令行调用python。

【步骤3】

编写Python调用Acrobat DC Pro的程序(pdf2word.py)。该程序将当前目录下的所有PDF文件转换为Word,并保存到output目录。

代码语言:javascript
复制
from win32com.client.dynamic import Dispatch, ERRORS_BAD_CONTEXT

import os
import winerror
ERRORS_BAD_CONTEXT.append(winerror.E_NOTIMPL)

files = list(filter(lambda f: f.endswith('.pdf'), os.listdir()))

def pdf2word(f_path, d_path):
    try:
        AvDoc = Dispatch("AcroExch.AVDoc")
        AvDoc.Open(f_path, "")
        pdDoc = AvDoc.GetPDDoc()
        jsObject = pdDoc.GetJSObject()
        jsObject.SaveAs(d_path, "com.adobe.acrobat.docx")
        print('ok')
    except Exception as e:
        print('error')
        print(e)
    finally:
        pdDoc.Close()
        AvDoc.Close(True)

os.mkdir('output')
for file in files:
    print('convert:', file)
    out_file = file.replace('.pdf', '.docx')
    f_path = os.path.abspath(file)
    d_path = os.path.abspath('output/' + out_file)
    pdf2word(f_path, d_path)

【步骤4】

将PDF文件和pdf2word.py放在一个文件夹内,打开命令行运行Python程序,完成转换

代码语言:javascript
复制
python pdf2word.py

先给大家演示一下以上流程

视频内容

远程实现

虽然以上实现了自动转换,但是也只能自己本地操作,不能远程使用。接下来,我将用 Y20持续部署系统 把以上流程编排为流水线,实现远程自动操作。Y20持续部署系统如何使用,这里就不详细说明了,简单的说,她是个流水线的编排和运行系统。

这条远程自动PDF转Word流水线的步骤,我将做如下编排(已发布到 PDF转WORD):

  1. 指定哪一台电脑完成转换
  2. 将pdf2word.py程序传输到这台电脑
  3. 将PDF文件传输到这台电脑
  4. 打开终端,执行Python程序
  5. 将转换好的Word文件传到服务器,以供下载

运行前,需要把安装好Acrobat DC Pro和Anaconda Python的机器接入到持续部署系统,将步骤1的节点参数指定为这台电脑。

启动流水线时,上传PDF文件。结束后,在流水线详情页面的”上传的文件“中,就可以下载转换好的Word文件了。

给大家演示一下远程通过流水线完成PDF转Word

视频内容

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本地实现
    • 【步骤1】
      • 【步骤2】
        • 【步骤3】
        • 远程实现
        相关产品与服务
        持续部署
        CODING 持续部署(CODING Continuous Deployment,CODING-CD)用以管理软件在经过构建之后的发布和部署交付过程,可以无缝对接上游 Git 仓库、制品仓库实现全自动化部署,同时支持 Webhook 等外部对接能力,方便集成各种开发、运维工具。在配以合适的技术架构、运维工具的基础上,可以方便地实现蓝绿发布、灰度发布(金丝雀发布)、滚动发布、快速回滚等功能。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档