利用Python获得一段给定文字的宽度和高度

为了检测网页中文字是否被截断,作者提出了一个方案:通过Python创建REST API,结合JavaScript获取文字的长度和高度。代码示例中,输入文字内容、字号和字体px值,输出文字的长度和高度。注意, tkFont.Font 接受的是字体pt值,需进行px到pt的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在研究在网页上如何判断是不是有一些字符串出现被截断的情况,

想了很多办法都不是很好,其中能想到的一个办法就是,

a. 先通过Java Script取出网页文字所在Span或段落的可见长度,

b. 然后把网页里面的(文字,字体,字体大小)都取出来,

c. 再通过某种手段算出这段文字的可见长度

d 最后把步骤a,c中的长度进行比较,得到是不是有文字被截断


经过研究,利用JavaScript是很难实现c的,我的做法是,先利用Python实现一个REST API,然后JavaScript去调用这个API来实现

下面就直接上代码了


import Tkinter as tk
import tkFont


def display_font(text, font_family, font_size):
   root = tk.Tk()
   canvas = tk.Canvas(root, width=200, height=100)
   canvas.pack()
   (x,y) = (5,5)
   pttopx = lambda x:int(x * 3 // 4)
   font_size=pttopx(font_size)
   font = tkFont.Font(family=font_family, size=font_size)
   w= font.measure(text)
   h= font.metrics("linespace")
   print "Font Family is %s, Font Size is %d pt" % (font_family,font_size)
   print "Text Width is %s px, height is %s px" % (w,h)
   canvas.create_text(x,y,text=text,font=font,anchor=tk.NW)
   tk.mainloop()


display_font("Paramètres de recherc","tahoma",11)

注意:

输入的是,文字内容,字号和字体的px

输出的是,这段文字的长度和高度

其中 tkFont.Font 接受的不是字体的px,而是字体的pt

需要转义 px:pt,我这个算法写的比较简单,想写的复杂可以参考 http://reeddesign.co.uk/test/points-pixels.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值