#! perl use v5.26; use Object::Pad; use utf8; use Carp; role Text::Layout::ElementRole; # Implementors of this role must provide the following methods: method parse( $ctx, $el, $atts ); # # $ctx: context (current values for font, size, etc.) # $el : the elemant name, e.g. "img" # $atts: anything that follows the tag, presumably atributes # # If the element is "" then $el = "foo" # and $atts = "bar blech". # # Should return a hash reference with whatever is useful. method render( $hash, $gfx, $x, $y ); # # $hash: the hash as delivered by the parser # $gfx : PDF graphics context # $x : $x origin # $y : $y origin # # Should return the advance box (array ref). method bbox( $hash ); # # $hash: the hash as delivered by the parser # # Should return a hash ref with # bbox : the bounding box of the image # bb : the bounding box after scaling/displacement # abox : the advance box 1;