Diff for /loncom/interface/lonprintout.pm between versions 1.31 and 1.36

version 1.31, 2002/05/22 21:10:42 version 1.36, 2002/07/01 20:56:20
Line 46  use Apache::lonnet; Line 46  use Apache::lonnet;
 use Apache::inputtags;  use Apache::inputtags;
 use Apache::edit;  use Apache::edit;
 use Apache::File();  use Apache::File();
   use POSIX qw(strftime);
   
   
 sub headerform {  sub headerform {
Line 85  ENDMENUOUT2 Line 85  ENDMENUOUT2
     $r->print(<<ENDMENUOUT3);      $r->print(<<ENDMENUOUT3);
 <br /><hr /><br />  <br /><hr /><br />
 <h1>And what page format do you prefer?</h1>  <h1>And what page format do you prefer?</h1>
 <input type="radio" name="layout" value="CBI"> Two columns landscape <br />  <table>
 <input type="radio" name="layout" value="CAPA" checked>  Two columns portrait <br />   <tr>
      <td>
        <input type="radio" name="layout" value="CBI"> Landscape <br />
        <input type="radio" name="layout" value="CAPA" checked>  Portrait <br />
      </td>
      <td>&nbsp;</td>
      <td rawspan="2">
        Number of columns: <input type="text" size="2" name="numberofcolumns" value="2"> 
      </td>
    </tr>
   </table>
   </br> 
 <input type="submit" value="Submit your choice">  <input type="submit" value="Submit your choice">
 </form>  </form>
 </body>  </body>
Line 110  ENDPART Line 121  ENDPART
   
     my $choice = $ENV{'form.choice'};      my $choice = $ENV{'form.choice'};
     my $layout = $ENV{'form.layout'};      my $layout = $ENV{'form.layout'};
     my $subdirtoprint = $ENV{'form.subdirect'};      my $numberofcolumns = $ENV{'form.numberofcolumns'};               
     my $laystyle = 'book';      my $laystyle = 'book';
     my $result = '';      my $result = '';
     my %mystyle;      my $number_of_columns = 1;
     my $filename;   
   
     if ($choice eq 'Standard LaTeX output for current document') {      if ($choice eq 'Standard LaTeX output for current document') {
         #-- single document - problem, page, html, xml  
       my %moreenv;        my %moreenv;
       my $currequest=$ENV{'request.filename'};  
       $moreenv{'form.grade_target'}='tex';        $moreenv{'form.grade_target'}='tex';
       $moreenv{'request.filename'}=$ENV{'form.url'};        $moreenv{'request.filename'}=$ENV{'form.url'};
       &Apache::lonnet::appenv(%moreenv);        &Apache::lonnet::appenv(%moreenv);
       my $texversion=&Apache::lonnet::ssi($ENV{'form.url'});        my $texversion=&Apache::lonnet::ssi($ENV{'form.url'});
       &Apache::lonnet::delenv('form.grade_target');        &Apache::lonnet::delenv('form.grade_target');
       %moreenv = ();  
       $moreenv{'request.filename'}=$currequest;  
       &Apache::lonnet::appenv(%moreenv);  
       $result .= $texversion;        $result .= $texversion;
       $result = &additional_cleanup($result);        $result = &additional_cleanup($result);
         if ($ENV{'form.url'}=~m/\.page\s*$/) {($result,$number_of_columns) = &page_cleanup($result);}
     } elsif ($choice eq 'Standard LaTeX output for the primary sequence' or $choice eq 'Standard LaTeX output for whole primary sequence') {      } elsif ($choice eq 'Standard LaTeX output for the primary sequence' or $choice eq 'Standard LaTeX output for whole primary sequence') {
 #-- where is the primary sequence containing file?        #-- minimal sequence to which the current document belongs
  my %moreenv;          #-- where is the primary sequence containing file?
  my $symbolic = &Apache::lonnet::symbread($ENV{'form.url'});   my $symbolic = &Apache::lonnet::symbread($ENV{'form.url'});
  $_ = $symbolic;   $_ = $symbolic;
  m/([^_]+)_/;   m/([^_]+)_/;
  my $primary_sequence = '/res/'.$1;   my $primary_sequence = '/res/'.$1;
 #-- open and analyses the primary sequence          #-- open and analyses the primary sequence
  my $sequence_file=&Apache::lonnet::filelocation("",$primary_sequence);   my $sequence_file=&Apache::lonnet::filelocation("",$primary_sequence);
  my $sequencefilecontents=&Apache::lonnet::getfile($sequence_file);   my $sequencefilecontents=&Apache::lonnet::getfile($sequence_file);
  my @master_seq = &content_map($sequencefilecontents);   my @master_seq = &content_map($sequencefilecontents);
 #-- produce an output string          #-- produce an output string
  for (my $i=0;$i<=$#master_seq;$i++) {   for (my $i=0;$i<=$#master_seq;$i++) {
     $_ = $master_seq[$i];      $_ = $master_seq[$i];
     m/\"(.*)\"/;      m/\"(.*)\"/;
             $_ = $1;              $_ = $1;
             my $urlp = $1;              my $urlp = $1;
     if ($choice eq 'Standard LaTeX output for the primary sequence') {      if ($choice eq 'Standard LaTeX output for the primary sequence') {
  if (/\.(problem|exam|quiz|assess|survey|form|library)/) {   if ($urlp =~ m/\.(problem|exam|quiz|assess|survey|form|library)/) {
     my %moreenv;      my %moreenv;
     $moreenv{'form.grade_target'}='tex';      $moreenv{'form.grade_target'}='tex';
     &Apache::lonnet::appenv(%moreenv);      &Apache::lonnet::appenv(%moreenv);
Line 156  ENDPART Line 164  ENDPART
     $result .= $texversion;              $result .= $texversion;        
  }   }
     } else {      } else {
    my %moreenv;
  $moreenv{'form.grade_target'}='tex';   $moreenv{'form.grade_target'}='tex';
  &Apache::lonnet::appenv(%moreenv);   &Apache::lonnet::appenv(%moreenv);
  my $texversion=&Apache::lonnet::ssi($urlp);   my $texversion=&Apache::lonnet::ssi($urlp);
Line 237  ENDPART Line 246  ENDPART
   
     }      }
 #-- corrections for the different page formats  #-- corrections for the different page formats
     if ($layout eq 'CBI') {      if ($layout eq 'CBI' and $numberofcolumns eq '1') {
       } elsif ($layout eq 'CBI' and $numberofcolumns eq '2') {
  $result =~ s/\\begin{document}/\\setlength{\\oddsidemargin}{-40pt}\\setlength{\\evensidemargin}{-60pt}\\setlength{\\topmargin}{200pt}\\setlength{\\textwidth}{4\.4in}\\setlength{\\textheight}{6\.8in}\\setlength{\\parindent}{20pt}\\setlength{\\marginparwidth}{90pt}\\setlength{\\textfloatsep}{8pt plus 2\.0pt minus 4\.0pt} \\begin{document}/;   $result =~ s/\\begin{document}/\\setlength{\\oddsidemargin}{-40pt}\\setlength{\\evensidemargin}{-60pt}\\setlength{\\topmargin}{200pt}\\setlength{\\textwidth}{4\.4in}\\setlength{\\textheight}{6\.8in}\\setlength{\\parindent}{20pt}\\setlength{\\marginparwidth}{90pt}\\setlength{\\textfloatsep}{8pt plus 2\.0pt minus 4\.0pt} \\begin{document}/;
         $laystyle = 'album';          $laystyle = 'album';
     } elsif ($layout eq 'CAPA') {      } elsif ($layout eq 'CAPA') {
Line 245  ENDPART Line 255  ENDPART
         $_ = $courseidinfo;          $_ = $courseidinfo;
         m/.*\/(.*)/;          m/.*\/(.*)/;
         $courseidinfo = $ENV{'course.physnet_'.$1.'.description'};          $courseidinfo = $ENV{'course.physnet_'.$1.'.description'};
  $result =~ s/\\documentclass\[letterpaper\]{article}/\\documentclass\[twocolumn\]{article}/;  # $result =~ s/\\documentclass\[letterpaper\]{article}/\\documentclass\[twocolumn\]{article}/;
  $result =~ s/\\begin{document}/\\textheight 25\.9cm\\oddsidemargin = -0\.57in\\evensidemargin = -0\.57in\\textwidth= 7\.7in\\renewcommand{\\ref}{\\keephidden\}\\begin{document}\\voffset=-1\.8cm\\setcounter{page}{1}\\noindent\\fbox{\\textbf{$ENV{'environment.firstname'} $ENV{'environment.lastname'}}}\\hskip 1\.4in $courseidinfo \\vskip 5 mm /;   $result =~ s/\\documentclass\[letterpaper\]{article}/\\documentclass{article}/;
    $result =~ s/\\begin{document}/\\textheight 25\.9cm\\oddsidemargin = -0\.57in\\evensidemargin = -0\.57in\\textwidth= 9cm\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\begin{document}\\voffset=-1\.8cm\\setcounter{page}{1}\\parbox{\\minipagewidth}{\\noindent\\fbox{\\textbf{$ENV{'environment.firstname'} $ENV{'environment.lastname'}}}\\hskip 1\.4in $courseidinfo} \\vskip 5 mm /;
  $result =~ s/\\includegraphics{/\\includegraphics\[width=9\.0 cm\]{/g;   $result =~ s/\\includegraphics{/\\includegraphics\[width=9\.0 cm\]{/g;
  $result =~ s/(\\end{document})/\\newline\\noindent\\makebox\[9.0cm\]\[b\]{\\hrulefill}\\newline\\noindent\\tiny Dept\. of Physics and Astronomy, MSU\\makebox\[1.5cm\]\[b\]{\\hfill}LON-CAPA\\copyright MSU GNU\/GPL $1/;   $result =~ s/(\\end{document})/\\newline\\noindent\\makebox\[9.0cm\]\[b\]{\\hrulefill}\\newline\\noindent\\tiny Dept\. of Physics and Astronomy, MSU\\makebox\[1.5cm\]\[b\]{\\hfill}LON-CAPA\\copyright MSU GNU\/GPL $1/;
           $result =~ s/(\\end{longtable}\s*)(\\newline\\noindent\\makebox\[9\.0cm\]\[b\]{\\hrulefill})/$2$1/g;
           $result =~ s/(\\end{longtable}\s*)\\newline/$1/g;
     }      }
 #-- LaTeX corrections       #-- LaTeX corrections     
     my $first_comment = index($result,'<!--',0);      my $first_comment = index($result,'<!--',0);
Line 269  ENDPART Line 282  ENDPART
     $result =~ s/\b_+\b/\\makebox\[1 cm\]\[b\]{\\hrulefill}/g;      $result =~ s/\b_+\b/\\makebox\[1 cm\]\[b\]{\\hrulefill}/g;
 #-- writing .tex file in prtspool   #-- writing .tex file in prtspool 
     my $temp_file;      my $temp_file;
     $filename = "/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout_".time."_".rand(10000000).".tex";      my $filename = "/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout_".time."_".rand(10000000).".tex";
     unless ($temp_file = Apache::File->new('>'.$filename)) {      unless ($temp_file = Apache::File->new('>'.$filename)) {
  $r->log_error("Couldn't open $filename for output $!");   $r->log_error("Couldn't open $filename for output $!");
  return SERVER_ERROR;    return SERVER_ERROR; 
Line 294  sub additional_cleanup { Line 307  sub additional_cleanup {
     }      }
     return $result;      return $result;
 }  }
   sub page_cleanup {
       my $result = shift;
       $_ = $result;
       m/\\end{document}(\d*)$/;
       my $number_of_columns = $1;
       my $insert = '{';
       for (my $id=1;$id<=$number_of_columns;$id++) { $insert .='l'; }
       $insert .= '}';
       $result =~ s/(\\begin{longtable})INSERTTHEHEADOFLONGTABLE/$1$insert/g;
       $result =~ s/&\s*REMOVETHEHEADOFLONGTABLE\\\\/\\\\/g;
       $result =~ s/(\\vskip\s*\d+\s*mm)/}\\\\\\parbox{\\minipagewidth}{/g;
       $result =~ s/\\parbox{\\minipagewidth}{}\s*\\\\\s*(\\parbox{\\minipagewidth})/$1/g;
       return $result,$number_of_columns;
   }
   
 sub content_map {  sub content_map {
 #-- find a list of files to print  #-- find a list of files to print

Removed from v.1.31  
changed lines
  Added in v.1.36


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>