老师的源代码运行报错:
from sys import hexversion
def base_use():
from pptx import Presentation
from pptx.enum.shapes import MSO_AUTO_SHAPE_TYPE
from pptx.util import Inches, Pt
ppt = Presentation()
slide = ppt.slides.add_slide(ppt.slide_layouts[5])
shapes = slide.shapes
shapes.title.text = '流程图'
top = Inches(3)
left = Inches(1)
width = Inches(2)
height = Inches(1)
t_sh = shapes.add_shape(MSO_AUTO_SHAPE_TYPE.PENTAGON, left, top, width, height)
t_sh.text = '第1步'
for i in range(2, 6):
left = left + width - Inches(0.4)
temp = shapes.add_shape(MSO_AUTO_SHAPE_TYPE.CHEVRON, left, top, width, height)
# temp.text = f'第{i}步'
p = temp.text_frame
p.text = f'第{i}步'
p.fit_text(max_size=10, bold=True, italic=True)
ppt.save('28_增加流程图.pptx')
if __name__ == "__main__":
base_use()
错误信息
F:\Python\virtualenv\work_env\Scripts\python.exe F:/Pycharm/14、自动化办公/PPT/test.py
Traceback (most recent call last):
File "F:\Python\virtualenv\work_env\lib\site-packages\pptx\util.py", line 137, in get_prop_value
return getattr(obj, cache_attr_name)
AttributeError: '_Font' object has no attribute '__tables'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "F:/Pycharm/14、自动化办公/PPT/test.py", line 32, in <module>
base_use()
File "F:/Pycharm/14、自动化办公/PPT/test.py", line 26, in base_use
p.fit_text(max_size=10, bold=True, italic=True)
File "F:\Python\virtualenv\work_env\lib\site-packages\pptx\text\text.py", line 88, in fit_text
font_size = self._best_fit_font_size(
File "F:\Python\virtualenv\work_env\lib\site-packages\pptx\text\text.py", line 242, in _best_fit_font_size
font_file = FontFiles.find(family, bold, italic)
File "F:\Python\virtualenv\work_env\lib\site-packages\pptx\text\fonts.py", line 31, in find
cls._font_files = cls._installed_fonts()
File "F:\Python\virtualenv\work_env\lib\site-packages\pptx\text\fonts.py", line 43, in _installed_fonts
for key, path in cls._iter_font_files_in(d):
File "F:\Python\virtualenv\work_env\lib\site-packages\pptx\text\fonts.py", line 74, in _iter_font_files_in
yield ((f.family_name, f.is_bold, f.is_italic), path)
File "F:\Python\virtualenv\work_env\lib\site-packages\pptx\text\fonts.py", line 155, in family_name
return self._tables["name"].family_name
File "F:\Python\virtualenv\work_env\lib\site-packages\pptx\util.py", line 139, in get_prop_value
value = f(obj)
File "F:\Python\virtualenv\work_env\lib\site-packages\pptx\text\fonts.py", line 185, in _tables
return dict(
File "F:\Python\virtualenv\work_env\lib\site-packages\pptx\text\fonts.py", line 185, in <genexpr>
return dict(
File "F:\Python\virtualenv\work_env\lib\site-packages\pptx\text\fonts.py", line 177, in _iter_table_records
yield tag.decode("utf-8"), off, len_
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x90 in position 2: invalid start byte
Process finished with exit code 1