--- loncom/interface/printout.pl 2006/12/18 21:03:10 1.118
+++ loncom/interface/printout.pl 2007/10/11 22:49:49 1.128
@@ -1,6 +1,7 @@
#!/usr/bin/perl
# CGI-script to run LaTeX, dvips, ps2ps, ps2pdf etc.
#
+# $Id: printout.pl,v 1.128 2007/10/11 22:49:49 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,9 +162,11 @@ 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');
-
+$env{'request.noversionuri'} = '/cgi-bin/printout.pl';
print(&Apache::loncommon::start_page('Creating PDF'));
my $identifier = $ENV{'QUERY_STRING'};
@@ -183,13 +187,14 @@ END
if ($student_names=~/_END_/) {
@names_pack=split(/_ENDPERSON_/,$student_names);
}
-
-print "Return to last resource.
";
-
+ if ($backref) {
+ print('
'.&mt("[_1]Return[_2] to editing 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 +218,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 +458,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 +524,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 +563,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 +608,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 +629,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 +674,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 +761,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 +784,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); }
@@ -861,8 +869,8 @@ sub repaginate {
# bottom of the page, m the page number within the document.
#
- if ($line =~ /^%%Page:/) {
- my @pageinfo = split(/ /, $line);
+ if ($line =~ /^%%Page:\s+\d+\s+\d+/) {
+ my @pageinfo = split(/\s+/, $line);
if ($page_number < $pageinfo[1]) {
$page_number = $pageinfo[1];
} elsif ($pageinfo[2] ne 1) {
@@ -993,7 +1001,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);
}