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

学无止境,谦卑而行.

目录
相关文章
|
13天前
|
安全 项目管理 Python
使用Python shutil库进行文件和目录操作
使用Python shutil库进行文件和目录操作
使用Python shutil库进行文件和目录操作
|
2天前
|
Java 数据安全/隐私保护 Python
Python案例分享:如何实现文件的解压缩
Python案例分享:如何实现文件的解压缩
21 8
|
2天前
|
存储 缓存 安全
Python案例分享:如何实现文件的上传下载
Python案例分享:如何实现文件的上传下载
23 6
|
13天前
|
XML JSON 数据安全/隐私保护
PyMuPDF,Python处理PDF的宝藏库
PyMuPDF,Python处理PDF的宝藏库
|
13天前
|
Python
Python也可以合并和拆分PDF,批量高效!
Python也可以合并和拆分PDF,批量高效!
|
13天前
|
Python
还不会免费将PDF转为Word?你可以试试这3种工具!
还不会免费将PDF转为Word?你可以试试这3种工具!
|
13天前
|
TensorFlow 算法框架/工具 C++
Python exe文件打包神器-Nuitka!
Python exe文件打包神器-Nuitka!
|
27天前
|
XML 缓存 JSON
为什么浏览器中有些图片、PDF等文件点击后有些是预览,有些是下载
为什么浏览器中有些图片、PDF等文件点击后有些是预览,有些是下载
96 0
|
1月前
|
Linux Python Windows
Python PDF文件转Word格式,只需要3秒(附打包)
Python PDF文件转Word格式,只需要3秒(附打包)
47 3
Python PDF文件转Word格式,只需要3秒(附打包)
|
14天前
|
移动开发 资源调度 JavaScript
Vue移动端网页(H5)预览pdf文件(pdfh5和vue-pdf)
这篇文章介绍了在Vue移动端网页中使用`pdfh5`和`vue-pdf`两个插件来实现PDF文件的预览,包括滚动查看、缩放、添加水印、分页加载、跳转指定页数等功能。
Vue移动端网页(H5)预览pdf文件(pdfh5和vue-pdf)