当前位置:  首页>> 技术小册>> Python与办公-玩转PPT

python-pptx的长度单位有Emu、Cm(厘米)、Mm(毫米)、Pt(磅)、Inches(英寸)、Centipoints(百分之一磅)一共六种,与python-docx相比,python-pptx少了Twips但多了Centipoints 。python-pptx也是使用一个整数表示长度,1表示1 emu,127 emu = 1 centipoints,12700 emu = 1 pt,36000 emu = 1 mm,360000 emu = 1 cm,914400 emu = 1 inches。由此可见,python-docx与python-pptx除了Twips和Centipoints这两个单位不同,其他单位的转换比例其实是一样的,因为它们都遵循了微软给出的长度标准。转换比例如下:

  1. 1 Emu = 1
  2. 1 Centipoints = 127 Emu
  3. 1 Pt = 12700 Emu
  4. 1 Mm = 36000 Emu
  5. 1 Cm = 360000 Emu
  6. 1 Inches = 914400 Emu

单位转换

与python-docx的单位一样,python-pptx的单位转换也很简单,它们都继承了Length类,Length对象有emu、inches、centipoints、cm、mm、pt六个属性,所以只要得到一种单位类型,通过获取Length对象的相应属性,就可以轻松知道其他单位的值了,代码如下:

  1. from pptx.util import Inches,Pt
  2. length = Inches(1)
  3. print(length) # 输出:914400
  4. print(length.emu) # 输出:914400
  5. print(length.inches) # 输出:1.0
  6. print(length.cm) # 输出:2.54
  7. print(length.mm) # 输出:25.4
  8. print(length.pt) # 输出:72.0
  9. print(length.centipoints) # 输出:7200

还是要注意,既然转换单位的时候涉及除法运算,就可能会存在精度问题,尤其是当转换单位时遇到不能除尽的情况,所以要用哪个单位就尽量实例化哪个长度类,尽可能避免单位转换。