version 1.6, 2001/12/11 20:01:05
|
version 1.12, 2005/04/07 06:56:21
|
Line 1
|
Line 1
|
#!/usr/bin/perl |
#!/usr/bin/perl |
|
|
# The LearningOnline Network with CAPA |
# The LearningOnline Network with CAPA |
# barcode.gif - A CGI script that dynamically outputs a barcode. |
# barcode.png - A CGI script that dynamically outputs a barcode. |
# |
# |
# $Id$ |
# $Id$ |
# |
# |
Line 27
|
Line 27
|
# |
# |
# http://www.lon-capa.org/ |
# http://www.lon-capa.org/ |
# |
# |
# Scott Harrison |
|
# YEAR=2001 |
|
# 8/15,9/28,12/11 |
|
# |
|
### |
### |
|
|
# I'm using format=Code39. |
# I'm using format=Code39. |
Line 43
|
Line 39
|
use strict; |
use strict; |
use GD::Barcode::Code39; |
use GD::Barcode::Code39; |
|
|
|
$|=1; # Autoflush after each print/write |
|
my %env; |
foreach (split(/&/,$ENV{'QUERY_STRING'})) { |
foreach (split(/&/,$ENV{'QUERY_STRING'})) { |
my ($name, $value) = split(/=/,$_); |
my ($name, $value) = split(/=/,$_); |
$value =~ tr/+/ /; |
$value =~ tr/+/ /; |
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; |
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; |
if ($name eq 'encode') { |
if ($name eq 'encode') { |
$ENV{'form.'.$name}=$value; |
$env{'form.'.$name}=$value; |
} |
} |
} |
} |
|
|
# Tell the server we are sending a gif graphic |
# Tell the server we are sending a png graphic |
print <<END; |
print <<END; |
Content-type: image/gif |
Content-type: image/png |
|
|
END |
END |
|
|
unless(defined($ENV{'form.encode'}) and length($ENV{'form.encode'})) { |
unless(defined($env{'form.encode'}) and length($env{'form.encode'})) { |
$ENV{'form.encode'}='***ERROR***UNDEFINED***'; |
$env{'form.encode'}='***ERROR***UNDEFINED***'; |
} |
} |
|
my $text = '*'.uc($env{'form.encode'}).'*'; |
my $oGdBar=GD::Barcode::Code39->new($ENV{'form.encode'}); |
my $oGdBar=GD::Barcode::Code39->new($text); |
if ($GD::Barcode::errStr or !defined($oGdBar)) { |
if ($GD::Barcode::errStr or !defined($oGdBar)) { |
warn($GD::Barcode::errStr); |
warn($GD::Barcode::errStr); |
$oGdBar=GD::Barcode::Code39->new('***ERROR***INVALID***'); |
$oGdBar=GD::Barcode::Code39->new('***ERROR***INVALID***'); |
Line 70 if ($GD::Barcode::errStr or !defined($oG
|
Line 68 if ($GD::Barcode::errStr or !defined($oG
|
my $bindata=$oGdBar->plot->png; # create barcode image |
my $bindata=$oGdBar->plot->png; # create barcode image |
undef $oGdBar; |
undef $oGdBar; |
binmode(STDOUT); |
binmode(STDOUT); |
open OUT,"|pngtopnm|ppmtogif 2>/dev/null"; # convert into gif image |
#open OUT,"|pngtopnm|ppmtogif 2>/dev/null"; # convert into gif image |
print OUT $bindata; # output image |
#print OUT $bindata; # output image |
$|=1; # be sure to flush before closing |
#$|=1; # be sure to flush before closing |
close OUT; |
#close OUT; |
|
print $bindata; |