Diff for /loncom/interface/lonprintout.pm between versions 1.316.2.2 and 1.328

version 1.316.2.2, 2004/09/22 20:49:45 version 1.328, 2004/08/19 20:02:21
Line 373  sub character_chart { Line 373  sub character_chart {
 }  }
   
   
                     #width, height, oddsidemargin, evensidemargin, topmargin
   my %page_formats=
       ('letter' => {
    'book' => {
        '1' => [ '7.1 in','10.2 in', '-0.57 in','-0.57 in','0 in'],
        '2' => ['3.66 in','10.2 in', '-0.57 in','-0.57 in','0 in']
    },
    'album' => {
        '1' => [ '8.8 in', '6.8 in','-40 pt in',  '-60 pt','0 in'],
        '2' => [ '4.4 in', '6.8 in','-0.5 in', '-1.5 in','3.5 in']
    },
        },
        'legal' => {
    'book' => {
        '1' => ['7.1 in','13 in',,'-0.57 in','-0.57 in','-0.5 in'],
        '2' => ['3.16 in','13 in','-0.57 in','-0.57 in','-0.5 in']
    },
    'album' => {
        '1' => [],
        '2' => []
             },
        },
        'tabloid' => {
    'book' => {
        '1' => ['9.8 in','16 in','-0.57 in','-0.57 in','-0.5 in'],
        '2' => ['4.9 in','16 in','-0.57 in','-0.57 in','-0.5 in']
    },
    'album' => {
        '1' => [],
        '2' => []
             },
        },
        'executive' => {
    'book' => {
        '1' => ['6.8 in','9 in','-0.57 in','-0.57 in','1.2 in'],
        '2' => ['3.1 in','9 in','-0.57 in','-0.57 in','1.2 in']
    },
    'album' => {
        '1' => [],
        '2' => []
             },
        },
        'a2' => {
    'book' => {
        '1' => [],
        '2' => []
    },
    'album' => {
        '1' => [],
        '2' => []
             },
        },
        'a3' => {
    'book' => {
        '1' => [],
        '2' => []
    },
    'album' => {
        '1' => [],
        '2' => []
             },
        },
        'a4' => {
    'book' => {
        '1' => ['176 mm','272 mm','-40 pt in','-60 pt','-0.5 in'],
        '2' => [ '91 mm','272 mm','-40 pt in','-60 pt','-0.5 in']
    },
    'album' => {
        '1' => ['8.5 in','7.7 in','-40 pt in','-60 pt','0 in'],
        '2' => ['3.9 in','7.7 in','-40 pt in','-60 pt','0 in']
    },
        },
        'a5' => {
    'book' => {
        '1' => [],
        '2' => []
    },
    'album' => {
        '1' => [],
        '2' => []
             },
        },
        'a6' => {
    'book' => {
        '1' => [],
        '2' => []
    },
    'album' => {
        '1' => [],
        '2' => []
             },
        },
        );
   
 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);      return @{$page_formats{$papersize}->{$layout}->{$numberofcolumns}};
     if ($papersize eq '0') {  
  if ($layout eq 'book') {  
     if ($numberofcolumns == 1) {  
  $textwidth = '7.1 in';      #'18 cm';  
  $textheight = '10.2 in';    #'25.9 cm';  
  $oddoffset = '-0.57 in';  
  $evenoffset = '-0.57 in';  
     } elsif ($numberofcolumns == 2) {  
  $textwidth = '3.66 in';     #'93 mm';  
  $textheight = '10.2 in';    #'25.9 cm';  
  $oddoffset = '-0.57 in';  
  $evenoffset = '-0.57 in';  
     }  
  } elsif ($layout eq 'album') {  
     if ($numberofcolumns eq '1') {  
  $textwidth = '8.8 in';  
  $textheight = '6.8 in';  
  $oddoffset = '-40 pt';  
  $evenoffset = '-60 pt';  
     } elsif ($numberofcolumns == 2) {  
  $textwidth = '4.4 in';  
  $textheight = '6.8 in';  
  $oddoffset = '-0.5 in';  
  $evenoffset = '-1.5 in';  
  $topmargin = '3.5 in';  
     }  
  }  
 #    } elsif($papersize eq '1') {  
 #    } elsif($papersize eq '2') {  
 #    } elsif($papersize eq '3'/) {  
     } elsif($papersize eq '6') {  
  if ($layout eq 'book') {  
     if ($numberofcolumns == 1) {  
  $textwidth = '176 mm';  
  $textheight = '254 mm';  
  $oddoffset = '-0.57 in';  
  $evenoffset = '-0.57 in';  
     } elsif ($numberofcolumns == 2) {  
  $textwidth = '91 mm';  
  $textheight = '254 mm';  
  $oddoffset = '-0.57 in';  
  $evenoffset = '-0.57 in';  
     }  
  } elsif ($layout eq 'album') {  
     if ($numberofcolumns eq '1') {  
  $textwidth = '8.5 in';  
  $textheight = '7.7 in';  
  $oddoffset = '-40 pt';  
  $evenoffset = '-60 pt';  
     } elsif ($numberofcolumns == 2) {  
  $textwidth = '3.9 in';  
  $textheight = '7.7 in';  
  $oddoffset = '-40 pt';  
  $evenoffset = '-60 pt';  
     }  
  }  
 #    } elsif($papersize eq '5') {  
 #    } elsif($papersize eq '4') {  
 #    } elsif($papersize eq '7') {  
 #    } elsif($papersize eq '8') {  
     }  
     return $textwidth,$textheight,$oddoffset,$evenoffset,$topmargin;  
 }  }
   
   
Line 483  sub page_format_transformation { Line 510  sub page_format_transformation {
     my $name = &get_name();      my $name = &get_name();
     my $courseidinfo = &get_course();      my $courseidinfo = &get_course();
     if (defined($courseidinfo)) { $courseidinfo=' - '.$courseidinfo }      if (defined($courseidinfo)) { $courseidinfo=' - '.$courseidinfo }
       my $topmargintoinsert = '';
       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') {
  my $topmargintoinsert = '';      $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} /;
  if ($topmargin ne '0') {$topmargintoinsert='\setlength{\topmargin}{'.$topmargin.'}';}  
     $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} /;  
     } 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\\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\\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 'a4') {
       $text =~ s/(\\begin{document})/$1\\special{papersize=210mm,297mm}/;
  }   }
     }      }
     if ($tableofcontents eq 'yes') {$text=~s/(\\setcounter\{page\}\{1\})/$1 \\tableofcontents\\newpage /;}      if ($tableofcontents eq 'yes') {$text=~s/(\\setcounter\{page\}\{1\})/$1 \\tableofcontents\\newpage /;}
Line 1031  ENDPART Line 1067  ENDPART
  #loop over students   #loop over students
  my $flag_latex_header_remove = 'NO';    my $flag_latex_header_remove = 'NO'; 
  my %moreenv;   my %moreenv;
          $moreenv{'instructor_comments'}='hide';  
  $moreenv{'textwidth'}=&get_textwidth($helper,$LaTeXwidth);   $moreenv{'textwidth'}=&get_textwidth($helper,$LaTeXwidth);
  $moreenv{'print_discussions'}=$helper->{'VARS'}->{'PRINT_DISCUSSIONS'};   $moreenv{'print_discussions'}=$helper->{'VARS'}->{'PRINT_DISCUSSIONS'};
  if ($helper->{'VARS'}->{'PRINT_DISCUSSIONS'} eq 'yes') {$moreenv{'problem_split'}='yes';}   if ($helper->{'VARS'}->{'PRINT_DISCUSSIONS'} eq 'yes') {$moreenv{'problem_split'}='yes';}
  my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r,'Print Status','Class Print Status',$#students+1);   my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r,'Print Status','Class Print Status',$#students+1,'inline','75');
  my $student_counter=-1;   my $student_counter=-1;
  foreach my $person (@students) {   foreach my $person (@students) {
              my $duefile="/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout.due";               my $duefile="/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout.due";
Line 1261  ENDPART Line 1296  ENDPART
                             'cgi.'.$identifier.'backref' => $URLback,);                              'cgi.'.$identifier.'backref' => $URLback,);
     
 $r->print(<<FINALEND);  $r->print(<<FINALEND);
   <br />
 <meta http-equiv="Refresh" content="0; url=/cgi-bin/printout.pl?$identifier" />  <meta http-equiv="Refresh" content="0; url=/cgi-bin/printout.pl?$identifier" />
   <a href="/cgi-bin/printout.pl?$identifier">Continue</a>
 </body>  </body>
 </html>  </html>
 FINALEND  FINALEND
Line 1294  sub print_resources { Line 1331  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 1368  sub print_resources { Line 1407  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 1611  sub printHelper { Line 1650  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 1963  use strict; Line 2002  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 (ledger) [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 2026  STATEHTML Line 2065  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.316.2.2  
changed lines
  Added in v.1.328


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