version 1.110, 2006/09/14 17:04:42
|
version 1.114, 2006/12/04 21:44:42
|
Line 29 use lib '/home/httpd/lib/perl';
|
Line 29 use lib '/home/httpd/lib/perl';
|
use LONCAPA::loncgi; |
use LONCAPA::loncgi; |
use File::Path; |
use File::Path; |
use File::Basename; |
use File::Basename; |
|
use File::Copy; |
use IO::File; |
use IO::File; |
use Image::Magick; |
use Image::Magick; |
use Apache::lonhtmlcommon(); |
use Apache::lonhtmlcommon(); |
Line 204 print "<a href=\"$backref\"><b>Return</b
|
Line 205 print "<a href=\"$backref\"><b>Return</b
|
foreach my $not_eps (@content_of_file) { |
foreach my $not_eps (@content_of_file) { |
chomp($not_eps); |
chomp($not_eps); |
if ($not_eps ne '') { |
if ($not_eps ne '') { |
# print "Converting $not_eps"; # Debugging. |
# print "Converting $not_eps"; # Debugging. |
my $status_statement='EPS picture for '.$not_eps; |
my $status_statement='EPS picture for '.$not_eps; |
# print "$status_statement\n"; |
# print "$status_statement\n"; |
$not_eps=~s|\/\.\/|\/|g; |
$not_eps=~s|\/\.\/|\/|g; |
my $eps_f = $not_eps; |
my $eps_f = $not_eps; |
# $eps_f =~ s/\.[^.]*$/\.eps/i; |
# $eps_f =~ s/\.[^.]*$/\.eps/i; |
$eps_f .= '.eps'; # Just append the eps ext. |
|
if ($eps_f=~/\/home\/([^\/]+)\/public_html\//) { |
if ($eps_f=~/\/home\/([^\/]+)\/public_html\//) { |
$eps_f=~s/\/home\/([^\/]+)\/public_html/$1/; |
$eps_f=~s/\/home\/([^\/]+)\/public_html/$1/; |
$eps_f = '/home/httpd/prtspool/'.$eps_f; |
$eps_f = '/home/httpd/prtspool/'.$eps_f; |
Line 222 print "<a href=\"$backref\"><b>Return</b
|
Line 222 print "<a href=\"$backref\"><b>Return</b
|
$eps_f = '/home/httpd/prtspool/'.$1.'/'.$2; |
$eps_f = '/home/httpd/prtspool/'.$1.'/'.$2; |
} |
} |
$eps_f =~ s/ /\_/g; # Spaces are problematic for system commands and LaTeX. |
$eps_f =~ s/ /\_/g; # Spaces are problematic for system commands and LaTeX. |
my $path=$eps_f; |
# |
$path =~ s/\/([^\/]+)\.eps$//; |
# If the file is already an .eps or .ps file, |
# print "Final file path: $path "; # Debugging |
# We really just need to copy it from where it was to prtspool |
File::Path::mkpath($path,0,0777); |
# but with the spaces substituted to _'s. |
$not_eps =~ s/^\s+//; |
# |
$not_eps =~ s/\s+$//; |
my ($nsname,$path, $sext) = &fileparse($eps_f, qr/\.(ps|eps)/i); |
$not_eps =~ s/ /\\ /g; |
if ($sext =~/ps$/i) { |
if ( exists($done_conversion{$not_eps})) { next; } |
# print "$not_eps is a postscript file. copy to $path\n"; |
if ($advanced_role) { |
&File::Path::mkpath($path,0,0777); |
my $prettyname=$not_eps; |
#print("Made path: $path"); |
$prettyname=~s|/home/([^/]+)/public_html|/priv/$1|; |
#$not_eps =~ s/^\s+//; |
$prettyname=~s|$Apache::lonnet::perlvar{'lonDocRoot'}/|/|; |
#$not_eps =~ s/\s+$//; |
&Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state, |
#$not_eps =~ s/ /\__/g; |
'Converting to EPS '.$prettyname); |
#print("Copying $not_eps to $eps_f\n"); |
} |
copy("$not_eps", "$eps_f"); |
$done_conversion{$not_eps}=1; |
# print "Copy complete\n"; |
# print "Converting $not_eps -> $eps_f"; # Debugging |
} else { |
system("convert $not_eps $eps_f"); |
|
# check is eps exist in prtspool |
$eps_f .= '.eps'; # Just append the eps ext. |
if (not -e $eps_f) { |
my $path=$eps_f; |
# converting an animated gif creates either: |
$path =~ s/\/([^\/]+)\.eps$//; |
# anim.gif.eps.0 |
# print "Final file path: $path "; # Debugging |
# or |
&File::Path::mkpath($path,0,0777); |
# anim.gif-0.eps |
$not_eps =~ s/^\s+//; |
for (my $i=0;$i<10000;$i++) { |
$not_eps =~ s/\s+$//; |
if (-e $eps_f.'.'.$i) { |
$not_eps =~ s/ /\\ /g; |
rename($eps_f.'.'.$i, $eps_f); |
if ( exists($done_conversion{$not_eps})) { next; } |
last; |
if ($advanced_role) { |
} |
my $prettyname=$not_eps; |
my $anim_eps = $eps_f; |
$prettyname=~s|/home/([^/]+)/public_html|/priv/$1|; |
$anim_eps =~ s/(\.[^.]*)\.eps$/$1-$i\.eps/i; |
$prettyname=~s|$Apache::lonnet::perlvar{'lonDocRoot'}/|/|; |
if (-e $anim_eps) { |
&Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state, |
rename($anim_eps, $eps_f); |
'Converting to EPS '.$prettyname); |
last; |
} |
|
$done_conversion{$not_eps}=1; |
|
# print "Converting $not_eps -> $eps_f"; # Debugging |
|
system("convert $not_eps $eps_f"); |
|
# check is eps exist in prtspool |
|
if (not -e $eps_f) { |
|
# converting an animated gif creates either: |
|
# anim.gif.eps.0 |
|
# or |
|
# anim.gif-0.eps |
|
for (my $i=0;$i<10000;$i++) { |
|
if (-e $eps_f.'.'.$i) { |
|
rename($eps_f.'.'.$i, $eps_f); |
|
last; |
|
} |
|
my $anim_eps = $eps_f; |
|
$anim_eps =~ s/(\.[^.]*)\.eps$/$1-$i\.eps/i; |
|
if (-e $anim_eps) { |
|
rename($anim_eps, $eps_f); |
|
last; |
|
} |
} |
} |
} |
} |
} |
|
# imagemagick 6.2.0-6.2.7 fails to properly handle |
# imagemagick 6.2.0-6.2.7 fails to properly handle |
# convert anim.gif anim.gif.eps |
# convert anim.gif anim.gif.eps |
# it creates anim.eps instead. |
# it creates anim.eps instead. |
if (not -e $eps_f) { |
if (not -e $eps_f) { |
my $eps_f2 = $eps_f; |
my $eps_f2 = $eps_f; |
$eps_f2 =~ s/\.[^.]*\.eps$/\.eps/i; |
$eps_f2 =~ s/\.[^.]*\.eps$/\.eps/i; |
if(-e $eps_f2) { |
if(-e $eps_f2) { |
rename($eps_f2,$eps_f); |
rename($eps_f2,$eps_f); |
|
} |
} |
} |
} |
} |
|
|