///|
fn pdf_coord_mm(value : Double) -> Double {
value / 10.0 / 2.54 * 72.0
}
///|
fn pdf_coord_cm(value : Double) -> Double {
value / 2.54 * 72.0
}
///|
fn pdf_coord_in(value : Double) -> Double {
value * 72.0
}
///|
fn pdf_coord_apply_unit(value : Double, unit : String) -> Double? {
match unit {
"pt" => Some(value)
"mm" => Some(pdf_coord_mm(value))
"cm" => Some(pdf_coord_cm(value))
"in" => Some(pdf_coord_in(value))
_ => None
}
}
///|
fn pdf_coord_is_unit(text : String) -> Bool {
text == "pt" || text == "mm" || text == "cm" || text == "in"
}
///|
fn pdf_coord_paper_points(paper : @geometry.PaperSize) -> (Double, Double) {
(
@geometry.unit_points(paper.width(), paper.unit()),
@geometry.unit_points(paper.height(), paper.unit()),
)
}
///|
fn pdf_coord_paper_size(text : String) -> @geometry.PaperSize? {
match text {
"a0portrait" => Some(@geometry.paper_a0)
"a1portrait" => Some(@geometry.paper_a1)
"a2portrait" => Some(@geometry.paper_a2)
"a3portrait" => Some(@geometry.paper_a3)
"a4portrait" => Some(@geometry.paper_a4)
"a5portrait" => Some(@geometry.paper_a5)
"a6portrait" => Some(@geometry.paper_a6)
"a7portrait" => Some(@geometry.paper_a7)
"a8portrait" => Some(@geometry.paper_a8)
"a9portrait" => Some(@geometry.paper_a9)
"a10portrait" => Some(@geometry.paper_a10)
"a0landscape" => Some(@geometry.paper_a0.landscape())
"a1landscape" => Some(@geometry.paper_a1.landscape())
"a2landscape" => Some(@geometry.paper_a2.landscape())
"a3landscape" => Some(@geometry.paper_a3.landscape())
"a4landscape" => Some(@geometry.paper_a4.landscape())
"a5landscape" => Some(@geometry.paper_a5.landscape())
"a6landscape" => Some(@geometry.paper_a6.landscape())
"a7landscape" => Some(@geometry.paper_a7.landscape())
"a8landscape" => Some(@geometry.paper_a8.landscape())
"a9landscape" => Some(@geometry.paper_a9.landscape())
"a10landscape" => Some(@geometry.paper_a10.landscape())
"usletterportrait" => Some(@geometry.paper_usletter)
"uslegalportrait" => Some(@geometry.paper_uslegal)
"usletterlandscape" => Some(@geometry.paper_usletter.landscape())
"uslegallandscape" => Some(@geometry.paper_uslegal.landscape())
_ => None
}
}