View | Details | Raw Unified | Return to bug 26692
Collapse All | Expand All

(-)a/opac/svc/barcode (-1 / +122 lines)
Line 0 Link Here
0
- 
1
#!/usr/bin/perl
2
3
# Copyright 2014 ByWater Solutions
4
#
5
# This file is part of Koha.
6
#
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.
11
#
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.
16
#
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>.
19
20
use Modern::Perl;
21
22
use CGI qw(header);
23
use GD::Barcode;
24
25
use C4::Auth qw(checkauth);
26
27
=head1 NAME
28
29
/cgi-bin/koha/svc/barcode
30
31
=head1 SYNOPSIS
32
33
This service generates a PNG barcode image for the requested barcode.
34
35
=head2 PARAMETERS
36
37
=over
38
39
=item I<barcode>
40
41
I<barcode> is the desired barcode. It should be called like:
42
43
=item I<type>
44
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
58
59
If ommited,it defaults to Code39.
60
61
=item I<notext>
62
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.
66
67
68
=back
69
70
=head2 EXAMPLES
71
72
=over
73
74
=item /cgi-bin/koha/svc/barcode?barcode=123456789
75
76
Returns a Code39 barcode image for barcode 123456789
77
78
=item /cgi-bin/koha/svc/barcode?barcode=123456789&type=UPCE
79
80
Returns a UPCE barcode image for barcode 123456789
81
82
=item /cgi-bin/koha/svc/barcode?barcode=123456789&notext=1
83
84
Returns a Code39 barcode image for barcode 123456789
85
which does not include the human readable text '123456789'
86
below the scannable barcode.
87
88
=back
89
90
=cut
91
92
my $input = CGI->new;
93
94
my ( $user, $cookie, $sessionID, $flags ) = checkauth( $cgi, 1, {}, 'opac' );
95
$user && $sessionID or response_bad_request("User not logged in");
96
97
binmode(STDOUT);
98
99
my $type = $input->param('type') || 'Code39';
100
my $barcode = $input->param('barcode');
101
my $notext = $input->param('notext') ? 1 : 0;
102
my $image;
103
104
eval {
105
    $image = GD::Barcode->new( $type, $barcode )->plot( NoText => $notext )->png();
106
};
107
108
if ( $@ ) {
109
    # problem creating image
110
    print header( -status => 500 );
111
} else {
112
    print header('image/png');
113
    print $image;
114
}
115
116
exit 0;
117
118
=head1 AUTHOR
119
120
Kyle M Hall <kyle@bywatersolutions.com>
121
122
=cut

Return to bug 26692