利用python3将已有的某几个pptx文件的某些slides来生成新的pptx文件的范例
#!/bin/python # -*- coding: utf-8 -*- from pptx import Presentation import copy import datetime import sys def copy_slide(prs_base, prs_add, add_index_no, base_master_no, base_layout_no): source = prs_add.slides[int(add_index_no)] dest = prs_base.slides.add_slide(prs_base.slide_masters[int(base_master_no)].slide_layouts[int(base_layout_no)]) for placeholder in dest.shapes.placeholders: if placeholder.has_text_frame and placeholder.text_frame.text == "": sp = placeholder._sp sp.getparent().remove(sp) for shape in source.shapes: newel = copy.deepcopy(shape.element) dest.shapes._spTree.insert_element_before(newel, 'p:extLst') for key, value in source.part.rels.items(): if not "notesSlide" in value.reltype and not "slideLayout" in value.reltype: dest.part.rels.add_relationship(value.reltype, value._target, value.rId) return dest PATH_PPTX = "/var/www/borg/public/file/proposal/pptx/" PATH_TEMP = "/var/www/borg/public/file/proposal/tmp/" prs_base = Presentation(PATH_PPTX + "base.pptx") try: value = sys.argv count = 0 for arg in value: if count == 0: count+=1 else: params = arg.split(":") prs_1 = Presentation(PATH_PPTX + params[0]) copy_slide(prs_base, prs_1, params[1], params[2], params[3]) del prs_1 save_name = "merged" + '_{0:%Y%m%d%H%M%S}'.format(datetime.datetime.now()) + ".pptx" prs_base.save(PATH_TEMP + save_name) print("success") print(save_name) except Exception as e: print("error") print(e)
需要安装python3, pip, python-pptx
yum install python3
cd /usr/local/src
wget wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
python3 -m pip install python-pptx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)