PDF-TableX

 view release on metacpan or  search on metacpan

lib/PDF/TableX.pm  view on Meta::CPAN


# public attrs
has width         => (is => 'rw', isa => 'Num', default => 0);
has start_x       => (is => 'rw', isa => 'Num', default => 0);
has start_y       => (is => 'rw', isa => 'Num', default => 0);
has rows          => (is => 'ro', isa => 'Int', default => 0);
has cols          => (is => 'ro', isa => 'Int', default => 0);
has repeat_header => (is => 'rw', isa => 'Bool', default => 0);

# private attrs
has _cols => (is => 'ro', init_arg => undef, isa => 'ArrayRef[ Object ]', default => sub {[]});

# some sugar
use overload '@{}' => sub { return $_[0]->{_children}; }, fallback => 1;

# make some methods
for my $attr (qw/width repeat_header/) {
	around $attr => sub {
		my $orig = shift;
		my $self = shift;
		return $self->$orig() unless @_;

lib/PDF/TableX/Stylable.pm  view on Meta::CPAN

has border_width     => (is => 'rw', isa => StyleDefinition, coerce => 1, default => sub{[1,1,1,1]} );
has border_color     => (is => 'rw', isa => StyleDefinition, coerce => 1, default => 'black' );
has border_style     => (is => 'rw', isa => StyleDefinition, coerce => 1, default => 'solid' );
has background_color => (is => 'rw', isa => 'Str', default => '' );
has text_align       => (is => 'rw', isa => 'Str', default => 'left');
has font             => (is => 'rw', isa => 'Any', default => 'Times');
has font_color       => (is => 'rw', isa => 'Str', default => 'black');
has font_size        => (is => 'rw', isa => 'Num', default => 12);
has margin           => (is => 'rw', isa => StyleDefinition, coerce => 1, default => (10 / 25.4 *72) );

has _children => (is => 'ro', init_arg => undef, isa => 'ArrayRef[ Object ]', default => sub {[]});

for my $attr  ( __PACKAGE__->attributes ) {
	around $attr => sub {
		my ($orig, $self, $value) = @_;
		if ( defined $value ) {
			$self->$orig($value);
			for (@{$self->{_children}}) {
				$_->$attr( $value );
			}
			return $self;



( run in 0.945 second using v1.01-cache-2.11-cpan-5f2e87ce722 )