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):
    
### 免费 PDF 翻译工具网站推荐 以下是一些免费的在线 PDF 翻译工具和网站,它们可以帮助用户快速翻译 PDF 文档,保留原文档的格式。 #### 1. 小牛翻译云平台 小牛翻译云平台是一个免费的在线文档翻译器,支持多种文档格式,包括 WordPDFExcelPPTX。用户只需上传文件,选择目标语言,即可一键完成翻译。该平台能够保留原文档的排版,非常适合需要高质量翻译结果的用户[^1]。 #### 2. 开源免费文档翻译工具 这是一款开源的文档翻译工具,支持 WordPDFPPTExcel 等多种格式。使用简便,只需上传文件选择翻译语言,即可生成翻译后的文档。它完全免费且没有字符限制,适合日常办公和学习中的翻译需求[^2]。 #### 3. PDFMathTranslate PDFMathTranslate 是一款专门用于翻译科技论文等 PDF 文件的开源工具。它可以保留原文档的排版,包括公式和图表,支持双语对照查看。此外,它兼容多种翻译服务,如 Google、DeepL、Ollama 和 OpenAI 等,用户可以根据需求选择合适的翻译服务[^3]。 ##### 主要功能 - **保留原排版**:能够完整保留 PDF 文档中的公式、图表和目录结构。 - **双语对照**:支持生成双语对照文档,方便用户对照原文和译文。 - **全文翻译**:提供全文翻译功能,用户可以选择翻译整个文档。 - **部分文档翻译**:支持用户选择特定页面章节进行翻译。 - **多种翻译服务支持**:兼容 Google、DeepL、Ollama、OpenAI 等多种翻译服务。 ##### 技术原理 - **文档解析**:使用 Pdfminer.six 等库解析 PDF 文档,提取文本、公式和图表。 - **布局分析**:基于 DocLayout-YOLO 等技术进行布局分析,识别文档中的不同元素及其位置。 - **翻译服务接口**:集成多种翻译服务 API,实现文本的自动翻译。 - **多线程翻译**:使用 MathTranslate 等工具进行多线程翻译,提高翻译效率。 #### 4. AI 翻译英语 PDF 文档的方法 某些 AI 工具可以处理 PDF 文档的翻译任务,但需要注意文件大小限制。例如,单个 docx/xlsx/html/markdown 文件最多支持 800 万字符,有页数的 docx/pdf/pptx 最多支持 300 页,文本文件 (txt) 最大为 10MB,二进制文件 (pdf/docx/pptx/xlsx) 最大为 40MB[^4]。 --- ### 示例代码 以下是一个简单的 Python 脚本示例,展示如何使用 `PyPDF2` 提取 PDF 中的文本调用 Google Translate 进行翻译(需自行配置 API): ```python from googletrans import Translator from PyPDF2 import PdfReader # 初始化翻译器 translator = Translator() # 读取 PDF 文件 reader = PdfReader("example.pdf") text = "" for page in reader.pages: text += page.extract_text() # 翻译文本 translated_text = translator.translate(text, src='en', dest='zh-cn').text # 输出翻译后的内容 print(translated_text) ``` ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值