Diff for /loncom/interface/lonprintout.pm between versions 1.319 and 1.326

version 1.319, 2004/08/04 18:18:40 version 1.326, 2004/08/18 18:56:46
Line 375  sub character_chart { Line 375  sub character_chart {
   
 sub page_format {  sub page_format {
 #  #
 #Correspondence between $papersize variable and real paper format:  #Supported paper format: "Letter [8 1/2x11 in]",      "Legal [8 1/2x14 in]",
 # 0 - "Letter [8 1/2x11 in]"  #                        "Ledger/Tabloid [11x17 in]", "Executive [7 1/2x10 in]",
 # 1 - "Legal [8 1/2x14 in]"  #                        "A2 [420x594 mm]",           "A3 [297x420 mm]",
 # 2 - "Ledger/Tabloid [11x17 in]"  #                        "A4 [210x297 mm]",           "A5 [148x210 mm]",
 # 3 - "Executive [7 1/2x10 in]"  #                        "A6 [105x148 mm]"
 # 4 - "A2 [420x594 mm]"  
 # 5 - "A3 [297x420 mm]"  
 # 6 - "A4 [210x297 mm]"  
 # 7 - "A5 [148x210 mm]"  
 # 8 - "A6 [105x148 mm]"  
 #   # 
     my ($papersize,$layout,$numberofcolumns) = @_;       my ($papersize,$layout,$numberofcolumns) = @_; 
     my ($textwidth,$textheight,$oddoffset,$evenoffset,$topmargin) = (0,0,0,0,0);      my ($textwidth,$textheight,$oddoffset,$evenoffset,$topmargin) = (0,0,0,0,0);
     if ($papersize eq '0') {      my $page_formats={'book'=>{
  if ($layout eq 'book') {   '1'=>{'letter'=>{'width'=>'7.1 in','height'=>'10.2 in','topmargin'=>'0 in',
     if ($numberofcolumns == 1) {                'oddsidemargin'=>'-0.57 in','evensidemargin'=>'-0.57 in',
  $textwidth = '7.1 in';      #'18 cm';        },
  $textheight = '10.2 in';    #'25.9 cm';        'legal'=>{'width'=>'7.1 in','height'=>'13 in','topmargin'=>'-0.5 in',
  $oddoffset = '-0.57 in';                'oddsidemargin'=>'-0.57 in','evensidemargin'=>'-0.57 in',
  $evenoffset = '-0.57 in';        },
     } elsif ($numberofcolumns == 2) {        'tabloid'=>{'width'=>'9.8 in','height'=>'16 in','topmargin'=>'-0.5 in',
  $textwidth = '3.66 in';     #'93 mm';                'oddsidemargin'=>'-0.57 in','evensidemargin'=>'-0.57 in',
  $textheight = '10.2 in';    #'25.9 cm';        },
  $oddoffset = '-0.57 in';        'exacutive'=>{'width'=>'6.8 in','height'=>'9 in','topmargin'=>'1.2 in',
  $evenoffset = '-0.57 in';                'oddsidemargin'=>'-0.57 in','evensidemargin'=>'-0.57 in',  
     }        },
  } elsif ($layout eq 'album') {        'a2'=>{
     if ($numberofcolumns eq '1') {    
  $textwidth = '8.8 in';        },
  $textheight = '6.8 in';        'a3'=>{
  $oddoffset = '-40 pt';    
  $evenoffset = '-60 pt';        },
     } elsif ($numberofcolumns == 2) {        'a4'=>{'width'=>'176 mm','height'=>'272 mm','topmargin'=>'-0.5 in',
  $textwidth = '4.4 in';                'oddsidemargin'=>'-40 pt in','evensidemargin'=>'-60 pt',
  $textheight = '6.8 in';    
  $oddoffset = '-0.5 in';        },
  $evenoffset = '-1.5 in';        'a5'=>{
  $topmargin = '3.5 in';    
     }        },
  }        'a6'=>{
 #    } elsif($papersize eq '1') {    
 #    } elsif($papersize eq '2') {        },
 #    } elsif($papersize eq '3'/) {    },
     } elsif($papersize eq '6') {          '2'=>{'letter'=>{'width'=>'3.66 in','height'=>'10.2 in','topmargin'=>'0 in',
  if ($layout eq 'book') {                'oddsidemargin'=>'-0.57 in','evensidemargin'=>'-0.57 in',
     if ($numberofcolumns == 1) {        },
  $textwidth = '176 mm';        'legal'=>{'width'=>'3.16 in','height'=>'13 in','topmargin'=>'-0.5 in',
  $textheight = '272 mm';                'oddsidemargin'=>'-0.57 in','evensidemargin'=>'-0.57 in',  
  $oddoffset = '-0.57 in';        },
  $evenoffset = '-0.57 in';        'tabloid'=>{'width'=>'4.9 in','height'=>'16 in','topmargin'=>'-0.5 in',
  $topmargin = '-0.5 in';                'oddsidemargin'=>'-0.57 in','evensidemargin'=>'-0.57 in',
     } elsif ($numberofcolumns == 2) {  
  $textwidth = '91 mm';        },
  $textheight = '272 mm';        'exacutive'=>{'width'=>'3.1 in','height'=>'9 in','topmargin'=>'1.2 in',
  $oddoffset = '-0.57 in';                'oddsidemargin'=>'-0.57 in','evensidemargin'=>'-0.57 in',  
  $evenoffset = '-0.57 in';        },
  $topmargin = '-0.5 in';        'a2'=>{
     }    
  } elsif ($layout eq 'album') {        },
     if ($numberofcolumns eq '1') {        'a3'=>{
  $textwidth = '8.5 in';    
  $textheight = '7.7 in';        },
  $oddoffset = '-40 pt';        'a4'=>{'width'=>'91 mm','height'=>'272 mm','topmargin'=>'-0.5 in',
  $evenoffset = '-60 pt';                'oddsidemargin'=>'-40 pt in','evensidemargin'=>'-60 pt',
     } elsif ($numberofcolumns == 2) {    
  $textwidth = '3.9 in';        },
  $textheight = '7.7 in';        'a5'=>{
  $oddoffset = '-40 pt';    
  $evenoffset = '-60 pt';        },
     }        'a6'=>{
  }    
 #    } elsif($papersize eq '5') {        },
 #    } elsif($papersize eq '4') {  
 #    } elsif($papersize eq '7') {   },
 #    } elsif($papersize eq '8') {      },'album'=>{
     }   '1'=>{'letter'=>{'width'=>'8.8 in','height'=>'6.8 in','topmargin'=>'0 in',
     return $textwidth,$textheight,$oddoffset,$evenoffset,$topmargin;                'oddsidemargin'=>'-40 pt in','evensidemargin'=>'-60 pt',
         },
         'legal'=>{
     
         },
         'tabloid'=>{
   
         },
         'exacutive'=>{
     
         },
         'a2'=>{
     
         },
         'a3'=>{
     
         },
         'a4'=>{'width'=>'8.5 in','height'=>'7.7 in','topmargin'=>'0 in',
                 'oddsidemargin'=>'-40 pt in','evensidemargin'=>'-60 pt',
     
         },
         'a5'=>{
     
         },
         'a6'=>{
     
         },
     },
           '2'=>{'letter'=>{'width'=>'4.4 in','height'=>'6.8 in','topmargin'=>'3.5 in',
                 'oddsidemargin'=>'-0.5 in','evensidemargin'=>'-1.5 in',
         },
         'legal'=>{
     
         },
         'tabloid'=>{
   
         },
         'exacutive'=>{
     
         },
         'a2'=>{
     
         },
         'a3'=>{
     
         },
         'a4'=>{'width'=>'3.9 in','height'=>'7.7 in','topmargin'=>'0 in',
                 'oddsidemargin'=>'-40 pt in','evensidemargin'=>'-60 pt',
     
         },
         'a5'=>{
     
         },
         'a6'=>{
     
         },
   
        },
      },
       };    
       return $page_formats->{$layout}->{$numberofcolumns}->{$papersize}->{'width'},
              $page_formats->{$layout}->{$numberofcolumns}->{$papersize}->{'height'},
              $page_formats->{$layout}->{$numberofcolumns}->{$papersize}->{'oddmargin'},
              $page_formats->{$layout}->{$numberofcolumns}->{$papersize}->{'evensidemargin'},
              $page_formats->{$layout}->{$numberofcolumns}->{$papersize}->{'topmargin'};
 }  }
   
   
Line 487  sub page_format_transformation { Line 546  sub page_format_transformation {
     if (defined($courseidinfo)) { $courseidinfo=' - '.$courseidinfo }      if (defined($courseidinfo)) { $courseidinfo=' - '.$courseidinfo }
     my $topmargintoinsert = '';      my $topmargintoinsert = '';
     if ($topmargin ne '0') {$topmargintoinsert='\setlength{\topmargin}{'.$topmargin.'}';}      if ($topmargin ne '0') {$topmargintoinsert='\setlength{\topmargin}{'.$topmargin.'}';}
       my $fancypagestatement='';
       if ($numberofcolumns eq '2') {
    $fancypagestatement="\\fancyhead{}\\fancyhead[LO]{\\textbf{$name} $courseidinfo \\hfill \\thepage \\\\ \\textit{$assignment}}";
       } else {
    $fancypagestatement="\\rhead{}\\chead{}\\lhead{\\textbf{$name} $courseidinfo \\hfill \\thepage \\\\ \\textit{$assignment}}";
       }
     if ($layout eq 'album') {      if ($layout eq 'album') {
     $text =~ s/\\begin{document}/\\setlength{\\oddsidemargin}{$oddoffset}\\setlength{\\evensidemargin}{$evenoffset}$topmargintoinsert\\setlength{\\textwidth}{$textwidth}\\setlength{\\textheight}{$textheight}\\setlength{\\textfloatsep}{8pt plus 2\.0pt minus 4\.0pt}\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\usepackage{fancyhdr}\\pagestyle{fancy}\\rhead{}\\chead{}\\lhead{\\textbf{$name} $courseidinfo \\hfill \\thepage \\\\ \\textit{$assignment}} \\begin{document}\\voffset=-0\.8 cm\\setcounter{page}{1} /;      $text =~ s/\\begin{document}/\\setlength{\\oddsidemargin}{$oddoffset}\\setlength{\\evensidemargin}{$evenoffset}$topmargintoinsert\\setlength{\\textwidth}{$textwidth}\\setlength{\\textheight}{$textheight}\\setlength{\\textfloatsep}{8pt plus 2\.0pt minus 4\.0pt}\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\usepackage{fancyhdr}\\pagestyle{fancy}$fancypagestatement\\begin{document}\\voffset=-0\.8 cm\\setcounter{page}{1} /;
     } elsif ($layout eq 'book') {      } elsif ($layout eq 'book') {
   
  if ($choice ne 'All class print') {    if ($choice ne 'All class print') { 
     $text =~ s/\\begin{document}/\\textheight $textheight\\oddsidemargin = $evenoffset\\evensidemargin = $evenoffset $topmargintoinsert\\textwidth= $textwidth\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\usepackage{fancyhdr}\\pagestyle{fancy}\\rhead{}\\chead{}\\lhead{\\textbf{$name} $courseidinfo \\hfill \\thepage \\\\ \\textit{$assignment}}\\begin{document}\\voffset=-0\.8 cm\\setcounter{page}{1}/;      $text =~ s/\\begin{document}/\\textheight $textheight\\oddsidemargin = $evenoffset\\evensidemargin = $evenoffset $topmargintoinsert\\textwidth= $textwidth\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\usepackage{fancyhdr}\\pagestyle{fancy}$fancypagestatement\\begin{document}\\voffset=-0\.8 cm\\setcounter{page}{1}/;
  } else {   } else {
     $text =~ s/\\pagestyle{fancy}\\rhead{}\\chead{}\s*\\begin{document}/\\textheight = $textheight\\oddsidemargin = $evenoffset\\evensidemargin = $evenoffset $topmargintoinsert\\textwidth= $textwidth\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\pagestyle{fancy}\\rhead{}\\chead{}\\begin{document}\\voffset=-0\.8cm\\setcounter{page}{1}  \\vskip 5 mm /;      $text =~ s/\\pagestyle{fancy}\\rhead{}\\chead{}\s*\\begin{document}/\\textheight = $textheight\\oddsidemargin = $evenoffset\\evensidemargin = $evenoffset $topmargintoinsert\\textwidth= $textwidth\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\pagestyle{fancy}\\rhead{}\\chead{}\\begin{document}\\voffset=-0\.8cm\\setcounter{page}{1}  \\vskip 5 mm /;
  }   }
  if ($papersize eq '6') {   if ($papersize eq 'a4') {
     $text =~ s/(\\begin{document})/$1\\special{papersize=210mm,297mm}/;      $text =~ s/(\\begin{document})/$1\\special{papersize=210mm,297mm}/;
  }   }
     }      }
Line 1256  ENDPART Line 1320  ENDPART
  }   }
     }      }
   
       &Apache::lonnet::logthis("SSSSSSS: $filename,$laystyle,$papersize,$numberofcolumns,$selectionmade,$helper->{'VARS'}->{'TABLE_CONTENTS'},$helper->{'VARS'}->{'TABLE_INDEX'},$ENV{'request.role.adv'},$#print_array,$student_names,$URLback");
   
   
     &Apache::lonnet::appenv('cgi.'.$identifier.'.file'   => $filename,      &Apache::lonnet::appenv('cgi.'.$identifier.'.file'   => $filename,
                             'cgi.'.$identifier.'.layout'  => $laystyle,                              'cgi.'.$identifier.'.layout'  => $laystyle,
                             'cgi.'.$identifier.'.numcol'  => $numberofcolumns,                              'cgi.'.$identifier.'.numcol'  => $numberofcolumns,
Line 1304  sub print_resources { Line 1371  sub print_resources {
     my $current_output = '';       my $current_output = ''; 
     my ($username,$userdomain,$usersection) = split /:/,$person;      my ($username,$userdomain,$usersection) = split /:/,$person;
     my $fullname = &get_name($username,$userdomain);      my $fullname = &get_name($username,$userdomain);
       my $namepostfix;
     if ($person =~ 'anon') {      if ($person =~ 'anon') {
    $namepostfix="\\\\Name: ";
  $fullname = "CODE - ".$moreenv->{'CODE'};   $fullname = "CODE - ".$moreenv->{'CODE'};
     }      }
     #goes through all resources, checks if they are available for       #goes through all resources, checks if they are available for 
Line 1378  sub print_resources { Line 1447  sub print_resources {
     if ($usersection ne '') {$courseidinfo.=' - Sec. '.$usersection}      if ($usersection ne '') {$courseidinfo.=' - Sec. '.$usersection}
     my $currentassignment=&Apache::lonxml::latex_special_symbols($helper->{VARS}->{'assignment'},'header');      my $currentassignment=&Apache::lonxml::latex_special_symbols($helper->{VARS}->{'assignment'},'header');
     if ($current_output=~/\\documentclass/) {      if ($current_output=~/\\documentclass/) {
  $current_output =~ s/\\begin{document}/\\setlength{\\topmargin}{1cm} \\begin{document}\\noindent\\lhead{\\textit{\\textbf{$fullname}}$courseidinfo \\hfill \\thepage \\\\ \\textit{$currentassignment}}\\vskip 3 mm /;   $current_output =~ s/\\begin{document}/\\setlength{\\topmargin}{1cm} \\begin{document}\\noindent\\lhead{\\textit{\\textbf{$fullname}}$courseidinfo \\hfill \\thepage \\\\ \\textit{$currentassignment}$namepostfix}\\vskip 3 mm /;
     } else {      } else {
  my $blankpages = '';   my $blankpages = '';
  for (my $j=0;$j<$helper->{'VARS'}->{'EMPTY_PAGES'};$j++) {$blankpages.='\clearpage\strut\clearpage';}   for (my $j=0;$j<$helper->{'VARS'}->{'EMPTY_PAGES'};$j++) {$blankpages.='\clearpage\strut\clearpage';}
  $current_output = '\strut\vspace*{-6 mm}\\newline\\noindent\\makebox[\\textwidth/$number_of_columns][b]{\\hrulefill}\vspace*{-2 mm}\\newline\\noindent{\\tiny Printed from LON-CAPA\\copyright MSU{\\hfill} Licensed under GNU General Public License }\\newpage '.$blankpages.'\setcounter{page}{1}\noindent\parbox{\minipagewidth}{\noindent\\lhead{\\textit{\\textbf{'.$fullname.'}}'.$courseidinfo.' \\hfill \\thepage \\\\ \\textit{'.$currentassignment.'}}} \vskip -5 mm '.$current_output;   $current_output = '\strut\vspace*{-6 mm}\\newline\\noindent\\makebox[\\textwidth/$number_of_columns][b]{\\hrulefill}\vspace*{-2 mm}\\newline\\noindent{\\tiny Printed from LON-CAPA\\copyright MSU{\\hfill} Licensed under GNU General Public License }\\newpage '.$blankpages.'\setcounter{page}{1}\noindent\parbox{\minipagewidth}{\noindent\\lhead{\\textit{\\textbf{'.$fullname.'}}'.$courseidinfo.' \\hfill \\thepage \\\\ \\textit{'.$currentassignment.'}'.$namepostfix.'}} \vskip -5 mm '.$current_output;
     }      }
     return ($current_output,$fullname);      return ($current_output,$fullname);
   
Line 1621  sub printHelper { Line 1690  sub printHelper {
     </state>      </state>
 HELPERFRAGMENT  HELPERFRAGMENT
   
         &Apache::lonxml::xmlparse($r, 'helper', $helperFragment);    &Apache::lonxml::xmlparse($r, 'helper', $helperFragment);
     }      }
   
     # If the user is priviledged, allow them to print all       # If the user is priviledged, allow them to print all 
Line 1973  use strict; Line 2042  use strict;
 use Apache::lonlocal;  use Apache::lonlocal;
   
 my $maxColumns = 2;  my $maxColumns = 2;
 my @paperSize = ("Letter [8 1/2x11 in]", "Legal [8 1/2x14 in]",   my @paperSize = ("letter [8 1/2x11 in]", "legal [8 1/2x14 in]", 
                  "Ledger/Tabloid [11x17 in]", "Executive [7 1/2x10 in]",                   "tabloid (ladger) [11x17 in]", "executive [7 1/2x10 in]",
                  "A2 [420x594 mm]", "A3 [297x420 mm]", "A4 [210x297 mm]",                    "a2 [420x594 mm]", "a3 [297x420 mm]", "a4 [210x297 mm]", 
                  "A5 [148x210 mm]", "A6 [105x148 mm]" );                   "a5 [148x210 mm]", "a6 [105x148 mm]" );
   
 # Tentative format: Orientation (L = Landscape, P = portrait) | Colnum |  # Tentative format: Orientation (L = Landscape, P = portrait) | Colnum |
 #                   Paper type  #                   Paper type
Line 2036  STATEHTML Line 2105  STATEHTML
     if ($DefaultPaperSize eq '') {$DefaultPaperSize='letter';}      if ($DefaultPaperSize eq '') {$DefaultPaperSize='letter';}
     $i = 0;      $i = 0;
     foreach (@paperSize) {      foreach (@paperSize) {
    $_=~/(\w+)/;
    my $papersize=$1;
         if ($paperSize[$i]=~/$DefaultPaperSize/) {          if ($paperSize[$i]=~/$DefaultPaperSize/) {
             $result .= "<option selected value='$i'>" . $paperSize[$i] . "</option>\n";              $result .= "<option selected value='$papersize'>" . $paperSize[$i] . "</option>\n";
         } else {          } else {
             $result .= "<option value='$i'>" . $paperSize[$i] . "</option>\n";              $result .= "<option value='$papersize'>" . $paperSize[$i] . "</option>\n";
         }          }
         $i++;          $i++;
     }      }
   
     $result .= "</select></td></tr></table>";      $result .= "</select></td></tr></table>";
     return $result;      return $result;
 }  }

Removed from v.1.319  
changed lines
  Added in v.1.326


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