--- loncom/interface/printout.pl 2006/12/18 21:03:10 1.118 +++ loncom/interface/printout.pl 2007/09/21 20:56:30 1.126 @@ -1,6 +1,7 @@ #!/usr/bin/perl # CGI-script to run LaTeX, dvips, ps2ps, ps2pdf etc. # +# $Id: printout.pl,v 1.126 2007/09/21 20:56:30 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -38,6 +39,7 @@ use Apache::loncommon(); use Apache::lonlocal; use Apache::lonmsg(); use LONCAPA::Enrollment; +use LONCAPA::Configuration; use strict; @@ -127,8 +129,8 @@ sub send_error_mail { foreach my $line (@$texfile) { $message .= "$line\n"; } - my (undef, %receivers) = &Apache::lonfeedback::decide_receiver(undef, 0, - 1,1,1); + my (undef, %receivers) = &Apache::lonmsg::decide_receiver(undef, 0, + 1,1,1); # print "
sending...section: $env{'request.course.sec'}"; foreach my $dest (keys %receivers) { # print "
dest is $dest"; @@ -160,6 +162,8 @@ Your cookie information is incorrect. END return; } + +my %perlvar=%{&LONCAPA::Configuration::read_conf('loncapa.conf')}; &Apache::lonlocal::get_language_handle(); &Apache::loncommon::content_type(undef,'text/html'); @@ -187,9 +191,9 @@ END print "Return to last resource.

"; my $figfile = $texfile; - $figfile =~ s/^([^\.]+printout)[^t]+\.tex/$1\.dat/; + $figfile =~ s/^(.*_printout)_\d+_\d+_\d+\.tex/$1\.dat/; my $duefile = $texfile; - $duefile =~ s/^([^\.]+printout)[^t]+\.tex/$1\.due/; + $duefile =~ s/^(.*_printout)_\d+_\d+_\d+\.tex/$1\.due/; #do we have figures? # print "Figure file: $figfile\n"; if (-e $figfile) { @@ -213,13 +217,13 @@ print "ReturnReturn\n"; # print "
Advanced role
"; print "The link to "; - $logfilename=~s/\/home\/httpd//; + $logfilename=~s{^\Q$perlvar{'lonPrtDir'}\E}{/prtspool}; print "
Your log file "; print "\n"; #link tooriginal LaTeX file (included according Michael Hamlin desire) @@ -453,7 +457,7 @@ foreach $texfile (@texfile) { print $tex_temporary_file 'LOGFILE
'.$body_tex_file.'
'."\n"; print "

"; print "The link to "; - $texfile=~s/\/home\/httpd//; + $texfile=~s{^\Q$perlvar{'lonPrtDir'}\E}{/prtspool}; print "Your original LaTeX file "; print "\n"; my $help_text = &Apache::loncommon::help_open_topic("Print_Resource", "Help on printing"); @@ -519,7 +523,7 @@ foreach $texfile (@texfile) { if ($tableofindex eq 'yes') { my $idxname = $latex_file; $idxname =~ s/\.tex$/\.idx/; - &busy_wait_command("makindex $idxname", + &busy_wait_command("makeindex $idxname", "Re-creating index file", \%prog_state, $idxname); &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null", @@ -558,8 +562,7 @@ foreach $texfile (@texfile) { #print("
Missing fonts file is: $missfonts_file"); if (-e $missfonts_file) { #print("
Missing fonts file exists\n"); - &create_missing_fonts($missfonts_file); - unlink($missfonts_file, \%prog_state); + &create_missing_fonts($missfonts_file,\%prog_state); &busy_wait_command("$comma $name_file 1>/dev/null 2>/dev/null", "for $status_statement dvips generated missing fonts", \%prog_state, $new_name_file); @@ -604,13 +607,15 @@ foreach $texfile (@texfile) { $texps =~ s/\.tex/\.ps/; my @garb = ($texaux,$texdvi,$texps); # unlink @garb; - unlink $duefile; + unlink($duefile); print "Your PDF document"; + unlink($missfonts_file); + } if ($advanced_role) { print "

"; print "The link to "; - $logfilename=~s/\/home\/httpd//; + $logfilename=~s{^\Q$perlvar{'lonPrtDir'}\E}{/prtspool}; print "Your log file "; print "\n"; #link tooriginal LaTeX file (included according Michael Hamlin desire) @@ -623,10 +628,11 @@ foreach $texfile (@texfile) { print $tex_temporary_file 'LOGFILE
'.$body_tex_file.'
'."\n"; print "

"; print "The link to "; - $texfile=~s/\/home\/httpd//; + $texfile=~s{^\Q$perlvar{'lonPrtDir'}\E}{/prtspool}; print "Your original LaTeX file "; print "\n"; } + } else { #LaTeX successfully parsed tex file $name_file =~ s/\.tex/\.dvi/; @@ -667,8 +673,7 @@ foreach $texfile (@texfile) { #print("
Missing fonts file is: $missfonts_file"); if (-e $missfonts_file) { #print("
Missing fonts file exists\n"); - &create_missing_fonts($missfonts_file); - unlink($missfonts_file); + &create_missing_fonts($missfonts_file,\%prog_state); &busy_wait_command("$comma $name_file 1>/dev/null 2>/dev/null", "for $status_statement dvips generated missing fonts", \%prog_state, $new_name_file); @@ -755,10 +760,12 @@ foreach $texfile (@texfile) { $texps =~ s/\.tex/\.ps/; my @garb = ($texlog,$texaux,$texdvi,$texps); # unlink @garb; - unlink $duefile; + unlink($duefile); print "$link_text - click here to download pdf"; print "\n"; } + unlink($missfonts_file); + } } else { print "LaTeX file $texfile was not created successfully"; @@ -776,7 +783,7 @@ if ($number_of_files>1) { print("
Zip Output:\n");
     system($statement);
     print("
"); - $zipfile=~s/\/home\/httpd//; + $zipfile=~s{^\Q$perlvar{'lonPrtDir'}\E}{/prtspool}; print "
A ZIP file of all the PDFs."; } if ($advanced_role) { &Apache::lonhtmlcommon::Close_PrgWin('',\%prog_state); } @@ -862,7 +869,7 @@ sub repaginate { # if ($line =~ /^%%Page:/) { - my @pageinfo = split(/ /, $line); + my @pageinfo = split(/\s+/, $line); if ($page_number < $pageinfo[1]) { $page_number = $pageinfo[1]; } elsif ($pageinfo[2] ne 1) { @@ -993,7 +1000,7 @@ sub create_missing_fonts { #print("
Creating fonts via command: $command"); &busy_wait_command("$command 1>/dev/null 2>/dev/null", "Creating missing font", - $state, $command); + $state); }