1.长度单位
在python-docx中用一个int类型的大整数表示长度,叫做Emu,即 整型1=1 Emu,但为了符合我们平时使用厘米、毫米等长度单位,需要有一个对应的转换比例,12700表示1磅(Pt),36000表示1毫米(Mm),914400表示1英寸(Inches),另外还有一个Twips,缇,即二十分之一磅,我们国内好像不怎么常用,等于635Emu
1 Emu = 1
1 Twips = 635Emu
1 Pt = 12700 Emu
1 Mm = 36000 Emu
1 Cm = 360000 Emu
1 Inches = 914400 Emu
2.单位转换
有了上面的比例关系我们可以通过乘除的方式随意转换单位,但实际上,python-docx中封装的长度类Length,可以指定小写的单位长度进行转换,下面是转换案例
section.header_distance = Emu(12700) # 直接用整数也可以的
print(section.header_distance) # 12700
print(section.header_distance.pt) # 转换成磅,1.0
print(section.header_distance.mm) # 转换成毫米,0.3527777777777778
print(section.header_distance.cm) # 转换成厘米,0.035277777777777776
print(section.header_distance.inches) # 转换成英尺,0.013888888888888888
注意,由于除法计算不一定能除完,并且由于python精度溢出等原因,换算得到的结果不一定准确,即可能存在少许偏差
3.常用字号
Word用一个阿拉伯数字表示字体大小,磅数是字体大小的一半,比如说字体的大小为五号,对应的是字体大小是21,则对应的磅数是10.5磅
中文字号 | 字体大小 | 磅数 | Emu |
---|---|---|---|
初号 | 84 | 42 | 533400 |
小初 | 72 | 36 | 457200 |
一号 | 52 | 26 | 330200 |
小一 | 48 | 24 | 304800 |
二号 | 44 | 22 | 279400 |
小二 | 36 | 18 | 228600 |
三号 | 32 | 16 | 203200 |
小三 | 30 | 15 | 190500 |
四号 | 28 | 14 | 177800 |
小四 | 24 | 12 | 152400 |
五号 | 21 | 10.5 | 133350 |
小五 | 18 | 9 | 114300 |