当前位置: 首页 > news >正文

赣州网站制作中国采购网官方网站

赣州网站制作,中国采购网官方网站,wordpress折腾,企业网站源码简约简介 python-pptx是一个用于创建、读取和更新PowerPoint#xff08;.pptx#xff09;文件的python库。 典型的用途是根据动态内容#xff08;如数据库查询、分析数据等#xff09;#xff0c;将这些内容自动化生成PowerPoint演示文稿#xff0c;将数据可视化#xff0c…简介 python-pptx是一个用于创建、读取和更新PowerPoint.pptx文件的python库。 典型的用途是根据动态内容如数据库查询、分析数据等将这些内容自动化生成PowerPoint演示文稿将数据可视化方便查看 我们也可以用它做办公自动化定义一套模板然后根据给出的内容批量生成PPT文件大大提高我们的办公效率 Python-pptx的Github地址 https://github.com/scanny/python-pptx 开发文档 https://python-pptx.readthedocs.io/en/latest/ 安装python-pptx pip install python-pptx 本文使用的版本为0.6.21 使用python-pptx创建新的PPT 生成一个全新的PPT文件这种方式适用于所有样式都是由代码来控制的场景 幻灯片效果 实现以上效果的代码 from pptx import Presentation# 创建一个新的 Presentation 对象 prs Presentation() # 获取一个包含主标题和副标题的幻灯片版式 title_slide_layout prs.slide_layouts[0] # 将幻灯片加入到PPT中 slide prs.slides.add_slide(title_slide_layout) # 获取主标题 title slide.placeholders[0] # 获取副标题 subtitle slide.placeholders[1]title.text Hello, World! subtitle.text python-pptx create it # 保存创建的PPT文件 prs.save(G:/simple_ppt/test/test1.pptx)上例中的prs.slide_layouts[0] 获取幻灯片的版式幻灯片的版式共有11个如下所示 从左到右依次是slide_layouts[0]、slide_layouts[1] 一直到 slide_layouts[10]通过对应的下标即可获取对应的幻灯片版式 Tips 上面代码中的slide prs.slides.add_slide(title_slide_layout) 即prs.slides 代表的是当前PPT中所有幻灯片的集合通过add_slide 添加一张幻灯片后拿到的slide 后续针对这个slide 的各种操作也就是单张幻灯片的操作 修改幻灯片大小 1、直接通过slide_width和slide_height指定 from pptx.util import Cmprs Presentation() prs.slide_width Cm(33.85) prs.slide_height Cm(19.02)2、通过模板指定 可以先自定义一个指定了宽高的空白页PPT模板创建Presentation对象时引用它后续创建的幻灯片就能继承到对应的宽高大小 prs Presentation(G:/simple_ppt/test/template.pptx)创建文本 段落创建 想要在幻灯片中添加文本先要通过add_textbox创建一个文本框然后取得text_frame来进行操作 from pptx import Presentation from pptx.util import Cmdef test_blog_text_add():prs Presentation()prs.slide_width Cm(33.85)prs.slide_height Cm(19.02)bullet_slide_layout prs.slide_layouts[6] # 空白版式slide prs.slides.add_slide(bullet_slide_layout)# 添加文本框tx_box slide.shapes.add_textbox(leftCm(2.58), topCm(1.16), widthCm(28), heightCm(2.36))tf tx_box.text_framep0 tf.paragraphs[0]p0.text 这是第一行段落p1 tf.add_paragraph()p1.text 这是新增的第二行段落run p1.add_run()run.text 。第二行结尾直接添加文字prs.save(G:/simple_ppt/test/blog_test.pptx)生成效果如下 Tips: 上面代码中的tx_box slide.shapes.add_textbox(… slide.shapes代表的是当前幻灯片中所有元素的集合如文本框、图片、图标、视频等等可框选的东西都是shapes所以若要添加什么东西也是通过shapes.add_xxx的方式来实现 文本样式添加 一、自动换行 如果我们输入的文本大于文本框的长度时默认是不会换行的可以使用tf.word_wrap来指定自动换行 tf tx_box.text_frame tf.word_wrap True二、文本布局样式 文本框中的文本默认是上方对齐可以使用tfvertical_anchor来指定文本的布局方式 from pptx.enum.text import MSO_ANCHORtf tx_box.text_frame tf.vertical_anchor MSO_ANCHOR.MIDDLETOP将文本与文本框顶部对齐MIDDLE垂直居中文本BOTTOM将文本与文本框底部对齐 参考https://python-pptx.readthedocs.io/en/latest/api/enum/MsoVerticalAnchor.html 注意这个只是指定了文本垂直方向上的移动如想文本基于整个文本框居中需要指定段落的布局方式 设置文本段落布局可以通过设置p.alignment 的方式 from pptx.enum.text import MSO_ANCHOR, PP_ALIGNtf tx_box.text_frame tf.vertical_anchor MSO_ANCHOR.MIDDLE p0 tf.paragraphs[0] p0.text 这是第一行段落 p0.alignment PP_ALIGN.CENTER效果如图 PP_ALIGN的参数有以下几个 CENTER居中对齐DISTRIBUTE在一行中从左到右均匀分布JUSTIFY每行都在页边空白处开始和结束并调整单词之间的间距使该行正好填满段落的宽度JUSTIFY_LOW在单词之间使用少量空格进行对齐LEFT默认的左对齐RIGHT右对齐THAI_DISTRIBUTE泰语分散对齐输入泰语时候指定 以上效果就不一一演示了自己尝试下选择合适的就行 参考 https://python-pptx.readthedocs.io/en/latest/api/enum/PpParagraphAlignment.html 三、文字样式修改 文字的字体、字号、加粗、斜体、下划线、颜色、超链接等这些样式通过font 来设置 参数较多直接上代码 from pptx import Presentation from pptx.util import Cm, Pt from pptx.dml.color import RGBColor from pptx.enum.text import MSO_ANCHOR, PP_ALIGNdef test_blog_text_add():prs Presentation()prs.slide_width Cm(33.85)prs.slide_height Cm(19.02)bullet_slide_layout prs.slide_layouts[6]slide prs.slides.add_slide(bullet_slide_layout)# 添加文本框tx_box slide.shapes.add_textbox(leftCm(2.58), topCm(1.16), widthCm(28.47), heightCm(5))tf tx_box.text_frametf.word_wrap True # 自动换行tf.vertical_anchor MSO_ANCHOR.MIDDLE # 垂直居中p0 tf.paragraphs[0] # 第一行段落p0.alignment PP_ALIGN.CENTER # 设置段落文字居中p0.line_spacing 1.3 # 间距p0.font.name Arial Black # 字体p0.font.size Pt(40) # 字号p0.font.italic True # 斜体p0.font.bold True # 粗体p0.font.underline True # 显示下划线p0.font.color.rgb RGBColor(255, 0, 0) # 设置红色p0.text Hello World!p1 tf.add_paragraph() # 添加新段落p1.text 这是第二行段落run p1.add_run()run.text 。第二行结尾直接添加文字run.hyperlink.address https://www.baidu.com # 添加超链接prs.save(G:/simple_ppt/test/blog_test.pptx)生成的效果 注意当给一个文本添加了超链接后文字的颜色就无法指定了会变成图中这种蓝色加下划线的样式 段落间距设置 可通过line_spacing指定 p0.line_spacing 1.3文字大小自动改变 有时候我们要输入的文本太长而文本框区域有限此时可以指定文字的大小根据文本框的大小自动调整文字的大小 from pptx.enum.text import MSO_AUTO_SIZEtf tx_box.text_frame tf.auto_size MSO_AUTO_SIZE.TEXT_TO_FIT_SHAPEMSO_AUTO_SIZE还有其它三个参数 NONE不进行任何自动调整文字可以超出文本框的边界SHAPE_TO_FIT_TEXT根据文字的内容自动调整文本框的宽度和高度这样可以保持文字的大小不变TEXT_TO_FIT_SHAPE根据文本框的大小自动调整文字的大小这样可以让文字完全填充文本框 参考 https://python-pptx.readthedocs.io/en/latest/api/enum/MsoAutoSize.html 文本层级设置 文字层级一般用来处理段落的缩进对内容进行层级管理通过level 来指定每个paragraph的level默认就是0 p2 tf.add_paragraph() p2.text 第一层 p2.level 0p3 tf.add_paragraph() p3.text 第二层 p3.level 1p4 tf.add_paragraph() p4.text 第三层 p4.level 2效果如下 创建图片 使用add_picture 可以添加图片指定对应的坐标即可 img_path G:/simple_ppt/res/picture.png slide.shapes.add_picture(img_path, leftCm(2.58), topCm(6.16), widthCm(8.3), heightCm(5.13))left和top表示图片左上角顶点分别距离幻灯片左边框和上边框的距离width和height表示图片的宽和高 创建视频或音频 添加视频使用add_movie video_path G:/simple_ppt/res/movie.mp4 slide.shapes.add_movie(video_path, Cm(11.66), Cm(6.22), Cm(8.11), Cm(5.07), mime_typevideo/mp4)视频显示的时候不会自动获取视频里的画面作为预览图只会显示一个默认的喇叭图标若想要根据视频的画面来生成预览图可以借助OpenCV工具来获取视频帧存为图片然后通过poster_frame_image参数来指定 import cv2video_path G:/simple_ppt/res/movie.mp4 cap cv2.VideoCapture(video_path) cap.set(cv2.CAP_PROP_POS_FRAMES, 0) # 设置要获取的帧 ret, frame cap.read() cv2.imwrite(save_poster_temp, frame) cap.release()slide.shapes.add_movie(video_path, Cm(11.66), Cm(6.22), Cm(8.11), Cm(5.07), mime_typevideo/mp4, poster_frame_imagesave_poster_temp)Python-pptx中并没有直接提供添加音频的方法不过其实音频也可以通过add_movie来指定只需要修改ime_type参数为audio/mp3 audio_path G:/simple_ppt/res/audio.mp3 slide.shapes.add_movie(audio_path, Cm(19.77), Cm(6.22), Cm(8.11), Cm(5.07), mime_typeaudio/mp3)效果如下 创建形状图形 Python-pptx中支持添加形状图形也就是下面这些 可通过add_shape来添加 from pptx.enum.shapes import MSO_SHAPEslide.shapes.add_shape(MSO_SHAPE.STAR_5_POINT, leftCm(28.83), topCm(6.87), widthCm(3.7), heightCm(3.7))STAR_5_POINT表示一个五角星更多形状参数可查看以下链接 https://python-pptx.readthedocs.io/en/latest/api/enum/MsoAutoShapeType.html#msoautoshapetype 形状图形的一些属性设置 shape slide.shapes.add_shape(MSO_SHAPE.STAR_5_POINT, leftCm(28.83), topCm(6.87), widthCm(3.7), heightCm(3.7)) shape.rotation 45 # 旋转图标45° shape.shadow.inherit True # 是否取消倒影显示 shape.fill.solid() # 设置这个后才能通过下面的fore_color来设置颜色 shape.fill.fore_color.rgb RGBColor(255, 255, 0) # 修改填充颜色 shape.line.color.rgb RGBColor(255, 0, 0) # 修改边框颜色 shape.line.width Cm(0.1) # 修改边框宽度还可以通过dash_style来指定边框的线条样式 from pptx.enum.dml import MSO_LINEshape.line.dash_style MSO_LINE.DASH # 设置边框为虚线MSO_LINE其它参数 MSO_LINE.SOLID实线MSO_LINE.DASH短划线MSO_LINE.DASH_DOT点划线MSO_LINE.DASH_DOT_DOT双点划线MSO_LINE.LONG_DASH长划线MSO_LINE.LONG_DASH_DOT长点划线MSO_LINE.ROUND_DOT圆点线MSO_LINE.SQUARE_DOT方点线 五角星显示的效果 如果不想要图形的边框可以使用以下方法将边框指定为透明 shape.line.fill.background()创建幻灯片背景 可以通过slide的background来指定纯色背景 bg slide.background bg.fill.solid() bg.fill.fore_color.rgb RGBColor(219, 238, 244)python-pptx库并没有直接提供设置图片作为幻灯片背景的方法但可以通过将图片设置为铺满整个幻灯片来达到同样的效果 img_path G:/bg_image.png slide.shapes.add_picture(img_path, Cm(0), Cm(0), widthprs.slide_width, heightprs.slide_height)slide_width和slide_height获取的分别是整张幻灯片的宽和高 这里要注意图片的层级问题由于没有提供设置图片层级的方法所以作为背景的图片应该放在构建幻灯片的第一位 纯色背景效果 创建幻灯片备注信息 幻灯片底部的备注信息在分屏预览时可用于提示演讲人更详细的幻灯片内容细节 通过has_notes_slide来判断幻灯片是否有备注通过以下代码可以获得幻灯片的备注信息 if slide.has_notes_slide:text_frame slide.notes_slide.notes_text_frameprint(备注文本, text_frame.text)若想修改备注信息直接通过text指定即可 text_frame slide.notes_slide.notes_text_frame text_frame.text 被修改的备注信息备注修改效果 总结 本篇文章介绍了如何使用python-pptx框架生成PPTX文件的方法通过以上学习可以掌握如何通过Python-pptx框架控制幻灯片大小、创建各种样式的文本、在幻灯片中添加图片、视频和音频添加形状图形及如何修改它的样式如何设置幻灯片的背景和备注信息等技能 下一篇将会介绍如何针对已有的PPT模板进行修改
http://www.dnsts.com.cn/news/13397.html

相关文章:

  • 乐从做网站校园网站方案
  • 中小型网站建设信息wordpress图片网盘插件腾讯
  • 织梦网站统计代码程序开发的难点
  • 建设商务网站的理由服务网站建设排行
  • 网站建设推广销售好做吗小程序代理需要多少钱
  • 佛山网站建设公司有哪附近2公里招临时工
  • 如东网站建设哪家好坪山做网站公司
  • 网站组建 需求分析重庆信息网
  • 网站后台文章添加成功 不显示在线设计平台现状分析
  • 红桥天津网站建设桂林企业建站
  • 东莞网站制作推广公司高等院校网站建设方案
  • 天津网站建设电话企业网
  • 深圳网站制作网站建设怎么制作网站深圳博纳手机网站视频播放模板
  • 做正规小说网站有哪些自己制作的网页怎么发布
  • 移动做绩效的网站中山移动网站建设公司
  • 怎么做集团网站外贸出口网
  • 好做的网站开源多商户商城系统
  • 网站开发工程师前景怎么样网络营销外包网
  • 淮阳 网站建设建立带数据库的网站
  • 域名时间与网站优化电子商城网站开发软件
  • 如何做好一个购物网站网站建设及推广好学习吗
  • 番禺做网站800元网站分页制作
  • 温州网站改版公司哪家好wordpress主题结构图
  • 重庆网站自己推广电子网站建设设计
  • 烟台公司网站开发如何开一家软件外包公司
  • 软件自学网官方网站乐山电商网站开发
  • 柳州做网站的企业西安旅游网站建设
  • 做网站推广多少钱高埗镇网站建设公司
  • 建设英文版网站wordpress ldap外部登录认证
  • 平顶山股票配资网站建设阿里巴巴全球速卖通