Bug 14107: Patron cards: Make barcode width and height scaling editable
The size of the barcode in patron card creator was hardcoded to 1% of the card height and 80% of the card width. This patch exposes both values in the layout editor. If no values are given, the previousely hard coded values (0.01 / 0.8) are used in order to work with existing card definitions. To test: - Go to Home > Tools > Patron card creator - Export a patron card (PDF) from en existing definition - Apply patch - Export patron card again, compare results (should be the same) - Go to Home > Tools > Patron card creator > Manage card layouts - Edit the layout you use for testing and set barcode scaling values e.g. to 0.03 for height and 0.4 for widht - Export patron card again, verify that barcode size changed Signed-off-by: Chris Nighswonger <cnighswonger@foundations.edu> Signed-off-by: Jonathan Druart <jonathan.druart@koha-community.org> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
parent
b6c8de6503
commit
3b23fb8b21
4 changed files with 20 additions and 6 deletions
|
@ -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'},
|
||||
|
|
|
@ -383,6 +383,14 @@
|
|||
<label for="barcode_lly">Lower left Y coordinate: </label>
|
||||
<input type="text" name="barcode_lly" id="barcode_lly" size="2" value="[% barcode_lly |html %]" />
|
||||
</li>
|
||||
<li>
|
||||
<label for="barcode_height_scale">Scale height (relative to card): </label>
|
||||
<input type="text" name="barcode_height_scale" id="barcode_height_scale" size="2" value="[% barcode_height_scale |html %]" />
|
||||
</li>
|
||||
<li>
|
||||
<label for="barcode_width_scale">Scale width (relative to card): </label>
|
||||
<input type="text" name="barcode_width_scale" id="barcode_width_scale" size="2" value="[% barcode_width_scale |html %]" />
|
||||
</li>
|
||||
<li>
|
||||
<label for="barcode_type">Barcode type: </label>
|
||||
<select name="barcode_type" id="barcode_type">
|
||||
|
|
|
@ -129,8 +129,9 @@ foreach my $item (@{$items}) {
|
|||
height => $pc_template->get_attr('label_height'), # of the card
|
||||
width => $pc_template->get_attr('label_width'),
|
||||
layout => $layout_xml,
|
||||
text_wrap_cols => 30, #FIXME: hardcoded
|
||||
text_wrap_cols => 30, #FIXME: hardcoded,
|
||||
);
|
||||
|
||||
$patron_card->draw_guide_box($pdf) if $layout_xml->{'guide_box'};
|
||||
$patron_card->draw_barcode($pdf) if $layout_xml->{'barcode'};
|
||||
|
||||
|
|
|
@ -96,6 +96,8 @@ if ($op eq 'edit') {
|
|||
push @text_fields, (
|
||||
"field_" . $field_number . "_llx" => $field_params->{'llx'},
|
||||
"field_" . $field_number . "_lly" => $field_params->{'lly'},
|
||||
"field_" . $field_number . "_height_scale" => $field_params->{'height_scale'},
|
||||
"field_" . $field_number . "_width_scale" => $field_params->{'width_scale'},
|
||||
"field_" . $field_number . "_font" => _set_selected($field_params->{'font'}, $font_types),
|
||||
"field_" . $field_number . "_font_size" => $field_params->{'font_size'},
|
||||
"field_" . $field_number . "_text_alignment" => _set_selected($field_params->{'text_alignment'}, $alignment_types),
|
||||
|
|
Loading…
Reference in a new issue