Bug 25242: Compiled CSS
[koha.git] / svc / barcode
blob3c362a433a0938f8c585b26d315514b5ea608f68
1 #!/usr/bin/perl
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>.
20 use Modern::Perl;
22 use CGI qw(header);
23 use GD::Barcode;
25 use C4::Auth qw(check_cookie_auth);
27 =head1 NAME
29 /cgi-bin/koha/svc/barcode
31 =head1 SYNOPSIS
33 This service generates a PNG barcode image for the requested barcode.
35 =head2 PARAMETERS
37 =over
39 =item I<barcode>
41 I<barcode> is the desired barcode. It should be called like:
43 =item I<type>
45 I<type> is the desired barcode type. Possible values are
46 Code39
47 UPCE
48 UPCA
49 QRcode
50 NW7
51 Matrix2of5
52 ITF
53 Industrial2of5
54 IATA2of5
55 EAN8
56 EAN13
57 COOP2of5
59 If ommited,it defaults to Code39.
61 =item I<notext>
63 Unless I<notext=1> is specified in the parameter list, the
64 value of the barcode will included as text below the
65 scannable barcode.
68 =back
70 =head2 EXAMPLES
72 =over
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&notext=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.
88 =back
90 =cut
92 my $input = new CGI;
94 my ( $auth_status, $sessionID ) = check_cookie_auth( $input->cookie('CGISESSID'), { catalogue => '*' } );
96 if ( $auth_status ne "ok" ) {
97 exit 0;
100 binmode(STDOUT);
102 my $type = $input->param('type') || 'Code39';
103 my $barcode = $input->param('barcode');
104 my $notext = $input->param('notext') ? 1 : 0;
105 my $image;
107 eval {
108 $image = GD::Barcode->new( $type, $barcode )->plot( NoText => $notext )->png();
111 if ( $@ ) {
112 # problem creating image
113 print header( -status => 500 );
114 } else {
115 print header('image/png');
116 print $image;
119 exit 0;
121 =head1 AUTHOR
123 Kyle M Hall <kyle@bywatersolutions.com>
125 =cut