module Asciidoctor::PDF::Measurements
Constants
- InsetMeasurementValueRx
- MeasurementValueHintRx
- MeasurementValueRx
Public Instance Methods
resolve_measurement_values(str)
click to toggle source
Resolve measurement values in the string to PDF
points.
# File lib/asciidoctor/pdf/measurements.rb, line 51 def resolve_measurement_values str if MeasurementValueHintRx.match? str str.gsub(InsetMeasurementValueRx) { to_pt $1.to_f, $2 } else str end end
str_to_pt(val)
click to toggle source
Convert the specified string value to a pt value from the specified unit of measurement (e.g., in, cm, mm, etc). If the unit of measurement is not recognized, assume pt.
Examples:
0.5in => 36.0 100px => 75.0 72blah => 72.0
# File lib/asciidoctor/pdf/measurements.rb, line 18 def str_to_pt val MeasurementValueRx =~ val ? (to_pt $1.to_f, $2) : val.to_f end
to_pt(num, units)
click to toggle source
Converts the specified float value to a pt value from the specified unit of measurement (e.g., in, cm, mm, etc). Raises an argument error if the unit of measurement is not recognized.
# File lib/asciidoctor/pdf/measurements.rb, line 25 def to_pt num, units units = units.to_s if ::Symbol === units if units.nil_or_empty? num else case units when 'pt' num when 'in' num * 72 when 'mm' num * (72 / 25.4) when 'cm' num * (720 / 25.4) when 'px' # assuming canvas of 96 dpi num * 0.75 when 'pc' num * 12 else raise ::ArgumentError, %(unknown unit of measurement: #{units}) end end end