version 1.318, 2004/07/28 19:07:16
|
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 = '254 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', |
} elsif ($numberofcolumns == 2) { |
'oddsidemargin'=>'-0.57 in','evensidemargin'=>'-0.57 in', |
$textwidth = '91 mm'; |
|
$textheight = '254 mm'; |
}, |
$oddoffset = '-0.57 in'; |
'exacutive'=>{'width'=>'3.1 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.5 in'; |
}, |
$textheight = '7.7 in'; |
'a3'=>{ |
$oddoffset = '-40 pt'; |
|
$evenoffset = '-60 pt'; |
}, |
} elsif ($numberofcolumns == 2) { |
'a4'=>{'width'=>'91 mm','height'=>'272 mm','topmargin'=>'-0.5 in', |
$textwidth = '3.9 in'; |
'oddsidemargin'=>'-40 pt in','evensidemargin'=>'-60 pt', |
$textheight = '7.7 in'; |
|
$oddoffset = '-40 pt'; |
}, |
$evenoffset = '-60 pt'; |
'a5'=>{ |
} |
|
} |
}, |
# } elsif($papersize eq '5') { |
'a6'=>{ |
# } elsif($papersize eq '4') { |
|
# } elsif($papersize eq '7') { |
}, |
# } elsif($papersize eq '8') { |
|
} |
}, |
return $textwidth,$textheight,$oddoffset,$evenoffset,$topmargin; |
},'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'}; |
} |
} |
|
|
|
|
Line 483 sub page_format_transformation {
|
Line 544 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 1250 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 1298 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 1372 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 1615 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 1967 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 2030 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; |
} |
} |