我尝试启动python-pptx,但出现错误:
AttributeError: module 'collections' has no attribute 'Container'
in File "...\lib\site-packages\pptx_init_.py", line 14 
使用Python 3.10、python-pptx (0.6.21)、lxmx (4.6.3)。
如何复制幻灯片?
我创建了一个模板幻灯片,我需要复制它并分别编辑每个副本的形状。
或者如何将我的模板幻灯片添加到presentation.slide_layouts?
我想在演示文稿中添加一个文本框python pptx。我想在特定位置添加一个包含多个段落的文本框,然后对其进行格式化(字体、颜色等)。但由于文本形状对象总是在开头带有一个段落,因此我无法编辑第一个段落。代码示例如下所示:
txBox = slide.shapes.add_textbox(left, top, width, height)
tf = txBox.text_frame
p = tf.add_paragraph()
p.text = "This is a first paragraph"
p.font.size = Pt(11)
p = tf.add_paragraph()
p.text = "This is a second paragraph"
p.font.size = Pt(11) 
我可以使用 向第一行添加文本tf.text = "This is text inside a textbox",但它的字体或颜色不可编辑。那么有什么方法可以省略或编辑该行,以便框中的所有段落都相同?
我正在创建一个脚本来显示产品性能图表,并创建一个表格来显示其部件号、应用程序列表和当前应用程序的数量。
但是,默认字体大小太大,无法将所有这些信息放入幻灯片中,需要缩小。
如何在 Python-pptx 中减小表格中文本的字体大小?
这就是我所拥有的,但我不断收到错误消息“AttributeError: '_Cell' 对象没有属性 'paragraph'”
table = shapes.add_table(rows, cols, left + left_offset, top + Inches(.25), width, height - Inches(.25)).table
#column width
for i in range(3):
    table.columns[i].width = col_width[i]           
    for i in range(len(a_slide)):
        #color table
        if i % 2 == 0:
            for j in range(3):
                fill = table.cell(i, j).fill
                fill.background()
        else:
            for j in range(3):
                fill = table.cell(i, j).fill
                fill.solid()
                fill.fore_color.rgb = RGBColor(240, 128, 128)
        #populate table
        table.cell(i, 0).text = str(item["name"])
        try:
            table.cell(i, 1).text = ", ".join(item["app"]) …简而言之:是否可以在 Python-pptx 中将文本与中心对齐?
自从我使用 Python-pptx 以来,我已经能够自动化很多事情,我真的很喜欢使用它!但是,我遇到了一个问题。我试图在幻灯片上水平居中我的文本。如果你不明白我的意思:
我的文本现在向左对齐,类似于前两段中的文本。但是,我希望它们与中心对齐,就像最后两段一样。这是我的代码片段:
left = Cm(3)
top = Cm(2.5)
width = Cm(15)
height = Cm(1)
txBox = slide.shapes.add_textbox(left, top, width, height)
tf = txBox.text_frame
p = tf.add_paragraph()
run = p.add_run()
run.text = "Just an example"
font = run.font
font.size = Pt(30)
我查看了文档,但找不到任何有用的东西。我读了一些关于“MSO_VERTICAL_ANCHOR”和“PP_PARAGRAPH_ALIGNMENT”的内容,但我无法让它工作。
先感谢您!
这很简单,但我无法在文档中的任何位置找到实际方法或其他方法.
我正在使用python-pptx模块,我需要做的就是在一些幻灯片上删除一个占位符项,一个空文本框(不必为这些幻灯片创建一个全新的布局) - 最接近答案的东西在这里:http://python-pptx.readthedocs.io/en/latest/user/placeholders-understanding.html在Unpopulated vs. populated下但它仍然没有说明如何实际删除/删除占位符.
我已经尝试了所有明显的方法.delete(),. remove()等.
我有一个包含 20 张幻灯片的现有 PowerPoint 演示文稿。此演示文稿用作模板,每张幻灯片都有不同的背景。我想使用这个(现有的)PowerPoint 演示文稿,在第 4 张幻灯片中插入一个图像(前 3 个不做任何处理)并将其另存为新的 PowerPoint 演示文稿。
这就是我到目前为止所拥有的。此代码加载现有演示文稿并将其另存为新演示文稿。现在我只需要知道如何使用它像上面描述的那样将图像插入第 4 号幻灯片。
注意:我使用的是普通的 Python。
from pptx import Presentation
def open_PowerPoint_Presentation(oldFileName, newFileName):
    prs = Presentation(oldFileName)
    #Here I guess I need to type something to complete the task.
    prs.save(newFileName)
open_PowerPoint_Presentation('Template.pptx', 'NewTemplate.pptx')
Python 3 替换StringIO.StringIO为io.StringIO. 我已经能够使用前者成功保存演示文稿,但它似乎不适用于后者。
from pptx import Presentation
from io import StringIO
presentation = Presentation('presentation.pptx')
output = StringIO()
presentation.save(output)
上面的代码产生:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\mgplante\AppData\Local\Continuum\Anaconda2\envs\ppt_gen\lib\site-packages\pptx\presentation.py", line 46, in save
    self.part.save(file)
  File "C:\Users\mgplante\AppData\Local\Continuum\Anaconda2\envs\ppt_gen\lib\site-packages\pptx\parts\presentation.py", line 118, in save
    self.package.save(path_or_stream)
  File "C:\Users\mgplante\AppData\Local\Continuum\Anaconda2\envs\ppt_gen\lib\site-packages\pptx\opc\package.py", line 166, in save
    PackageWriter.write(pkg_file, self.rels, self.parts)
  File "C:\Users\mgplante\AppData\Local\Continuum\Anaconda2\envs\ppt_gen\lib\site-packages\pptx\opc\pkgwriter.py", line 33, in write
    PackageWriter._write_content_types_stream(phys_writer, parts)
  File "C:\Users\mgplante\AppData\Local\Continuum\Anaconda2\envs\ppt_gen\lib\site-packages\pptx\opc\pkgwriter.py", line 47, in _write_content_types_stream
    phys_writer.write(CONTENT_TYPES_URI, content_types_blob)
  File "C:\Users\mgplante\AppData\Local\Continuum\Anaconda2\envs\ppt_gen\lib\site-packages\pptx\opc\phys_pkg.py", line 156, in write …
看来这个问题是在2015年提出并要求的,但我找不到任何更新。我正在尝试通过执行以下操作将整个幻灯片(包括其文本和图像)从另一个演示文稿复制到我的工作演示文稿中:
prs = Presentation('CurrentPresentation.pptx')
prs1 = Presentation('OtherPresentation.pptx')
# Wanted_Slide = prs1.slides[0]
New_Slide = prs.slides.add_slide(prs1.slide_layout[0])
但是,所有这些操作就是添加一个完全空白的幻灯片(带有所需幻灯片的背景),幻灯片布局为0,这完全是有道理的。我知道这不是正确的方法。我尝试了以下操作,但确实添加了一张幻灯片,但这只是prs演示文稿中已经存在的一个副本(我想我发现了一种无意中复制演示文稿中已经存在的幻灯片的方法):
def Add_Slide(self):
    xml_slides = prs.slides._sldIdLst
    xml_slides1 = prs1.slides._sldIdLst
    slides = list(xml_slides)
    slides1 = list(xml_slides1)
    xml_slides.append(slides1[0])
上面的代码是我在网上找到的幻灯片删除方法的一种操作。
还是有人对如何将幻灯片及其所有内容完全复制到工作演示文稿中有任何建议?
如果没有任何进展,我对此表示歉意。先感谢您。