X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=C4%2FPrint.pm;h=6683119d4bf86548293c327f111ec115eb57a022;hb=0b2e9dbf620afeca2ec4a82b583c6787d8f1208b;hp=c215b1ded327a46bf1b2b5dedf0ac7db4ef1ee5e;hpb=7dcba2d082fb5d391ecba29dd16ee6db0abc4873;p=koha_fer diff --git a/C4/Print.pm b/C4/Print.pm index c215b1ded3..6683119d4b 100644 --- a/C4/Print.pm +++ b/C4/Print.pm @@ -1,5 +1,4 @@ -package C4::Print; #assumes C4/Print.pm - +package C4::Print; # Copyright 2000-2002 Katipo Communications # @@ -14,18 +13,23 @@ package C4::Print; #assumes C4/Print.pm # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR # A PARTICULAR PURPOSE. See the GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along with -# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA +# You should have received a copy of the GNU General Public License along +# with Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. use strict; -require Exporter; -#use C4::InterfaceCDK; +#use warnings; FIXME - Bug 2505 +use C4::Context; use vars qw($VERSION @ISA @EXPORT); -# set the version for version checking -$VERSION = 0.01; +BEGIN { + # set the version for version checking + $VERSION = 3.07.00.049; + require Exporter; + @ISA = qw(Exporter); + @EXPORT = qw(&NetworkPrint); +} =head1 NAME @@ -41,131 +45,62 @@ The functions in this module handle sending text to a printer. =head1 FUNCTIONS -=over 2 - -=cut - -@ISA = qw(Exporter); -@EXPORT = qw(&remoteprint &printslip); - -=item remoteprint - - &remoteprint($env, $items, $borrower); - -Prints the list of items in C<$items> to a printer. - -C<$env> is a reference-to-hash. C<$env-E{queue}> specifies the -queue to print to; if it is empty or has the special value C, -C<&remoteprint> will print to the file F. +=head2 NetworkPrint -C<$borrower> is a reference-to-hash giving information about a patron. -This may be gotten from C<&getpatroninformation>. The patron's name -will be printed in the output. + &NetworkPrint($text) -C<$items> is a reference-to-list, where each element is a -reference-to-hash describing a borrowed item. C<$items> may be gotten -from C<¤tissues>. +Queue some text for printing on the selected branch printer =cut -#' -# FIXME - It'd be nifty if this could generate pretty PostScript. -sub remoteprint { - my ($env,$items,$borrower)=@_; - #open (FILE,">/tmp/olwen"); - #print FILE "queue $env->{'queue'}"; - #close FILE; - #debug_msg($env,"In print"); - my $file=time; # FIXME - Not used - my $queue = $env->{'queue'}; - # FIXME - If 'queue' is undefined or empty, then presumably it should - # mean "use the default queue", whatever the default is. Presumably - # the default depends on the physical location of the machine. - # FIXME - Perhaps "print to file" should be a supported option. Just - # set the queue to "file" (or " file", if real queues aren't allowed - # to have spaces in them). Or perhaps if $queue eq "" and - # $env->{file} ne "", then that should mean "print to $env->{file}". - if ($queue eq "" || $queue eq 'nulllp') { - open (PRINTER,">/tmp/kohaiss"); - } else { - # FIXME - This assumes that 'lpr' exists, and works as expected. - # This is a reasonable assumption, but only because every other - # printing package has a wrapper script called 'lpr'. It'd still - # be better to be able to customize this. - open(PRINTER, "| lpr -P $queue") or die "Couldn't write to queue:$queue!\n"; - } -# print $queue; - #open (FILE,">/tmp/$file"); - my $i=0; - my $brdata = $env->{'brdata'}; # FIXME - Not used - # FIXME - This is HLT-specific. Put this stuff in a customizable - # site-specific file somewhere. - print PRINTER "Horowhenua Library Trust\r\n"; -# print PRINTER "$brdata->{'branchname'}\r\n"; - print PRINTER "Phone: 368-1953\r\n"; - print PRINTER "Fax: 367-9218\r\n"; - print PRINTER "Email: renewals\@library.org.nz\r\n\r\n\r\n"; - print PRINTER "$borrower->{'cardnumber'}\r\n"; - print PRINTER "$borrower->{'title'} $borrower->{'initials'} $borrower->{'surname'}\r\n"; - # FIXME - Use for ($i = 0; $items->[$i]; $i++) - # Or better yet, foreach $item (@{$items}) - while ($items->[$i]){ -# print $i; - my $itemdata = $items->[$i]; - # FIXME - This is just begging for a Perl format. - print PRINTER "$i $itemdata->{'title'}\r\n"; - print PRINTER "$itemdata->{'barcode'}"; - print PRINTER " "x15; - print PRINTER "$itemdata->{'date_due'}\r\n"; - $i++; - } - print PRINTER "\r\n\r\n\r\n\r\n\r\n\r\n\r\n"; - if ($env->{'printtype'} eq "docket"){ - #print chr(27).chr(105); - } - close PRINTER; - #system("lpr /tmp/$file"); -} - -=item printslip - &printslip($env, $text) +sub NetworkPrint { + my ($text) = @_; -Prints the string C<$text> to a printer. C<$env-E{queue}> -specifies the queue to print to. - -If C<$env-E{queue}> is empty or set to C, C<&printslip> -will print to the file F. +# FIXME - It'd be nifty if this could generate pretty PostScript. -=cut -#' -# FIXME - There's also a &printslip in circ/circulation.pl -sub printslip { - my($env, $slip)=@_; - my $printer = $env->{'printer'}; - if ($printer eq "" || $printer eq 'nulllp') { - open (PRINTER,">/tmp/kohares"); - } else { - open (PRINTER, "| lpr -P $printer") or die "Couldn't write to queue:$!\n"; - } - print PRINTER $slip; - close PRINTER; + my $queue = ''; + + # FIXME - If 'queue' is undefined or empty, then presumably it should + # mean "use the default queue", whatever the default is. Presumably + # the default depends on the physical location of the machine. + # FIXME - Perhaps "print to file" should be a supported option. Just + # set the queue to "file" (or " file", if real queues aren't allowed + # to have spaces in them). Or perhaps if $queue eq "" and + # $env->{file} ne "", then that should mean "print to $env->{file}". + + my $fh; + if ( $queue eq "" || $queue eq 'nulllp' ) { + return; + #open( $fh, ">/tmp/kohaiss" ); + } + else { + + # FIXME - This assumes that 'lpr' exists, and works as expected. + # This is a reasonable assumption, but only because every other + # printing package has a wrapper script called 'lpr'. It'd still + # be better to be able to customize this. + open( $fh, "-|", "lpr -P $queue > /dev/null" ) + or die "Couldn't write to queue:$queue!\n"; + } + + # print $queue; + #open (FILE,">/tmp/$file"); + print $fh $text; + print $fh "\r\n" x 7 ; + close $fh; + + #system("lpr /tmp/$file"); } -END { } # module clean-up code here (global destructor) - 1; __END__ -=back - =head1 AUTHOR -Koha Developement team +Koha Development Team =head1 SEE ALSO -L. - -L +C4::Circulation::Circ2(3) =cut