--- loncom/interface/lonprintout.pm 2004/08/16 17:11:10 1.325 +++ loncom/interface/lonprintout.pm 2004/08/18 18:56:46 1.326 @@ -1,7 +1,7 @@ # The LearningOnline Network # Printout # -# $Id: lonprintout.pm,v 1.325 2004/08/16 17:11:10 sakharuk Exp $ +# $Id: lonprintout.pm,v 1.326 2004/08/18 18:56:46 sakharuk Exp $ # # Copyright Michigan State University Board of Trustees # @@ -375,167 +375,142 @@ sub character_chart { sub page_format { # -#Correspondence between $papersize variable and real paper format: -# 0 - "Letter [8 1/2x11 in]" -# 1 - "Legal [8 1/2x14 in]" -# 2 - "Ledger/Tabloid [11x17 in]" -# 3 - "Executive [7 1/2x10 in]" -# 4 - "A2 [420x594 mm]" -# 5 - "A3 [297x420 mm]" -# 6 - "A4 [210x297 mm]" -# 7 - "A5 [148x210 mm]" -# 8 - "A6 [105x148 mm]" +#Supported paper format: "Letter [8 1/2x11 in]", "Legal [8 1/2x14 in]", +# "Ledger/Tabloid [11x17 in]", "Executive [7 1/2x10 in]", +# "A2 [420x594 mm]", "A3 [297x420 mm]", +# "A4 [210x297 mm]", "A5 [148x210 mm]", +# "A6 [105x148 mm]" # my ($papersize,$layout,$numberofcolumns) = @_; my ($textwidth,$textheight,$oddoffset,$evenoffset,$topmargin) = (0,0,0,0,0); - 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') { - if ($layout eq 'book') { - if ($numberofcolumns == 1) { - $textwidth = '7.1 in'; - $textheight = '13 in'; - $oddoffset = '-0.57 in'; - $evenoffset = '-0.57 in'; - $topmargin = '-0.5 in'; - } elsif ($numberofcolumns == 2) { - $textwidth = '3.66 in'; - $textheight = '13 in'; - $oddoffset = '-0.57 in'; - $evenoffset = '-0.57 in'; - $topmargin = '-0.5 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 '2') { - if ($layout eq 'book') { - if ($numberofcolumns == 1) { - $textwidth = '9.8 in'; - $textheight = '16 in'; - $oddoffset = '-0.57 in'; - $evenoffset = '-0.57 in'; - $topmargin = '-0.5 in'; - } elsif ($numberofcolumns == 2) { - $textwidth = '4.9 in'; - $textheight = '16 in'; - $oddoffset = '-0.57 in'; - $evenoffset = '-0.57 in'; - $topmargin = '-0.5 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 '3') { - if ($layout eq 'book') { - if ($numberofcolumns == 1) { - $textwidth = '6.8 in'; - $textheight = '9 in'; - $oddoffset = '-0.57 in'; - $evenoffset = '-0.57 in'; - $topmargin = '1.2 in'; - } elsif ($numberofcolumns == 2) { - $textwidth = '3.1 in'; - $textheight = '9 in'; - $oddoffset = '-0.57 in'; - $evenoffset = '-0.57 in'; - $topmargin = '1.2 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 '6') { - if ($layout eq 'book') { - if ($numberofcolumns == 1) { - $textwidth = '176 mm'; - $textheight = '272 mm'; - $oddoffset = '-0.57 in'; - $evenoffset = '-0.57 in'; - $topmargin = '-0.5 in'; - } elsif ($numberofcolumns == 2) { - $textwidth = '91 mm'; - $textheight = '272 mm'; - $oddoffset = '-0.57 in'; - $evenoffset = '-0.57 in'; - $topmargin = '-0.5 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 '4') { -# } elsif($papersize eq '5') { -# } elsif($papersize eq '7') { -# } elsif($papersize eq '8') { - } - return $textwidth,$textheight,$oddoffset,$evenoffset,$topmargin; + my $page_formats={'book'=>{ + '1'=>{'letter'=>{'width'=>'7.1 in','height'=>'10.2 in','topmargin'=>'0 in', + 'oddsidemargin'=>'-0.57 in','evensidemargin'=>'-0.57 in', + }, + 'legal'=>{'width'=>'7.1 in','height'=>'13 in','topmargin'=>'-0.5 in', + 'oddsidemargin'=>'-0.57 in','evensidemargin'=>'-0.57 in', + }, + 'tabloid'=>{'width'=>'9.8 in','height'=>'16 in','topmargin'=>'-0.5 in', + 'oddsidemargin'=>'-0.57 in','evensidemargin'=>'-0.57 in', + }, + 'exacutive'=>{'width'=>'6.8 in','height'=>'9 in','topmargin'=>'1.2 in', + 'oddsidemargin'=>'-0.57 in','evensidemargin'=>'-0.57 in', + }, + 'a2'=>{ + + }, + 'a3'=>{ + + }, + 'a4'=>{'width'=>'176 mm','height'=>'272 mm','topmargin'=>'-0.5 in', + 'oddsidemargin'=>'-40 pt in','evensidemargin'=>'-60 pt', + + }, + 'a5'=>{ + + }, + 'a6'=>{ + + }, + }, + '2'=>{'letter'=>{'width'=>'3.66 in','height'=>'10.2 in','topmargin'=>'0 in', + 'oddsidemargin'=>'-0.57 in','evensidemargin'=>'-0.57 in', + }, + 'legal'=>{'width'=>'3.16 in','height'=>'13 in','topmargin'=>'-0.5 in', + 'oddsidemargin'=>'-0.57 in','evensidemargin'=>'-0.57 in', + }, + 'tabloid'=>{'width'=>'4.9 in','height'=>'16 in','topmargin'=>'-0.5 in', + 'oddsidemargin'=>'-0.57 in','evensidemargin'=>'-0.57 in', + + }, + 'exacutive'=>{'width'=>'3.1 in','height'=>'9 in','topmargin'=>'1.2 in', + 'oddsidemargin'=>'-0.57 in','evensidemargin'=>'-0.57 in', + }, + 'a2'=>{ + + }, + 'a3'=>{ + + }, + 'a4'=>{'width'=>'91 mm','height'=>'272 mm','topmargin'=>'-0.5 in', + 'oddsidemargin'=>'-40 pt in','evensidemargin'=>'-60 pt', + + }, + 'a5'=>{ + + }, + 'a6'=>{ + + }, + + }, + },'album'=>{ + '1'=>{'letter'=>{'width'=>'8.8 in','height'=>'6.8 in','topmargin'=>'0 in', + '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'}; } @@ -585,7 +560,7 @@ sub page_format_transformation { } 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 /; } - if ($papersize eq '6') { + if ($papersize eq 'a4') { $text =~ s/(\\begin{document})/$1\\special{papersize=210mm,297mm}/; } } @@ -1345,6 +1320,9 @@ 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, 'cgi.'.$identifier.'.layout' => $laystyle, 'cgi.'.$identifier.'.numcol' => $numberofcolumns, @@ -1712,7 +1690,7 @@ sub printHelper { HELPERFRAGMENT - &Apache::lonxml::xmlparse($r, 'helper', $helperFragment); + &Apache::lonxml::xmlparse($r, 'helper', $helperFragment); } # If the user is priviledged, allow them to print all @@ -2064,10 +2042,10 @@ use strict; use Apache::lonlocal; my $maxColumns = 2; -my @paperSize = ("Letter [8 1/2x11 in]", "Legal [8 1/2x14 in]", - "Ledger/Tabloid [11x17 in]", "Executive [7 1/2x10 in]", - "A2 [420x594 mm]", "A3 [297x420 mm]", "A4 [210x297 mm]", - "A5 [148x210 mm]", "A6 [105x148 mm]" ); +my @paperSize = ("letter [8 1/2x11 in]", "legal [8 1/2x14 in]", + "tabloid (ladger) [11x17 in]", "executive [7 1/2x10 in]", + "a2 [420x594 mm]", "a3 [297x420 mm]", "a4 [210x297 mm]", + "a5 [148x210 mm]", "a6 [105x148 mm]" ); # Tentative format: Orientation (L = Landscape, P = portrait) | Colnum | # Paper type @@ -2127,14 +2105,15 @@ STATEHTML if ($DefaultPaperSize eq '') {$DefaultPaperSize='letter';} $i = 0; foreach (@paperSize) { + $_=~/(\w+)/; + my $papersize=$1; if ($paperSize[$i]=~/$DefaultPaperSize/) { - $result .= "\n"; + $result .= "\n"; } else { - $result .= "\n"; + $result .= "\n"; } $i++; } - $result .= ""; return $result; }