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):

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

被折叠的 条评论
为什么被折叠?



