Python 确定特定字体和大小的一组字符占用多少点的算法在哪里?

Python 确定特定字体和大小的一组字符占用多少点的算法在哪里?,python,fonts,Python,Fonts,假设你有葛底斯堡地址,你想写一个算法,这样你就没有一个文档,其中44行在一页上,1行在另一页上,就是这样。您希望使一页上有30行,另一页上有15行。如果您试图计算一个没有字符但只有一个长字符串的文本占用了多少空间,这并不容易。如果您知道您的文档宽度为4英寸,并且您知道如果文本居中对齐,并且您知道文本为12点乘以新罗马字体,那么应该有一个算法来计算占用的行数。我正在使用Python,所以如果我能在Python中找到这样的算法,那就太好了 让我举个例子 假设您的字符串是: str1 = 'Now w

假设你有葛底斯堡地址,你想写一个算法,这样你就没有一个文档,其中44行在一页上,1行在另一页上,就是这样。您希望使一页上有30行,另一页上有15行。如果您试图计算一个没有字符但只有一个长字符串的文本占用了多少空间,这并不容易。如果您知道您的文档宽度为4英寸,并且您知道如果文本居中对齐,并且您知道文本为12点乘以新罗马字体,那么应该有一个算法来计算占用的行数。我正在使用Python,所以如果我能在Python中找到这样的算法,那就太好了

让我举个例子

假设您的字符串是:

str1 = 'Now we are engaged in a great civil war, testing whether that nation or any nation so conceived and so dedicated, can long endure. We are met on a great battle-field of that war. We have come to dedicate a portion of that field, as a final resting place for those who here gave their lives that that nation might live. It is altogether fitting and proper that we should do this.'
在Python中,您无法计算页面上会占用多少行。这取决于字体大小、字体和页面宽度。好的,如果你知道页面的宽度,比如说,1000点,你知道TimesNewRoman大小12将占据2300点,那么你可以得出结论,文本将占据3行。我需要一个函数的形式:

def get_points(str1="",font=TimesNewRoman,size=12)
   return points  

输入字符串、字体和大小,然后输出点数。如果我能在文档中将英寸转换为点,也会有所帮助。

请解释您的问题。我觉得现在不可能回答,因为我不清楚你到底在问什么。提供输入和输出。您必须从将呈现文本的API获取该信息。如何做到这一点因库而异:
pygame
采用一种方式,Windows采用另一种方式,
reportlab
采用另一种方式。但大体上,它们的工作原理相似。你创建一个画布或类似的画布,将文本放在画布上,然后向API询问生成的维度。我是用富文本格式做的。我甚至不知道在谷歌搜索中输入什么关键词。如果在我的谷歌搜索中输入“积分”,那么我会不断得到关于游戏的信息。我有很多网站认为我只是想知道如何编写代码行。