Bug 22835: Serve plugin static files through API
[srvgit] / svc / barcode
index 8c4e745..89ea0a4 100755 (executable)
@@ -24,6 +24,69 @@ use GD::Barcode;
 
 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&notext=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 => '*' } );
@@ -36,6 +99,25 @@ binmode(STDOUT);
 
 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