Source code for pdfje.units
from __future__ import annotations
from functools import partial
from operator import mul
from typing import Callable
from .common import XY, Pt
__all__ = [
"inch",
"cm",
"mm",
"pc",
"pt",
"Pt",
]
inch: Callable[[float], Pt] = partial(mul, 72)
inch.__doc__ = "Convert inches to points"
cm: Callable[[float], Pt] = partial(mul, 28.346456692913385)
cm.__doc__ = "Convert centimeters to points"
mm: Callable[[float], Pt] = partial(mul, 2.8346456692913385)
mm.__doc__ = "Convert millimeters to points"
pc: Callable[[float], Pt] = partial(mul, 12)
pc.__doc__ = "Convert picas to points"
[docs]
def pt(x: float) -> Pt:
"No-op conversion. Can be used to make units explicit."
return x
A0 = XY(2380, 3368)
"A0 paper size"
A1 = XY(1684, 2380)
"A1 paper size"
A2 = XY(1190, 1684)
"A2 paper size"
A3 = XY(842, 1190)
"A3 paper size"
A4 = XY(595, 842)
"A4 paper size"
A5 = XY(420, 595)
"A5 paper size"
A6 = XY(297, 420)
"A6 paper size"
letter = XY(612, 792)
"Letter paper size"
legal = XY(612, 1008)
"Legal paper size"
tabloid = XY(792, 1224)
"Tabloid paper size"
ledger = tabloid.flip()
"Ledger paper size, same as tabloid landscape"