use C4::Auth qw(check_cookie_auth);
+=head1 NAME
+
+ /cgi-bin/koha/svc/barcode
+
+=head1 SYNOPSIS
+
+This service generates a PNG barcode image for the requested barcode.
+
+=head2 PARAMETERS
+
+=over
+
+=item I<barcode>
+
+I<barcode> is the desired barcode. It should be called like:
+
+=item I<type>
+
+I<type> is the desired barcode type. Possible values are
+Code39
+UPCE
+UPCA
+QRcode
+NW7
+Matrix2of5
+ITF
+Industrial2of5
+IATA2of5
+EAN8
+EAN13
+COOP2of5
+
+If ommited,it defaults to Code39.
+
+=item I<notext>
+
+Unless I<notext=1> is specified in the parameter list, the
+value of the barcode will included as text below the
+scannable barcode.
+
+
+=back
+
+=head2 EXAMPLES
+
+=over
+
+=item /cgi-bin/koha/svc/barcode?barcode=123456789
+
+Returns a Code39 barcode image for barcode 123456789
+
+=item /cgi-bin/koha/svc/barcode?barcode=123456789&type=UPCE
+
+Returns a UPCE barcode image for barcode 123456789
+
+=item /cgi-bin/koha/svc/barcode?barcode=123456789¬ext=1
+
+Returns a Code39 barcode image for barcode 123456789
+which does not include the human readable text '123456789'
+below the scannable barcode.
+
+=back
+
my $input = new CGI;
my ( $auth_status, $sessionID ) = check_cookie_auth( $input->cookie('CGISESSID'), { catalogue => '*' } );
my $type = $input->param('type') || 'Code39';
my $barcode = $input->param('barcode');
+my $notext = $input->param('notext') ? 1 : 0;
+my $image;
+
+eval {
+ $image = GD::Barcode->new( $type, $barcode )->plot( NoText => $notext )->png();
+};
+
+if ( $@ ) {
+ # problem creating image
+ print header( -status => 500 );
+} else {
+ print header('image/png');
+ print $image;
+}
+
+exit 0;
+
+=head1 AUTHOR
+
+Kyle M Hall <kyle@bywatersolutions.com>
-print header('image/png');
-print GD::Barcode->new( $type, $barcode )->plot()->png();
+=cut