3 # Copyright 2014 ByWater Solutions
5 # This file is part of Koha.
7 # Koha is free software; you can redistribute it and/or modify it
8 # under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 3 of the License, or
10 # (at your option) any later version.
12 # Koha is distributed in the hope that it will be useful, but
13 # WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with Koha; if not, see <http://www.gnu.org/licenses>.
25 use C4::Auth qw(check_cookie_auth);
29 /cgi-bin/koha/svc/barcode
33 This service generates a PNG barcode image for the requested barcode.
41 I<barcode> is the desired barcode. It should be called like:
45 I<type> is the desired barcode type. Possible values are
59 If ommited,it defaults to Code39.
63 Unless I<notext=1> is specified in the parameter list, the
64 value of the barcode will included as text below the
74 =item /cgi-bin/koha/svc/barcode?barcode=123456789
76 Returns a Code39 barcode image for barcode 123456789
78 =item /cgi-bin/koha/svc/barcode?barcode=123456789&type=UPCE
80 Returns a UPCE barcode image for barcode 123456789
82 =item /cgi-bin/koha/svc/barcode?barcode=123456789¬ext=1
84 Returns a Code39 barcode image for barcode 123456789
85 which does not include the human readable text '123456789'
86 below the scannable barcode.
94 my ( $auth_status ) = check_cookie_auth( $input->cookie('CGISESSID'), { catalogue => '*' } );
96 if ( $auth_status ne "ok" ) {
102 my $type = $input->param('type') || 'Code39';
103 my $barcode = $input->param('barcode');
104 my $notext = $input->param('notext') ? 1 : 0;
105 my $height = $input->param('height') || 50;
106 my $qrcode_modulesize = $input->param('modulesize') || "5"; # 1+
109 if ( $type eq 'Code39' ) {
110 $barcode = '*' . $barcode unless $barcode =~ /^\*/;
111 $barcode = $barcode . '*' unless $barcode =~ /\*$/;
115 if( $type eq "QRcode" ){
116 $image = GD::Barcode->new('QRcode', $barcode, { Ecc => "M", ModuleSize => $qrcode_modulesize } )->plot->png();
118 $image = GD::Barcode->new( $type, $barcode )->plot( NoText => $notext, Height => $height )->png();
123 # problem creating image
124 print header( -status => 500 );
126 print header('image/png');
134 Kyle M Hall <kyle@bywatersolutions.com>