Python 实现office单个文件或整个文件夹(word,ppt,excel)转换成PDF文件,并获取PDF文件页数

本文介绍了一个使用Python将Office文档(word, excel, ppt)批量转换为PDF的方法,包括单个文件和整个文件夹的处理,同时获取PDF文件的页数。

Python 实现office单个文件或整个文件夹(word,ppt,excel)转换成PDF文件,并获取PDF文件页数

文件夹中获取需要转换的文件数,将其全部转换或可单独转换单个文件,并获取转成PDF的文件页数,具体实现如下:
用到的库:os,sys,pdfplumber,client22,pythoncom
库的安装方法:pip install pythoncom
代码:

# import pdfplumber
import os
import sys
import pdfplumber
from client22 import dynamic
import pythoncom
def __WrapDispatch(dispatch, userName = None, resultCLSID = None, typeinfo = None, \
                  UnicodeToString=None, clsctx = pythoncom.CLSCTX_SERVER,
                  WrapperClass = None):
  """
   Helper函数返回CLSID的makepy生成类(如果存在的话),否则使用CDispatch进行处理。
  """
  assert UnicodeToString is None, "this is deprecated and will go away"
  if resultCLSID is None:
    try:
      typeinfo = dispatch.GetTypeInfo()
      if typeinfo is not None: # 有些对象返回空值,有些引发异常。。。
        resultCLSID = str(typeinfo.GetTypeAttr()[0])
    except (pythoncom.com_error, AttributeError):
      pass

  if WrapperClass is None: WrapperClass = CDispatch
  return dynamic.Dispatch(dispatch, userName, WrapperClass, typeinfo, clsctx=clsctx)


def Dispatch(dispatch, userName = None, resultCLSID = None, typeinfo = None, UnicodeToString=None, clsctx = pythoncom.CLSCTX_SERVER):
  """创建基于调度的COM对象。
  """
  
  assert UnicodeToString is None, "这是不赞成的,将消失"
  dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
  return __WrapDispatch(dispatch, userName, resultCLSID, typeinfo, clsctx=clsctx)

class CDispatch(dynamic.CDispatch):
  """
    作为最后手段使用的动态类。重写dynamic.CDispatch的目的是使策略永久化
    使用makepy生成的包装器Python类而不是dynamic.CDispatch如果可能的话。
  """
  def _wrap_dispatch_(self, ob, userName = None, returnCLSID = None, UnicodeToString=None):
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值