[LON-CAPA-cvs] cvs: loncom /interface printout.pl

sakharuk lon-capa-cvs@mail.lon-capa.org
Thu, 09 May 2002 15:46:01 -0000


sakharuk		Thu May  9 11:46:01 2002 EDT

  Modified files:              
    /loncom/interface	printout.pl 
  Log:
  produces eps dynamically in a correct way
  
  
Index: loncom/interface/printout.pl
diff -u loncom/interface/printout.pl:1.6 loncom/interface/printout.pl:1.7
--- loncom/interface/printout.pl:1.6	Fri Apr 12 09:46:11 2002
+++ loncom/interface/printout.pl	Thu May  9 11:46:01 2002
@@ -1,27 +1,35 @@
 #!/usr/bin/perl
 use IO::File;
+use Image::Magick;
 print "Content-type: text/html\n\n";
 print "<body bgcolor=\"#FFFFFF\">\n";
-print "<h1>OUTPUT is in the PDF FILE below</h1>\n";
-my ($texfile,$laystyle,$needconvert) = split(/&/,$ENV{'QUERY_STRING'});
-if ($needconvert) {
-    my $temporary_file=IO::File->new($texfile) || die "Couldn't open file for reading: $!\n";
+print "<h1>OUTPUT is in the PDF FILE (see link below)</h1>\n";
+my ($texfile,$laystyle) = split(/&/,$ENV{'QUERY_STRING'});
+my $figfile = $texfile;
+$figfile =~ s/\.tex/\.dat/;
+if (-e $figfile) {
+    my $temporary_file=IO::File->new($figfile) || die "Couldn't open file for reading: $!\n";
     my @content_of_file = <$temporary_file>;
-    my $content_file_string = join(' ',@content_of_file);
-    my $b_noteps = index($content_file_string,'\needepsconversion{',0);
-    while ($b_noteps != -1) {
-	my $e_noteps = index($content_file_string,'}',$b_noteps);
-	my $notepslist = substr($content_file_string,$b_noteps+19,$e_noteps-$b_noteps-19);
-	my $newnotepslist = $notepslist;
-	$newnotepslist =~ s/\..*$/\.eps/;
-	$_ = $newnotepslist;
-	m/\/(\w+\.eps)/;
-	$newnotepslist = $1;
-	$newnotepslist = '/home/httpd/prtspool/'.$1;
-	system("convert gif:$notepslist eps:$newnotepslist" );
-	$b_noteps = index($content_file_string,'\needepsconversion{',$e_noteps);
-    }
     close $temporary_file;  
+    my $noteps;
+    foreach $not_eps (@content_of_file) {
+	if ($not_eps ne '') {
+	    my $eps_f = $not_eps;
+	    $eps_f =~ s/\..*$/\.eps/;
+	    $_ = $eps_f;
+	    m/\/(\w+\.eps)/;
+	    $eps_f = '/home/httpd/prtspool/'.$1;
+	    my $image = Image::Magick->new;
+	    $not_eps =~ s/^\s+//;
+	    $not_eps =~ s/\s+$//;
+	    $status = $image->Read($not_eps);
+	    if ($status) {print "  $status  ";}
+	    $image->Set(page => '+100+200'); 
+	    $status = $image->Write($eps_f);	    
+	    if ($status) {print "  $status  ";}
+	}
+    }
+    unlink $figfile;
 }
 print "$texfile\n";
  $_ = $texfile;
@@ -45,9 +53,17 @@
     system("ps2pdf $tempo_file $name_file");
 } elsif ($laystyle eq 'book') {
     system("ps2pdf $new_name_file $name_file");
-}
-
-
+}	    
+my $texlog = $texfile;
+my $texaux = $texfile;
+my $texdvi = $texfile;
+my $texps = $texfile;
+$texlog =~ s/\.tex/\.log/;
+$texaux =~ s/\.tex/\.aux/;
+$texdvi =~ s/\.tex/\.dvi/;
+$texps =~ s/\.tex/\.ps/;
+my @garb = ($texlog,$texaux,$texdvi,$texps);
+unlink @garb;
 
 
 print "<a href=\"/prtspool/$name_file\">Your PDF document</a>\n";