因此,我正在尝试编写一些程序以使用Python将html转换为pptx。 我正在使用一些代码来解析文件,然后在运行级别设置文本格式。

我在空白幻灯片上使用2个文本框架来工作,第一个文本框架用于标题,第二个文本框架用于呈现html的正文。

但是无论我做什么(Paragraph.font.name或run.font.name),我总是在第二个文本框中使用Arial字体。

我试图通过遍历tf.paragraphs以及遍历所有运行(paragraph.runs)来更新字体名称,但似乎没有任何效果。

这是我用来设置字体的功能

def setFont(font,tags,fontStyle,size):

font.language_id = MSO_LANGUAGE_ID.HEBREW

font.size = Pt(size)

font.name = fontStyle

for tag in tags:

if tag == 'b':

font.bold = True

elif tag == 'i':

font.italic = True

elif tag == 'u':

font.underline = True

return font

这是我的主要调用函数(我删除了一些与python-pptx不直接相关的其他调用)

def makeSlide(prs,title,body,fontStyle,titleSize,bodySize):

#Add title Slide

blank_slide_layout = prs.slide_layouts[6]

slide = prs.slides.add_slide(blank_slide_layout)

width = height = Inches(8)

txBox = slide.shapes.add_textbox(Inches(1), Inches(0.5), Inches(8), Inches(1))

tf = txBox.text_frame

tf.text = title

tf.paragraphs[0].font.size=Pt(titleSize)

tf.paragraphs[0].font.bold = True

tf.paragraphs[0].font.color.rgb = RGBColor(255,0,0)

tf.paragraphs[0].font.name = fontStyle

tf.paragraphs[0].alignment = PP_ALIGN.CENTER

styles = MY_CUSTOM_HTML_BODY_PARSER() #Removed this part from here, its just a parser which gives output in a desired format

#Start 2nd textbox for body

txBox2 = slide.shapes.add_textbox(Inches(0.5), Inches(1.7), Inches(9), Inches(5.5))

tf = txBox2.text_frame

tf.clear()

tf.word_wrap = True

tf.paragraphs[0].text = ''

tf.paragraphs[0].font.name = fontStyle

paragraph = tf.add_paragraph()

paragraph.alignment = alignment

#Loop over styles (Tag info and render pptx accordingly)

new_line = True

level = 0

number = 0

for _ in styles:

#Can ignore this part, I'm just checking to see if I have to go on a new line or not

if _ == '\n':

paragraph = tf.add_paragraph()

paragraph.alignment = alignment

new_line = True

else:

tags = _[1]

#Can also ignore this, I'm checking to see if I have to be on next level in lists or not

#(I use custom bullet function, since python-pptx doesn't have a function for numbered bullets.

if _[1].count('ul') > 1 or _[1].count('ol') > 1 or _[1].count('ul') + _[1].count('ol') > 1:

level = 1

if new_line:

paragraph.level = level

level = 0

else:

paragraph = tf.add_paragraph()

paragraph.alignment = alignment

paragraph.level = level

level = 0

new_line = True

if new_line:

run = paragraph.add_run()

#Custom bullet function as u can see I send in fontStyle here and apply style inside function

run,number = addBullets(run,tags,bodySize-3,number,fontStyle)

new_line = False

run = paragraph.add_run()

run.text = parser.words_styles[_[0]][0]

font = run.font

#SetFont function Defined above

font = setFont(font,tags,fontStyle,bodySize)

new_line = False

for paragraph in tf.paragraphs:

paragraph.font.name = fontStyle

for run in paragraph.runs:

if run.font.name != fontStyle:

print(run.text)

#return slide

return slide

我不太确定自己在哪里做错了,将不胜感激,如果需要,我可以清理更多代码。

python字体类型arial_python-3.x - 为什么我的font.name属性不影响使用Python-pptx制作的ppt上的字体? 我总是得到arial字体 - 堆栈内存溢出...相关推荐

  1. python打开xlsm,python - 使用python在excel xlsm上写数组时拒绝Errno 13权限 - 堆栈内存溢出...

    我正在尝试通过以下公式将协方差矩阵粘贴到现有xlsm文件上,但是它不起作用. Cov Matrix是一个数组. 你能帮我吗? Error I get is: [Errno 13] Permission ...

  2. linux下java调用python脚本,java - 在Linux Terminal中以编程方式从Java调用python脚本 - 堆栈内存溢出...

    我正在开发一个Java应用程序,用于检查源文件中的补丁程序(是否存在). 用于检测补丁程序更改的核心逻辑位于python脚本[titled'patch.py​​']中,并且我的Java应用程序与此Py ...

  3. java pdf 用系统字体大小_java - Java PDFBox设置PDF表单中几个字段的自定义字体 - 堆栈内存溢出...

    使用穷人的大胆 我如何大胆的领域? ......我需要设置哪些大胆的字段? 在PDF中,您通常使用带粗体字形的字体使文本变为粗体,另请参阅第二个问题. 如果你手上没有这么大胆的字体,你可能会使用一些穷 ...

  4. java drawstring 字体_java - 为什么字体大小为101的Graphics2D.drawString字母“o”坏了? - 堆栈内存溢出...

    我想在png中绘制字符串. 我需要高达600像素的字母. 因此我尝试使用Graphics2D.drawString: String text = "o"; graphics.set ...

  5. aws 部署python lambda_python - 如何使用Aws Lambda(python)接收文件 - 堆栈内存溢出

    我正试图弄清楚如何通过Python中的API调用接收浏览器发送的文件. 允许Web客户端发送任何类型的文件(例如.txt,.docx,.xlsx,...). 我不知道我是否应该使用二进制文件. 想法是 ...

  6. python dtype o_python - 什么是dtype('O')? - 堆栈内存溢出

    当你在数据帧中看到dtype('O') ,这意味着Pandas字符串. 什么是dtype ? 什么属于pandas或numpy ,或两者,或其他什么? 如果我们检查一下pandas代码: df = p ...

  7. python多个摄像头_python - 使用python和OpenCV与VideoCapture洞察多个网络摄像头捕获 - 堆栈内存溢出...

    我正在尝试同时(或几乎同时)从多个网络摄像头捕获图像. 我一直在玩OpenCV ,使用VideoCapture和python编程. 但有一些困惑,希望有人可以帮助解释事情...... 首先,我尝试了V ...

  8. python中tolist_python - 无法使用Gremlinpython使用“ .toList()”列出Janusgraph中存在的所有顶点 - 堆栈内存溢出...

    我尝试测试创建的图形中的内容,以查看是否确实创建了节点. 创建一个小的图形进行测试的代码: from gremlin_python import statics from gremlin_python ...

  9. python编写数学公式大全_python - 用python编写数学公式 - 堆栈内存溢出

    我正在用python编写此公式. 请查看图片我正在使用以下代码. 它总是会出错. import math import matplotlib matplotlib.use('TkAgg') from ...

最新文章

  1. mysql 数据目录更改
  2. html如何呈现在显示器,lcd显示器采用什么显示方式
  3. android 开发 时间选择器TimePicker的使用
  4. word域变成正常文本_word文档中打钩的8种方法!(全网最全)
  5. 转换mp3名称的小程序
  6. python中list_python中list方法详解说明
  7. 服务器添加管理员隐藏账号,绝招:隐藏管理员账号 三分钟搞定
  8. C++语言vector容器介绍和示例
  9. 【leetcode】遍历二叉树从跟到叶子的核心代码
  10. [转]linux signal
  11. mac unity3D汉化包
  12. python 绘制三维图
  13. 同时掌握96门语言,取得多项世界突破,百度发布预训练模型ERNIE-M
  14. 全球及中国水电行业开发规划及十四五投资战略报告2021年版
  15. 正阅读微信小说分销系统-视频教程-1.渠道商-公众号配置-基础信息
  16. 南京柳树湾与云南汉族人
  17. Aria2 下载工具(转)
  18. 记录——python与华为云数据库MYSQL的交互
  19. QQ2005正式版将于27日发布!(转)
  20. Arduion实验九 轻触开关实验

热门文章

  1. pscs6免激活版,
  2. cocos2d lua 环境搭建
  3. win10搭建网络代理,供Linux使用
  4. SCI-EI-收录-检索-出版商 之间的关系
  5. java mysql 订单表设计
  6. 解决vim-plug无法下载插件或者插件下载过慢的问题
  7. 如何打包浏览器的扩展程序
  8. macbook视频格式转换_告别格式工厂的视频格式转换方法(mac版 命令行)
  9. md文件 linux,MD 文件扩展名: 它是什么以及如何打开它?
  10. win10老是弹出计算机管理器,win10系统Ie11老是弹出“管理加载项”提示框取消的处理办法...