--- loncom/interface/printout.pl 2011/04/26 10:47:25 1.148
+++ loncom/interface/printout.pl 2011/12/21 21:25:40 1.151
@@ -1,7 +1,7 @@
#!/usr/bin/perl
# CGI-script to run LaTeX, dvips, ps2ps, ps2pdf etc.
#
-# $Id: printout.pl,v 1.148 2011/04/26 10:47:25 foxr Exp $
+# $Id: printout.pl,v 1.151 2011/12/21 21:25:40 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -44,7 +44,7 @@ use LONCAPA::Configuration;
use strict;
my $busy_wait_timeout = 30;
-
+my $pdfs_converted = 0; # non zero if PDF includes (need to fixps).
my $debugging = 0;
@@ -237,7 +237,7 @@ if (-e $figfile) {
close $temporary_file;
my $noteps;
my %prog_state;
- if ($advanced_role) { %prog_state=&Apache::lonhtmlcommon::Create_PrgWin('','Converting Images to EPS','Picture Conversion Status',$#content_of_file,'inline','80'); }
+ if ($advanced_role) { %prog_state=&Apache::lonhtmlcommon::Create_PrgWin('',$#content_of_file); }
print('
');
foreach my $not_eps (@content_of_file) {
chomp($not_eps);
@@ -283,7 +283,7 @@ my $ind=-1;
my %prog_state;
if ($advanced_role) {
- %prog_state=&Apache::lonhtmlcommon::Create_PrgWin('','Print Status',&mt('Class Print Status'),$number_of_files,'inline','80');
+ %prog_state=&Apache::lonhtmlcommon::Create_PrgWin('',$number_of_files);
}
print "
";
my $num_files = @texfile; # How does this differ from $number_of_files , can that be 0?
@@ -372,7 +372,7 @@ foreach $texfile (@texfile) {
print "
";
if ($advanced_role) {
- &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state,'Creating PDF for '.$status_statement);
+ &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state,&mt('Creating PDF for: [_1]',$status_statement));
}
if (-e $texfile) { # Ensure the tex file exists:
@@ -490,15 +490,18 @@ foreach $texfile (@texfile) {
# The code below uses gs to make pdf includes in sequences work
# Use gs to fix the postscript -> level 1.5
+ # .. if pdfs were included
- $comma = "gs -sDEVICE=pswrite -dLanguageLevel=1.5 ";
- &busy_wait_command("$comma -o $tempo_file $new_name_file 2>/dev/null 1>/dev/null",
- "for $status_statement now validating PS",
- \%prog_state, $tempo_file);
-
+ if ($pdfs_converted > 0) {
+ $comma = "gs -sDEVICE=pswrite -dLanguageLevel=1.5 ";
+ &busy_wait_command("$comma -o $tempo_file $new_name_file 2>/dev/null 1>/dev/null",
+ "for $status_statement now validating PS",
+ \%prog_state, $tempo_file);
+
#---
- &busy_wait_command("mv $tempo_file $new_name_file",
- 'File move', \%prog_state, $new_name_file);
+ &busy_wait_command("mv $tempo_file $new_name_file",
+ 'File move', \%prog_state, $new_name_file);
+ }
if ($laystyle eq 'album' and $numberofcolumns eq '2') {
$comma = "psnup $papera -2 -s1.0 $new_name_file";
&debug("PSNUP command: $comma");
@@ -626,8 +629,7 @@ sub busy_wait_command {
}
}
if ($advanced_role) {
- &Apache::lonhtmlcommon::Update_PrgWin('',$progress_win,
- $message.$extra_msg);
+ &Apache::lonhtmlcommon::Update_PrgWin('',$progress_win,$message.$extra_msg);
}
}
$SIG{CHLD}='IGNORE';
@@ -724,8 +726,7 @@ sub repaginate {
my @pages_in_student; # For each student his/her initial page count.
my $max_pages = 0; # Pages in 'longest' student.
my $page_number = 0;
- &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state,
- &mt("Counting pages for student: [_1]",1));
+ &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state,&mt("Counting pages for student: [_1]",1));
while ($line = ) {
@@ -753,8 +754,7 @@ sub repaginate {
# - save the page_number, reset and, if necessary
# update max_pages.
push(@pages_in_student, $page_number);
- &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state,
- &mt("Counting pages for student: [_1]", scalar(@pages_in_student)));
+ &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state,&mt("Counting pages for student: [_1]", scalar(@pages_in_student)));
if ($page_number > $max_pages) {
$max_pages = $page_number;
}
@@ -766,8 +766,7 @@ sub repaginate {
}
# file ended so one more student
push(@pages_in_student, $page_number);
- &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state,
- &mt("Counting pages for student: [_1]",scalar(@pages_in_student)));
+ &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state,&mt("Counting pages for student: [_1]",scalar(@pages_in_student)));
if ($page_number > $max_pages) {
$max_pages = $page_number;
}
@@ -794,8 +793,7 @@ sub repaginate {
my $student_number = 0; # Index of student we're working on.
- &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state,
- "Repaginating student ".$student_number+1);
+ &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state,&mt("Repaginating student: [_1]",$student_number+1));
while (my $line = ) {
if ($line eq "\\special{ps:ENDOFSTUDENTSTAMP}\n") {
@@ -812,8 +810,7 @@ sub repaginate {
}
$student_number++;
- &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state,
- "Repaginating student ".$student_number+1);
+ &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state,&mt("Repaginating student: [_1]",$student_number+1));
} else {
print LATEXOUT $line;
@@ -894,8 +891,8 @@ sub convert_figure {
my $status_statement='EPS picture for '.$not_eps;
my $eps_f = $not_eps;
- if ($eps_f=~/\/home\/([^\/]+)\/public_html\//) {
- $eps_f=~s/\/home\/([^\/]+)\/public_html/$1/;
+ if ($eps_f=~/\/home\/httpd\/html\/priv\/[^\/]+\/([^\/]+)\//) {
+ $eps_f=~s/\/home\/httpd\/html\/priv\/[^\/]+\/([^\/]+)/$1/;
} elsif ($eps_f=~/$perlvar{'lonDocRoot'}\/res\//) {
$eps_f=~ s/$perlvar{'lonDocRoot'}\/res\/(.+)/$1/;
} elsif ($eps_f=~/$perlvar{'lonUsersDir'}\//) {
@@ -928,10 +925,8 @@ sub convert_figure {
$not_eps =~ s/ /\\ /g;
my $prettyname=$not_eps;
if ($advanced_role) {
- $prettyname=~s|/home/([^/]+)/public_html|/priv/$1|;
$prettyname=~s|$perlvar{'lonDocRoot'}/|/|;
- &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state,
- 'Converting to EPS '.$prettyname);
+ &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state,&mt('Converting to EPS: [_1]',$prettyname));
}
#
# If the file is a PDF, need to use pdftops to convert it to a ps file.
@@ -948,6 +943,7 @@ sub convert_figure {
&debug("Converting pdf $not_eps to postscript: $eps_f");
system("pdftops $not_eps $eps_f");
+ $pdfs_converted++; # Need to fix ps in last pass.
} else {
system("convert $not_eps $eps_f");
if($? and $advanced_role){