来一个幻灯片的生成
pip install python-pptx
import pptx
# ppt文档对象
ppt = pptx.Presentation()
# 幻灯片容器
slides = ppt.slides
# 获得一个版式
page = ppt.slide_layouts[1]
slide_layouts[1]为带标题和正文框的ppt,slide_layouts[6]为空白页ppt
import pptx
# ppt文档对象
ppt = pptx.Presentation()
# 演示文档容器
slides = ppt.slides
# 获得一个版式
layout1 = ppt.slide_layouts[1]
# 容器添加一个版式
print(len(slides))
slides.add_slide(layout1)
print(len(slides))
ppt.save('test.pptx')
import pptx
# ppt文档对象
ppt = pptx.Presentation()
# 演示文档容器
slides = ppt.slides
# 获得一个版式
layout1 = ppt.slide_layouts[2]
# 容器添加一个版式
print(len(slides))
slides.add_slide(layout1)
print(len(slides))
ppt.save('test2.pptx')
对着演示来看,一共十一个
我们试试序号七的结构,验证一下猜测
与猜测相符
版式一有两个占位符
import pptx
# ppt文档对象
ppt = pptx.Presentation()
# 演示文档容器
slides = ppt.slides
# 获得一个版式
layout1 = ppt.slide_layouts[1]
# 容器添加一个版式
page = slides.add_slide(layout1)
# 获得所有的占位符
placeholders = page.shapes.placeholders
# 给占位符添加内容
placeholders[0].text = '这是标题的位置'
placeholders[1].text = '这是正文的内容/n可以吗'
ppt.save('test1.pptx')
标题占位符的两种对象获取方式
占位符对象具有文本框对象
文本框里面可以有多个段落
import pptx
from pptx.util import Pt
# ppt文档对象
ppt = pptx.Presentation()
# 演示文档容器
slides = ppt.slides
# 获得一个版式
layout1 = ppt.slide_layouts[1]
# 容器添加一个版式
page = slides.add_slide(layout1)
# 获得所有的占位符
placeholders = page.shapes.placeholders
# 给占位符添加内容
placeholders[0].text = '这是标题的位置'
placeholders[1].text = '这是正文的内容'
# 文本框对象(占位符一的)
text_frame = placeholders[1].text_frame
# 段落对象(文本框的)
paragraph = text_frame.add_paragraph()
paragraph2 = text_frame.add_paragraph()
# 给段落对象添加内容
paragraph.text = '第一个段落内容'
paragraph2.text = '第二个段落内容'
# 段落的样式
paragraph.font.bold = True
paragraph2.font.size = Pt(15)
paragraph2.font.underline = True
ppt.save('test1.pptx')
代码
import pptx
# ppt文档对象
from pptx.util import Pt, Inches
ppt = pptx.Presentation()
# 演示文档容器
slides = ppt.slides
# 获得一个版式
layout1 = ppt.slide_layouts[1]
# 容器添加一个版式
page = slides.add_slide(layout1)
# 获得所有的占位符
placeholders = page.shapes.placeholders
# 给占位符添加内容
placeholders[0].text = '这是标题的位置'
placeholders[1].text = '这是正文的内容'
# 文本框对象(占位符一的)
text_frame = placeholders[1].text_frame
# 段落对象(文本框的)
paragraph = text_frame.add_paragraph()
paragraph2 = text_frame.add_paragraph()
# 给段落对象添加内容
paragraph.text = '第一个段落内容'
paragraph2.text = '第二个段落内容'
# 段落的样式
paragraph.font.bold = True
paragraph2.font.size = Pt(15)
paragraph2.font.underline = True
# 文本框对象
left = Inches(6) # 左
top = Inches(2) # 顶
width = Inches(4) # 宽
height = Inches(4) # 高
textbox = page.shapes.add_textbox(left,top,width,height)
# 文本框的内容
# textbox.text = "这是文本框的内容这是文本框的内容这是文本框的内容"
# 文本框的段落
para = textbox.text_frame.add_paragraph()
para.text = "文本框的段落内容文本框的段落内容文本框的段落内容文本框的段落内容"
ppt.save('test222.pptx')
存在的问题
虽然给文本框设定了一个宽度和高度,但是里面的内容仍然会超出它的边界,这个问题需要解决
在PHP中,array是最常用的结构了,可以当做队列、堆栈、hash等结构使用,所以遍历array最常用的foreach循环,我们用得很多,但其实foreach循环中有一个隐藏的坑,如下代码: <?php$arr = [1,2,4];foreach($arr as &$a){ $a = $a*$a;}print_r($arr);foreach($arr as $a){ print_
如何往IE工具条添加按钮问题提出:金山词霸、网络蚂蚁等软件安装后会向IE的工具条添加自己的按钮。按下按钮后还会作出相应的动作,这种功能是如何实现的呢?读完本文,您也可以将自己应用程序的按钮添加到IE的工具条中。基本原理:从IE5开始便允许我们向工具栏添加自己的按钮,其本质就是修改注册表,添加创建此按钮所需的信息。实现步骤:1.创建此按钮的GUID(globally uniq...
技术总结—基于SSH的项目开发 1语言和工具在这次实训开发的系统中,我们才用J2EE开发,主要用到了JAVA、JSP相关技术。我们是基于MyEclipse平台开发的,采用了j2ee+MySql开源数据库,这些开源的工具有利于节约成本。不过这些工具还是比不上微软的强大,很多东西都没微软那么规范,毕竟是开源的,象一些报错一样,微软的参考文档是很出色。JAVA还有很多待改善的地方。但用起
Android 横向列表实现,可左右滑动,如下图1.主界面布局代码:activity_main.xmla.包裹HorizontalScrollView控件是GirdView横向滚动的基本条件b.GirdView外包裹LinearLayout是java代码中参数设置的必要条件<?xml version="1.0" encoding="utf-8"?><...
修改Tomcat端口号设置虚拟路径方法1(修改配置文件):在Tomcat7的安装目录下找到conf目录,在该目录下有一个server.xml文件,这个文件的任务是配置整个服务器信息。例如修改端口号,添加虚拟主机…… 打开这个文件,找到HOST标签,在这个标签中处插入以下代码:<Context path="/yang" docBase="f:\mysite1\xxx.war" deb...
Visual Studio无法查找或打开 PDB 文件解决办法 用VS调试程序时,有时会在VS底部的“输出”框中提示“无法查找或打开 PDB 文件”。这该怎么解决呢? 下面,我们以VS2013为例,来教大家解决办法。 ...
1、打开注册表:win+R“regedit”确定;2、依次打开[HKEY_CURRENT_USER\Control Panel\Colors], 把Windows的值改为“202 234 206”3、依次打开[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\DefaultColors\Standard],双击W...
http://hi.baidu.com/tracyu1026/item/bb6d5def4292b10b570f1d48 libcurl提供了一组C语言API函数直接调用。首先需要提到的两个函数就是curl_global_init()和 curl_global_cleanup()。libcurl要用到一系列的全局常量,curl_global_init()函数就是初始化这些变量,并分配一些全...
redis 是一个单线程却性能非常好的内存数据库, 主要用来作为缓存系统。 redis 采用网络IO多路复用技术来保证在多连接的时候, 系统的高吞吐量。为什么 Redis 中要使用 I/O 多路复用这种技术呢?首先,Redis 是跑在单线程中的,所有的操作都是按照顺序线性执行的,但是由于读写操作等待用户输入或输出都是阻塞的,所以 I/O 操作在一般情况下往往不能直接返回,这会导致某一文件的 I/O...
文章目录前言一、IO流1 input/output 输入输出流1.1 File的三种常用方式二、使用步骤1.引入库2.读入数据总结前言一、IO流1 input/output 输入输出流1.1 File的三种常用方式格式: File file=new File("要创建的文件路径"); File file1=new File(字符串类型"在那个文件夹路径","在前面的文件夹中创建什么文件"); File file2=new File(File类型 file[在那个File类中的文件.
java.lang.ClassNotFoundException: com.mysql.jdbc.Driverat java.net.URLClassLoader.findClass(URLClassLoader.java:381)at java.lang.ClassLoader.loadClass(ClassLoader.java:424)at sun.misc.Launcher$A
继承是面向对象思想里的一个重要概念和特点。但是用LotusScript开发时,即使采用面向对象的技术,也很少使用类的继承。主要是因为,LotusScript要解决的问题范围比较狭窄,也不算复杂,所以通常一个或几个自定义类就能完全,不需要构建复杂的类的体系。不过当LotusScript的开发大部分都转为类的开发时,也有一些情况,会需要应用继承。这些情况,大部分和其他面向对象的语言之所以应用继承一