[LON-CAPA-cvs] cvs: loncom /interface lonprintout.pm

foxr foxr@source.lon-capa.org
Mon, 22 Jun 2009 09:50:39 -0000


foxr		Mon Jun 22 09:50:39 2009 EDT

  Modified files:              
    /loncom/interface	lonprintout.pm 
  Log:
  BZ 3871 - Allow global font-size selection.
  
  
Index: loncom/interface/lonprintout.pm
diff -u loncom/interface/lonprintout.pm:1.555 loncom/interface/lonprintout.pm:1.556
--- loncom/interface/lonprintout.pm:1.555	Wed Jun 17 15:27:14 2009
+++ loncom/interface/lonprintout.pm	Mon Jun 22 09:50:39 2009
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Printout
 #
-# $Id: lonprintout.pm,v 1.555 2009/06/17 15:27:14 bisitz Exp $
+# $Id: lonprintout.pm,v 1.556 2009/06/22 09:50:39 foxr Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -70,6 +70,10 @@
 my $ssi_retry_count = 5;	# Some arbitrary value.
 
 
+#  Font size:
+
+my $font_size = 'normalsize';	# Default is normalsize...
+
 
 # Fetch the contents of a resource, uninterpreted.
 # This is used here to fetch a latex file to be included
@@ -114,6 +118,24 @@
     return $result;
 }
 
+#
+#   Set a global document font size:
+#   This is done by replacing \begin{document}
+#   with \begin{document}{\some-font-directive
+#   and \end{document} with
+#   }\end{document
+#
+sub set_font_size {
+
+    my ($text) = @_;
+
+    $text =~ s/\\begin{document}/\\begin{document}{\\$font_size/;
+    $text =~ s/\\end{document}/}\\end{document}/;
+    return $text;
+
+
+}
+
 # include_pdf - PDF files are included into the 
 # output as follows:
 #  - The PDF, if necessary, is replicated.
@@ -1497,6 +1519,7 @@
     my %parmhash = %$rparmhash;
     $ssi_error = 0;		# This will be set nonzero by failing ssi's.
     $resources_printed = '';
+    $font_size = $helper->{'VARS'}->{'fontsize'};
     my $do_postprocessing = 1;
     my $js = <<ENDPART;
 <script type="text/javascript">
@@ -2222,6 +2245,11 @@
 	    $URLback=~s|^/~|/priv/|;
 	}
     }
+    #
+    # Final adjustment of the font size:
+    #
+
+    $result = set_font_size($result);
 
 #-- writing .tex file in prtspool 
     my $temp_file;
@@ -3233,9 +3261,6 @@
 	&addMessage('<br />'
                    .'<h3>'.&mt('Print Options').'</h3>'
                    .&Apache::lonhtmlcommon::start_pick_box()
-#                  .&Apache::lonhtmlcommon::row_headline()
-#                  .'<h3>'.&mt('Print Options').'</h3>'
-#                  .&Apache::lonhtmlcommon::row_closure()
                    .&Apache::lonhtmlcommon::row_title(
                        '<label for="ANSWER_TYPE_forminput">'
                       .&mt('Print Answers')
@@ -3253,6 +3278,34 @@
         Apache::lonhelper::dropdown->new();
 	&addMessage(&Apache::lonhtmlcommon::row_closure());
 	$startedTable = 1;
+
+#
+#  Select font size.
+#
+
+            $helper->declareVar('fontsize');
+            &addMessage(&Apache::lonhtmlcommon::row_title(&mt('Font Size')));
+            my $xmlfrag = << "FONT_SELECTION";
+
+          
+            <dropdown variable='fontsize' multichoice='0', allowempty='0'>
+            <defaultvalue>
+		  return 'normalsize';
+            </defaultvalue>
+            <choice computer='tiny'>Tiny</choice>
+            <choice computer='sub/superscriptsize'>Script Size</choice>
+            <choice computer='footnotesize'>Footnote Size</choice>
+            <choice computer='small'>Small</choice>
+            <choice computer='normalsize'>Normal (default)</choice>
+            <choice computer='large'>larger than normal</choice>
+            <choice computer='Large'>Even larger than normal</choice>
+            <choice computer='LARGE'>Still larger than normal</choice>
+            <choice computer='huge'>huge font size</choice>
+            <choice computer='Huge'>Largest possible size</choice>
+            </dropdown>
+FONT_SELECTION
+            &Apache::lonxml::xmlparse($r, 'helper', $xmlfrag);
+            &addMessage(&Apache::lonhtmlcommon::row_closure(1));
     }
 
     if ($perm{'pav'}) {
@@ -3418,9 +3471,10 @@
 		</dropdown>
 PROBTYPE
             &Apache::lonxml::xmlparse($r, 'helper', $xmlfrag);
-	    
             &addMessage(&Apache::lonhtmlcommon::row_closure(1));
 
+
+
         }
     }
 
@@ -3530,6 +3584,8 @@
     my $pdfFormLabel=&mt('PDF-Formfields');
     my $with=&mt('with Formfields');
     my $without=&mt('without Formfields');
+    
+
     $result.='<h3>'.&mt('Layout Options').'</h3>'
             .&Apache::loncommon::start_data_table()
             .&Apache::loncommon::start_data_table_header_row()