X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=C4%2FPatroncards%2FPatroncard.pm;h=f6a18127c631ed50bf20225814f3a73d13f66b29;hb=c9234cb92ddd9ec1ec19e399c185e1ba9b11a9d9;hp=f130a0400961446990a729bbac409237fdffb361;hpb=d149cd1d977ab796edd5da9881f08bac251c54e1;p=koha.git diff --git a/C4/Patroncards/Patroncard.pm b/C4/Patroncards/Patroncard.pm index f130a04009..f6a18127c6 100644 --- a/C4/Patroncards/Patroncard.pm +++ b/C4/Patroncards/Patroncard.pm @@ -4,18 +4,18 @@ package C4::Patroncards::Patroncard; # # This file is part of Koha. # -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. # -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along -# with Koha; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . use strict; use warnings; @@ -45,6 +45,8 @@ sub new { width => $params{'width'}, layout => $params{'layout'}, text_wrap_cols => $params{'text_wrap_cols'}, + barcode_height_scale => $params{'layout'}->{'barcode'}[0]->{'height_scale'} || 0.01, + barcode_width_scale => $params{'layout'}->{'barcode'}[0]->{'width_scale'} || 0.8, }; bless ($self, $type); return $self; @@ -52,14 +54,15 @@ sub new { sub draw_barcode { my ($self, $pdf) = @_; -#FIXME: We do some scaling foo on the barcode here which probably should be done by the one invoking draw_barcode - my $barcode_width = 0.8 * $self->{'width'}; # this scales the barcode width to 80% of the label width - my $barcode_y_scale_factor = 0.01 * $self->{'height'}; # this scales the barcode height to 1% of the label height + # Default values for barcode scaling are set in constructor to work with pre-existing installations + my $barcode_height_scale = $self->{'barcode_height_scale'}; + my $barcode_width_scale = $self->{'barcode_width_scale'}; + _draw_barcode( $self, llx => $self->{'llx'} + $self->{'layout'}->{'barcode'}->[0]->{'llx'}, lly => $self->{'lly'} + $self->{'layout'}->{'barcode'}->[0]->{'lly'}, - width => $barcode_width, - y_scale_factor => $barcode_y_scale_factor, + width => $self->{'width'} * $barcode_width_scale, + y_scale_factor => $self->{'height'} * $barcode_height_scale, barcode_type => $self->{'layout'}->{'barcode'}->[0]->{'type'}, barcode_data => $self->{'layout'}->{'barcode'}->[0]->{'data'}, text => $self->{'layout'}->{'barcode'}->[0]->{'text_print'}, @@ -194,6 +197,7 @@ sub draw_image { my $intName = $pdf->AltJpeg($images->{$image}->{'data'},$images->{$image}->{'Sx'}, $images->{$image}->{'Sy'}, 1, $images->{$image}->{'alt'}->{'data'},$images->{$image}->{'alt'}->{'Sx'}, $images->{$image}->{'alt'}->{'Sy'}, 1); my $obj_stream = "q\n"; $obj_stream .= "$images->{$image}->{'Sx'} $images->{$image}->{'Ox'} $images->{$image}->{'Oy'} $images->{$image}->{'Sy'} $Tx $Ty cm\n"; # see http://www.adobe.com/devnet/pdf/pdf_reference.html sec 8.3.3 of ISO 32000-1 + $obj_stream .= "$images->{$image}->{'scale'} 0 0 $images->{$image}->{'scale'} 0 0 cm\n"; #scale to 20% $obj_stream .= "/$intName Do\n"; $obj_stream .= "Q\n"; $pdf->Add($obj_stream);