File Coverage

blib/lib/PDF/Labels/Layout.pm
Criterion Covered Total %
statement 3 110 2.7
branch 0 36 0.0
condition n/a
subroutine 1 19 5.2
pod 1 17 5.8
total 5 182 2.7


line stmt bran cond sub pod time code
1              
2             package PDF::Labels::Layout;
3              
4 1     1   1650 use base qw(PDF::Labels::base);
  1         2  
  1         1471  
5              
6             sub _new {
7              
8 0     0     my $self=shift;
9              
10 0           $self->{'font_default'} = "Helvetica-Bold";
11 0           $self->{'fontsize_default'} = 14;
12 0           $self->{'background_image'} = "";
13 0           $self->{'bleed'} = 5;
14              
15 0           $self->{'outline'} = 1;
16 0           $self->{'outline_colour'} = "#0000000";
17 0           $self->{'outline_width'} = 0.1;
18 0           $self->{'outline_cap'} = 1;
19 0           $self->{'outline_dash'} = [ 20, 20 ];
20              
21 0           $self->{'align_default'} = "left";
22              
23 0           $self->{'margin_left'} = 18;
24 0           $self->{'margin_right'} = 18;
25 0           $self->{'margin_top'} = 18;
26 0           $self->{'margin_bottom'} = 18;
27             }
28              
29             sub print {
30              
31 0     0 0   my $self=shift;
32              
33 0           my %opts=@_;
34              
35 0           $self->{'_opts'} = \%opts;
36 0           $self->{'_pos'} = $opts{'loc'};
37 0           $self->{'_gfx'} = $opts{'page'}->gfx;
38 0           $self->{'_page'} = $opts{'page'};
39 0           $self->{'_data'} = $opts{'data'};
40              
41 0           $self->print_background;
42 0           $self->print_outline;
43              
44             }
45              
46              
47             =item $self->print_background( $x, $y, $h, $w )
48              
49             =cut
50              
51             sub print_background {
52              
53 0     0 1   my $self=shift;
54              
55 0 0         eval { $self->{'_bg'}{ $self->background_image } = $self->{'_pdf'}->image( $self->background_image ) }
  0            
56             unless $self->{'_bg'}{ $self->background_image };
57 0 0         return unless $self->{'_bg'}{ $self->background_image };
58              
59 0           my @p = @{$self->{'_pos'}};
  0            
60              
61 0           my $bgBleed=$self->{'bleed'};
62 0           $p[0] -= $bgBleed / 2;
63 0           $p[1] += $bgBleed / 2;
64 0           $p[2] += $bgBleed;
65 0           $p[3] -= $bgBleed;
66              
67 0           $self->{'_gfx'}->image( $self->{'_bg'}{ $self->background_image }, @p );
68              
69             }
70              
71             sub print_outline {
72              
73 0     0 0   my $self=shift;
74 0 0         return unless $self->outline;
75              
76 0           my @p = @{$self->{'_pos'}};
  0            
77              
78 0           $self->{'_gfx'}->strokecolor( $self->outline_colour);
79 0           $self->{'_gfx'}->linewidth( $self->outline_width );
80 0           $self->{'_gfx'}->linecap( $self->outline_cap);
81 0           $self->{'_gfx'}->linedash( $self->outline_dash);
82              
83 0           $self->{'_gfx'}->rect( @p );
84              
85 0           $self->{'_gfx'}->stroke;
86 0           $self->{'_gfx'}->endpath;
87              
88             }
89              
90             sub font_default {
91              
92 0     0 0   my $self=shift;
93 0 0         if (@_) {
94 0           $self->{'font_default'}=shift;
95             }
96 0           return $self->{'font_default'};
97              
98             }
99              
100             sub fontsize_default {
101              
102 0     0 0   my $self=shift;
103 0 0         if (@_) {
104 0           $self->{'fontsize_default'}=shift;
105             }
106 0           return $self->{'fontsize_default'};
107              
108             }
109              
110             sub background_image {
111              
112 0     0 0   my $self=shift;
113              
114 0 0         if (@_) {
115              
116 0           $self->{'background_image'}=shift;
117              
118 0 0         if ( ! -f $self->{'background_image'} ) {
119 0           warn "Background image $self->{'background_image'} does not exist\n";
120 0           delete $self->{'background_image'};
121             }
122              
123 0 0         if ( ! -f $self->{'background_image'} ) {
124 0           warn "Cannot read background image $self->{'background_image'}\n";
125 0           delete $self->{'background_image'};
126             }
127              
128             }
129              
130 0           return $self->{'background_image'};
131              
132             }
133              
134             sub outline {
135              
136 0     0 0   my $self=shift;
137 0 0         if (@_) {
138 0           $self->{'outline'}=shift;
139             }
140 0           return $self->{'outline'};
141              
142             }
143              
144             sub outline_colour {
145              
146 0     0 0   my $self=shift;
147 0 0         if (@_) {
148 0           $self->{'outline_colour'}=shift;
149             }
150 0           return $self->{'outline_colour'};
151              
152             }
153              
154             # 'cause I ain't from the US
155 0     0 0   sub outline_color { outline_colour( @_ ) }
156              
157             sub outline_width {
158              
159 0     0 0   my $self=shift;
160 0 0         if (@_) {
161 0           $self->{'outline_width'}=shift;
162             }
163 0           return $self->{'outline_width'};
164              
165             }
166              
167             sub outline_cap {
168              
169 0     0 0   my $self=shift;
170 0 0         if (@_) {
171 0           $self->{'outline_cap'}=shift;
172             }
173 0           return $self->{'outline_cap'};
174              
175             }
176              
177             sub outline_dash {
178              
179 0     0 0   my $self=shift;
180 0 0         if (@_) {
181 0           $self->{'outline_dash'}=[ @_ ];
182             }
183 0           return @{$self->{'outline_dash'}};
  0            
184              
185             }
186              
187             sub align_default {
188              
189 0     0 0   my $self=shift;
190 0 0         if (@_) {
191 0           $self->{'align_default'}=shift;
192             }
193 0           return $self->{'align_default'};
194              
195             }
196              
197             sub margin_left {
198              
199 0     0 0   my $self=shift;
200 0 0         if (@_) {
201 0           $self->{'margin_left'}=shift;
202             }
203 0           return $self->{'margin_left'};
204              
205             }
206              
207             sub margin_right {
208              
209 0     0 0   my $self=shift;
210 0 0         if (@_) {
211 0           $self->{'margin_right'}=shift;
212             }
213 0           return $self->{'margin_right'};
214              
215             }
216              
217             sub margin_top {
218              
219 0     0 0   my $self=shift;
220 0 0         if (@_) {
221 0           $self->{'margin_top'}=shift;
222             }
223 0           return $self->{'margin_top'};
224              
225             }
226              
227             sub margin_bottom {
228              
229 0     0 0   my $self=shift;
230 0 0         if (@_) {
231 0           $self->{'margin_bottom'}=shift;
232             }
233 0           return $self->{'margin_bottom'};
234              
235             }
236              
237             1;
238