Diff for /loncom/interface/printout.pl between versions 1.43 and 1.55

version 1.43, 2004/02/03 21:39:11 version 1.55, 2004/05/06 06:45:13
Line 27 Line 27
 #  #
   
 use lib '/home/httpd/lib/perl';  use lib '/home/httpd/lib/perl';
   use Time::Local;
 use LONCAPA::loncgi();  use LONCAPA::loncgi();
 use File::Path;  use File::Path;
 use IO::File;  use IO::File;
 use Image::Magick;  use Image::Magick;
   use Apache::lonhtmlcommon;
   use Apache::loncommon;
   use Apache::lonlocal;
   
   $|=1;
   my %origENV=%ENV;
 if (! &LONCAPA::loncgi::check_cookie_and_load_env()) {  if (! &LONCAPA::loncgi::check_cookie_and_load_env()) {
     print <<END;      print <<END;
 Content-type: text/html  Content-type: text/html
Line 45  Your cookie information is incorrect. Line 51  Your cookie information is incorrect.
 END  END
     return;      return;
 }  }
    &Apache::lonlocal::get_language_handle();
  print "Content-type: text/html\n\n";   &Apache::loncommon::content_type(undef,'text/html');
  print "<body bgcolor=\"#FFFFFF\">\n";   my $bodytag=&Apache::loncommon::bodytag('Creating PDF','','');
    print $bodytag;
   
   my $identifier = $ENV{'QUERY_STRING'};    my $identifier = $ENV{'QUERY_STRING'};
   my $texfile = $ENV{'cgi.'.$identifier.'.file'};    my $texfile = $ENV{'cgi.'.$identifier.'.file'};
Line 57  END Line 64  END
   my $tableofcontents = $ENV{'cgi.'.$identifier.'tableofcontents'};    my $tableofcontents = $ENV{'cgi.'.$identifier.'tableofcontents'};
   my $tableofindex = $ENV{'cgi.'.$identifier.'tableofindex'};    my $tableofindex = $ENV{'cgi.'.$identifier.'tableofindex'};
   my $advans_role = $ENV{'cgi.'.$identifier.'role'};    my $advans_role = $ENV{'cgi.'.$identifier.'role'};
   my $back_ref = $ENV{'cgi.'.$identifier.'backref'};  
   my $number_of_files = $ENV{'cgi.'.$identifier.'numberoffiles'}+1;    my $number_of_files = $ENV{'cgi.'.$identifier.'numberoffiles'}+1;
     my $student_names = $ENV{'cgi.'.$identifier.'studentnames'};
     my $backref = $ENV{'cgi.'.$identifier.'backref'};
   
     my $adv = $ENV{'request.role.adv'};
     
     my @names_pack=();
     if ($student_names=~/_END_/) {  
         @names_pack=split(/_ENDPERSON_/,$student_names);
     }
     #got what we needed reset ENV in case it is to big for system
     %ENV=%origENV;
   
   my $figfile = $texfile;    my $figfile = $texfile;
   $figfile =~ s/^([^\.]+printout)[^t]+\.tex/$1\.dat/;    $figfile =~ s/^([^\.]+printout)[^t]+\.tex/$1\.dat/;
Line 72  END Line 88  END
       my @content_of_file = <$temporary_file>;        my @content_of_file = <$temporary_file>;
       close $temporary_file;          close $temporary_file;  
       my $noteps;        my $noteps;
         my %prog_state;
         if ($adv) { %prog_state=&Apache::lonhtmlcommon::Create_PrgWin('','Coverting Images to EPS','Picture Conversion Status',$#content_of_file,'inline','75');  }
       foreach $not_eps (@content_of_file) {        foreach $not_eps (@content_of_file) {
     chomp($not_eps);
   if ($not_eps ne '') {    if ($not_eps ne '') {
                 my $status_statement='EPS picture for '.$not_eps;
       $not_eps=~s|\/\.\/|\/|g;        $not_eps=~s|\/\.\/|\/|g;
       my $eps_f = $not_eps;        my $eps_f = $not_eps;
       $eps_f =~ s/\.[^.]*$/\.eps/i;        $eps_f =~ s/\.[^.]*$/\.eps/i;
Line 93  END Line 113  END
       if ( exists($done_conversion{$not_eps})) {        if ( exists($done_conversion{$not_eps})) {
   next;    next;
       }        }
         if ($adv) {
     my $prettyname=$not_eps;
     $prettyname=~s|/home/([^/]+)/public_html|/priv/$1|;
     $prettyname=~s|/home/httpd/html/|/|;
     &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state,'Converting to EPS '.$prettyname); }
       $done_conversion{$not_eps}=1;        $done_conversion{$not_eps}=1;
       $status = $image->Read($not_eps);        $status = $image->Read($not_eps);
       if ($status) {print "  $status  ";}        if ($status) {print "  $status  ";}
Line 110  END Line 135  END
       }          }  
   }    }
       }        }
         if ($adv) { &Apache::lonhtmlcommon::Close_PrgWin('',\%prog_state); }
         unlink($figfile);
   }    }
   #print "$texfile\n"; #name of the tex file for debugging only       #print "$texfile\n"; #name of the tex file for debugging only   
   my @texfile=($texfile);    my @texfile=($texfile);
   if ($number_of_files>1) {    if ($number_of_files>1) {
       for (my $i=1;$i<=$number_of_files-1;$i++) {        @texfile=();
         for (my $i=1;$i<=$number_of_files;$i++) {
   my $new_texfile=$texfile;    my $new_texfile=$texfile;
   $new_texfile=~s/\.tex/_add$i\.tex/;    $new_texfile=~s/\.tex/_$i\.tex/;
   push @texfile,$new_texfile;    push @texfile,$new_texfile;
       }         } 
   }    }
   
   my $ind=-1;
   my %prog_state;
   if ($adv) { %prog_state=&Apache::lonhtmlcommon::Create_PrgWin('','Print Status','Class Print Status',$number_of_files,'inline','75'); }
   my $final_statement="<a href=\"$backref\"><b>Return</b></a> to last resource.<br /><br />Generated PDF File for:<br />";
 foreach $texfile (@texfile) {  foreach $texfile (@texfile) {
     my $status_statement='';
     my $link_text='download PDF';
     $ind++;
     my @stud_info=split(/_END_/,$names_pack[$ind]);
     my @tempo_array=split(/:/,$stud_info[0]);
     my $name;
     if ($tempo_array[3]) {
         $name=$tempo_array[3];
     } else {
         $name=$tempo_array[0].'@'.$tempo_array[1];
     }
     $link_text='<b>'.$name.'</b> ';
     $status_statement.=$name;
     if ($#stud_info>0) {
         @tempo_array=split(/:/,$stud_info[-1]);
         if ($tempo_array[3]) {
     $name=$tempo_array[3];
         } else {
     $name=$tempo_array[0].'@'.$tempo_array[1];
         }
         $link_text.='- <b>'.$name.':</b>  ';
         $status_statement.=' -  '.$name;
     } 
     if ($adv) { &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state,'Creating PDF for '.$status_statement); }
   if (-e $texfile) {    if (-e $texfile) {
       $texfile =~ m/^(.*)\/([^\/]+)$/;         $texfile =~ m/^(.*)\/([^\/]+)$/; 
       my $name_file = $2;        my $name_file = $2;
Line 153  foreach $texfile (@texfile) { Line 210  foreach $texfile (@texfile) {
   my $whereitbegins = rindex $body_log_file,'STAMPOFPASSEDRESOURCESTART';    my $whereitbegins = rindex $body_log_file,'STAMPOFPASSEDRESOURCESTART';
   my $whereitends = rindex $body_log_file,'STAMPOFPASSEDRESOURCEEND';    my $whereitends = rindex $body_log_file,'STAMPOFPASSEDRESOURCEEND';
   if ($whereitbegins!=-1 and $whereitends!=-1) {    if ($whereitbegins!=-1 and $whereitends!=-1) {
       print "With very high probability this error occured in ".substr($body_log_file,$whereitbegins+26,$whereitends-$whereitbegins-26)."<br /><br />";         print "With very high probability this error occured in ".substr($body_log_file,$whereitbegins+26,$whereitends-$whereitbegins-26)."<br /><br />";
   }    }
   print "Here are the error messages in the LaTeX log file</br><br />";    print "Here are the error messages in the LaTeX log file</br><br />";
   my $sygnal = 0;    my $sygnal = 0;
Line 261  foreach $texfile (@texfile) { Line 318  foreach $texfile (@texfile) {
   my $comma = "dvips -Ppdf -G0 -o $new_name_file";    my $comma = "dvips -Ppdf -G0 -o $new_name_file";
   system("$comma $name_file 1>/dev/null 2>/dev/null");    system("$comma $name_file 1>/dev/null 2>/dev/null");
   if (-e $new_name_file) {    if (-e $new_name_file) {
       print "<h1>Successfully created PDF output file (see link below)</h1>\n";        print "<br />$final_statement ";
         $final_statement='';
       $new_name_file =~ m/^(.*)\./;        $new_name_file =~ m/^(.*)\./;
       my $tempo_file = $1.'temporar.ps';        my $tempo_file = $1.'temporar.ps';
       my $name_file = $1.'.pdf';        my $name_file = $1.'.pdf';
Line 287  foreach $texfile (@texfile) { Line 345  foreach $texfile (@texfile) {
       my @garb = ($texlog,$texaux,$texdvi,$texps);        my @garb = ($texlog,$texaux,$texdvi,$texps);
 #  unlink @garb;  #  unlink @garb;
       unlink $duefile;        unlink $duefile;
       print "<a href=\"/prtspool/$name_file\">Your PDF document</a>";        print "<a href=\"/prtspool/$name_file\">$link_text</a>";
       print "\n";        print "\n";
   }    }
       }        }
Line 295  foreach $texfile (@texfile) { Line 353  foreach $texfile (@texfile) {
       print "LaTeX file $texfile was not created successfully";        print "LaTeX file $texfile was not created successfully";
   }    }
 }  }
   print "<br />";
   if ($number_of_files>1) {
         my $zipfile=$texfile[0];
       $zipfile=~s/\.tex/\.zip/;
       my $statement="zip $zipfile";
       foreach my $file (@texfile) {
    $file=~s/\.tex/.\pdf/;
    $statement.=' '.$file; 
       }
       print("<pre>Zip Output:\n");
       system($statement);
       print("</pre>");
       $zipfile=~s/\/home\/httpd//;
       print "<br /> A <a href=\"$zipfile\">ZIP file</a> of all the PDFs.";
   }
   if ($adv) { &Apache::lonhtmlcommon::Close_PrgWin('',\%prog_state); }
   
   
   

Removed from v.1.43  
changed lines
  Added in v.1.55


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.