Python——将PPT和Word转为PDF文件

简介: Python——将PPT和Word转为PDF文件

前言

通过win32com.client将PPT和Word文件转为PDF格式

内容

import fitz  # pip install pymupdf
import win32com.client
import os
def ppt2pdf(filename, output_filename):
    """
    PPT文件导出为pdf格式
    :param filename: PPT文件的名称
    :param output_filename: 导出的pdf文件的名称
    :return:
    """
    ppt_app = win32com.client.Dispatch('PowerPoint.Application')
    ppt = ppt_app.Presentations.Open(filename)
    ppt.SaveAs(output_filename, 32)
    ppt_app.Quit()
def doc2pdf(doc_path, pdf_path):
     """
     word转pdf
    :param doc_path: word文件路径
    :param pdf_path: 生成pdf文件路径
    """
    word = win32com.client.gencache.EnsureDispatch('Word.Application')
    doc = word.Documents.Open(doc_path, ReadOnly=1)
    doc.ExportAsFixedFormat(pdf_path,
                            win32com.client.constants.wdExportFormatPDF,
                            Item=win32com.client.constants.wdExportDocumentWithMarkup,
                            CreateBookmarks=win32com.client.constants.wdExportCreateHeadingBookmarks)
    word.Quit(win32com.client.constants.wdDoNotSaveChanges)
def pdf2img(pdf_path, zoom_x, zoom_y):
    """
    参数说明
    :param pdf_path: pdf文件的路径
    :param zoom_x: x轴方向的缩放系数
    :param zoom_y: y轴方向的缩放系数
    """
    doc = fitz.open(pdf_path)  # 打开pdf文件
    for page in doc:  # 逐页循环
        # print(page.number)
        pic = page.get_pixmap(matrix=fitz.Matrix(zoom_x, zoom_y))  # 将页面渲染为图片
        dir_save = os.path.dirname(pdf_path)  # 结果保存的路径与pdf文件所在的路径同级
        pdf_name = os.path.basename(pdf_path).split('.pdf')[0]
        pic.save(f'{dir_save}/{pdf_name}-page-{page.number + 1}.png')  # 逐页将pdf存储为PNG格式
        if page.number == 1:  # 只对PDF前两页做转换
            break
    doc.close()  # 关闭读取pdf文件
for root, dirs, files in os.walk(r"\\Desktop-le2mgrr\宋延余共享文件夹\碳相关资料收集"):  # 将目录修改为需要批量转换的PDF目录
    for file in files:
        file_path = os.path.join(root, file)
        if file.endswith((".doc", ".docx")):
            print('doc', file)
            doc2pdf(file_path, os.path.join(root, f"{file}.pdf"))
        if file.endswith((".ppt", ".pptx")):
            print('ppt', file)
            ppt2pdf(file_path, os.path.join(root, f"{file}.pdf"))
# for root, dirs, files in os.walk(r"\\Desktop-le2mgrr\宋延余共享文件夹\碳相关资料收集"):  # 将目录修改为需要批量转换的PDF目录
#     for file in files:
#         if file.endswith(".pdf"):
#             print('pdf', file)
#             pdf2img(
#                 os.path.join(root, file),
#                 zoom_x=3,
#                 zoom_y=3
#             )

学无止境,谦卑而行.

目录
相关文章
|
11天前
|
人工智能 文字识别 数据挖掘
MarkItDown:微软开源的多格式转Markdown工具,支持将PDF、Word、图像和音频等文件转换为Markdown格式
MarkItDown 是微软开源的多功能文档转换工具,支持将 PDF、PPT、Word、Excel、图像、音频等多种格式的文件转换为 Markdown 格式,具备 OCR 文字识别、语音转文字和元数据提取等功能。
78 9
MarkItDown:微软开源的多格式转Markdown工具,支持将PDF、Word、图像和音频等文件转换为Markdown格式
|
14天前
|
JavaScript
jquery图片和pdf文件预览插件
EZView.js是一款jquery图片和pdf文件预览插件。EZView.js可以为图片和pdf格式文件生成在线预览效果。支持的文件格式有pdf、jpg、 png、jpeg、gif。
45 16
|
13天前
|
计算机视觉 Python
如何使用Python将TS文件转换为MP4
本文介绍了如何使用Python和FFmpeg将TS文件转换为MP4文件。首先需要安装Python和FFmpeg,然后通过`subprocess`模块调用FFmpeg命令,实现文件格式的转换。代码示例展示了具体的操作步骤,包括检查文件存在性、构建FFmpeg命令和执行转换过程。
35 7
|
2月前
|
安全 Linux 数据安全/隐私保护
python知识点100篇系列(15)-加密python源代码为pyd文件
【10月更文挑战第5天】为了保护Python源码不被查看,可将其编译成二进制文件(Windows下为.pyd,Linux下为.so)。以Python3.8为例,通过Cython工具,先写好Python代码并加入`# cython: language_level=3`指令,安装easycython库后,使用`easycython *.py`命令编译源文件,最终生成.pyd文件供直接导入使用。
python知识点100篇系列(15)-加密python源代码为pyd文件
|
1月前
|
开发者 Python
Python中__init__.py文件的作用
`__init__.py`文件在Python包管理中扮演着重要角色,通过标识目录为包、初始化包、控制导入行为、支持递归包结构以及定义包的命名空间,`__init__.py`文件为组织和管理Python代码提供了强大支持。理解并正确使用 `__init__.py`文件,可以帮助开发者更好地组织代码,提高代码的可维护性和可读性。
60 2
|
1月前
|
中间件 Docker Python
【Azure Function】FTP上传了Python Function文件后,无法在门户页面加载函数的问题
通过FTP上传Python Function至Azure云后,出现函数列表无法加载的问题。经排查,发现是由于`requirements.txt`中的依赖包未被正确安装。解决方法为:在本地安装依赖包到`.python_packages/lib/site-packages`目录,再将该目录内容上传至云上的`wwwroot`目录,并重启应用。最终成功加载函数列表。
|
2月前
|
Java Python
> python知识点100篇系列(19)-使用python下载文件的几种方式
【10月更文挑战第7天】本文介绍了使用Python下载文件的五种方法,包括使用requests、wget、线程池、urllib3和asyncio模块。每种方法适用于不同的场景,如单文件下载、多文件并发下载等,提供了丰富的选择。
|
2月前
|
数据安全/隐私保护 流计算 开发者
python知识点100篇系列(18)-解析m3u8文件的下载视频
【10月更文挑战第6天】m3u8是苹果公司推出的一种视频播放标准,采用UTF-8编码,主要用于记录视频的网络地址。HLS(Http Live Streaming)是苹果公司提出的一种基于HTTP的流媒体传输协议,通过m3u8索引文件按序访问ts文件,实现音视频播放。本文介绍了如何通过浏览器找到m3u8文件,解析m3u8文件获取ts文件地址,下载ts文件并解密(如有必要),最后使用ffmpeg合并ts文件为mp4文件。
|
2月前
|
Java Apache Maven
将word文档转换成pdf文件方法
在Java中,将Word文档转换为PDF文件可采用多种方法:1) 使用Apache POI和iText库,适合处理基本转换需求;2) Aspose.Words for Java,提供更高级的功能和性能;3) 利用LibreOffice命令行工具,适用于需要开源解决方案的场景。每种方法都有其适用范围,可根据具体需求选择。
|
2月前
|
Java Apache Maven
Java将word文档转换成pdf文件的方法?
【10月更文挑战第13天】Java将word文档转换成pdf文件的方法?
577 1