From e026182838145bb6f92b8fe01f701efd1630f6b3 Mon Sep 17 00:00:00 2001 From: ktianc Date: Fri, 5 Jan 2024 11:34:21 +0800 Subject: [PATCH] =?UTF-8?q?ppt=20=E8=BD=AC=20pdf=20=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=88=86=E7=A6=BB=EF=BC=8C=E4=B8=8D=E9=BB=98=E8=AE=A4=E5=AF=BC?= =?UTF-8?q?=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kinit-api/utils/ppt_to_pdf.py | 40 +++++++++++++++++++++++++++++++ kinit-api/utils/tools.py | 45 ----------------------------------- 2 files changed, 40 insertions(+), 45 deletions(-) create mode 100644 kinit-api/utils/ppt_to_pdf.py diff --git a/kinit-api/utils/ppt_to_pdf.py b/kinit-api/utils/ppt_to_pdf.py new file mode 100644 index 0000000..7722536 --- /dev/null +++ b/kinit-api/utils/ppt_to_pdf.py @@ -0,0 +1,40 @@ +import os +from win32com.client import gencache +import comtypes.client +from core.logger import logger + + +def ppt_to_pdf_1(ppt_path: str, pdf_path: str): + """ + ppt 转 pdf,会弹出 office 软件 + :param ppt_path: + :param pdf_path: + :return: + """ + # 创建PDF + powerpoint = comtypes.client.CreateObject("Powerpoint.Application") + powerpoint.Visible = 1 + slide = powerpoint.Presentations.Open(ppt_path) + # 保存PDF + slide.SaveAs(pdf_path, 32) + slide.Close() + # 退出 office 软件 + powerpoint.Quit() + + +def ppt_to_pdf_2(ppt_path: str, pdf_path: str): + """ + 完美办法,PPT 转 PDF + :param ppt_path: + :param pdf_path: + :return: + """ + p = gencache.EnsureDispatch("PowerPoint.Application") + try: + ppt = p.Presentations.Open(ppt_path, False, False, False) + ppt.ExportAsFixedFormat(pdf_path, 2, PrintRange=None) + ppt.Close() + p.Quit() + except Exception as e: + print(os.path.split(ppt_path)[1], "转化失败,失败原因%s" % e) + logger.info(os.path.split(ppt_path)[1], "转化失败,失败原因%s" % e) diff --git a/kinit-api/utils/tools.py b/kinit-api/utils/tools.py index dfc49c1..4f6dc9c 100644 --- a/kinit-api/utils/tools.py +++ b/kinit-api/utils/tools.py @@ -6,8 +6,6 @@ # @IDE : PyCharm # @desc : 工具类 -from win32com.client import gencache -import comtypes.client import datetime import random import re @@ -103,46 +101,3 @@ async def import_modules_async(modules: list, desc: str, **kwargs): logger.error(f"AttributeError:导入{desc}失败,未找到该模块:{module}") except AttributeError: logger.error(f"ModuleNotFoundError:导入{desc}失败,未找到该模块下的方法:{module}") - - -def ppt_to_pdf_1(ppt_path: str, pdf_path: str): - """ - ppt 转 pdf,会弹出 office 软件 - :param ppt_path: - :param pdf_path: - :return: - """ - # 创建PDF - powerpoint = comtypes.client.CreateObject("Powerpoint.Application") - powerpoint.Visible = 1 - slide = powerpoint.Presentations.Open(ppt_path) - # 保存PDF - slide.SaveAs(pdf_path, 32) - slide.Close() - # 退出 office 软件 - powerpoint.Quit() - - -def ppt_to_pdf_2(ppt_path: str, pdf_path: str): - """ - 完美办法,PPT 转 PDF - :param ppt_path: - :param pdf_path: - :return: - """ - p = gencache.EnsureDispatch("PowerPoint.Application") - try: - ppt = p.Presentations.Open(ppt_path, False, False, False) - ppt.ExportAsFixedFormat(pdf_path, 2, PrintRange=None) - ppt.Close() - p.Quit() - except Exception as e: - print(os.path.split(ppt_path)[1], "转化失败,失败原因%s" % e) - logger.info(os.path.split(ppt_path)[1], "转化失败,失败原因%s" % e) - - -if __name__ == '__main__': - # print(generate_invitation_code()) - # print(int(datetime.datetime.now().timestamp())) - # print(datetime.datetime.today() + datetime.timedelta(days=7)) - print(generate_string(15))