![根据每页行数和页面大小计算字体大小](https://linux22.com/image/1601274/%E6%A0%B9%E6%8D%AE%E6%AF%8F%E9%A1%B5%E8%A1%8C%E6%95%B0%E5%92%8C%E9%A1%B5%E9%9D%A2%E5%A4%A7%E5%B0%8F%E8%AE%A1%E7%AE%97%E5%AD%97%E4%BD%93%E5%A4%A7%E5%B0%8F.png)
我有一个需求,需要在自定义介质上打印一些内容,比如 Ubuntu 中的 3x5 英寸。我使用“enscript”工具来打印信息。
3 英寸内需要打印的行数会有所不同,字体大小也会有所不同。
是否有任何算法可以帮助我计算在 3 英寸的范围内每页打印给定行数所需的字体大小。
假设我的字体类型始终固定为“Courier”。
我尝试计算字体大小,假设 1 英寸为 72 点。因此 3 英寸为 216 点。如果我需要在 3 英寸空间内打印 20 行,我的字体大小将是 (216/20),即 10.8 点。
但是这种算法不起作用,并且对于任何给定的行数都不起作用。
任何能解决此问题的指点都将不胜感激。
答案1
好的,我能够解决这个问题。以下是我所做的:
每英寸 72 点并不是真正的标准,而是取决于字体类型、行间距和许多其他因素。因此,我修复了“Courier”之类的字体,然后找到了我可以打印的最大字体大小,而不会出现任何截断/自动换行。基于此字体,我找到了每英寸点的值。
我发现字体宽度和字体高度的“每英寸点数”不同。
我发现字体高度的值应该是“64”,而不是“72”。基于“64”,我能够根据以下公式计算出字体大小高度:
64 * 纸张高度/页面行数
它适用于所有纸张尺寸和每页行数。