31 lines
917 B
Python
31 lines
917 B
Python
#!/bin/env python
|
|
#Copyright ReportLab Europe Ltd. 2000-2017
|
|
#see license.txt for license details
|
|
#history https://hg.reportlab.com/hg-public/reportlab/log/tip/src/reportlab/lib/units.py
|
|
__version__='3.3.0'
|
|
__doc__='''Defines inch, cm, mm etc as multiples of a point
|
|
|
|
You can now in user-friendly units by doing::
|
|
|
|
from reportlab.lib.units import inch
|
|
r = Rect(0, 0, 3 * inch, 6 * inch)
|
|
|
|
'''
|
|
inch = 72.0
|
|
cm = inch / 2.54
|
|
mm = cm * 0.1
|
|
pica = 12.0
|
|
|
|
def toLength(s):
|
|
'''convert a string to a length'''
|
|
try:
|
|
if s[-2:]=='cm': return float(s[:-2])*cm
|
|
if s[-2:]=='in': return float(s[:-2])*inch
|
|
if s[-2:]=='pt': return float(s[:-2])
|
|
if s[-1:]=='i': return float(s[:-1])*inch
|
|
if s[-2:]=='mm': return float(s[:-2])*mm
|
|
if s[-4:]=='pica': return float(s[:-4])*pica
|
|
return float(s)
|
|
except:
|
|
raise ValueError("Can't convert '%s' to length" % s)
|