我可以使用PIL获得字符的高度和宽度(以像素为单位)(请参见下文),但是(除非我没有记错)像素大小取决于屏幕的DPI,后者可能会有所不同。相反,我想做的是以绝对单位(例如英寸)或1200英寸(“单词完美单位”)为单位来计算字符的宽度。
>>> # Getting pixels width with PIL
>>> font = ImageFont.truetype('/blah/Fonts/times.ttf' , 12)
>>> font.getsize('a')
(5, 14)
Run Code Online (Sandbox Code Playgroud)
我想要这样做的原因是创建一个用于包装二进制Word Perfect文档的自动换行功能。Word Perfect要求在整个文本的有效点插入软换行代码,否则文件将损坏且无法打开。问题是在何处添加它们以用于可变宽度字体。
我意识到我不完全了解像素与屏幕分辨率和字体大小之间的关系。我要解决所有这些错误吗?