version 1.117, 2006/12/18 11:34:55
|
version 1.121, 2007/02/22 01:00:13
|
Line 1
|
Line 1
|
#!/usr/bin/perl |
#!/usr/bin/perl |
# CGI-script to run LaTeX, dvips, ps2ps, ps2pdf etc. |
# CGI-script to run LaTeX, dvips, ps2ps, ps2pdf etc. |
# |
# |
|
# $Id$ |
# |
# |
# Copyright Michigan State University Board of Trustees |
# Copyright Michigan State University Board of Trustees |
# |
# |
Line 187 END
|
Line 188 END
|
print "<a href=\"$backref\"><b>Return</b></a> to last resource.<br /><br />"; |
print "<a href=\"$backref\"><b>Return</b></a> to last resource.<br /><br />"; |
|
|
my $figfile = $texfile; |
my $figfile = $texfile; |
$figfile =~ s/^([^\.]+printout)[^t]+\.tex/$1\.dat/; |
$figfile =~ s/^(.*_printout)_\d+_\d+_\d+\.tex/$1\.dat/; |
my $duefile = $texfile; |
my $duefile = $texfile; |
$duefile =~ s/^([^\.]+printout)[^t]+\.tex/$1\.due/; |
$duefile =~ s/^(.*_printout)_\d+_\d+_\d+\.tex/$1\.due/; |
#do we have figures? |
#do we have figures? |
# print "Figure file: $figfile\n"; |
# print "Figure file: $figfile\n"; |
if (-e $figfile) { |
if (-e $figfile) { |
Line 527 foreach $texfile (@texfile) {
|
Line 528 foreach $texfile (@texfile) {
|
\%prog_state, $dvi_file); |
\%prog_state, $dvi_file); |
|
|
} |
} |
&busy_wait_command("$comma $name_file 1>dev/null 2>/dev/null", |
&busy_wait_command("$comma $name_file 1>/dev/null 2>/dev/null", |
"for $status_statement dvips to repaginate", |
"for $status_statement dvips to repaginate", |
\%prog_state, $new_name_file); |
\%prog_state, $new_name_file); |
# |
# |
Line 559 foreach $texfile (@texfile) {
|
Line 560 foreach $texfile (@texfile) {
|
if (-e $missfonts_file) { |
if (-e $missfonts_file) { |
#print("<br />Missing fonts file exists\n"); |
#print("<br />Missing fonts file exists\n"); |
&create_missing_fonts($missfonts_file); |
&create_missing_fonts($missfonts_file); |
unlink($missfonts_file, \%prog_state); |
&busy_wait_command("$comma $name_file 1>/dev/null 2>/dev/null", |
&busy_wait_command("$comma $name_file 1>dev/null 2>/dev/null", |
|
"for $status_statement dvips generated missing fonts", |
"for $status_statement dvips generated missing fonts", |
\%prog_state, $new_name_file); |
\%prog_state, $new_name_file); |
} |
} |
Line 604 foreach $texfile (@texfile) {
|
Line 604 foreach $texfile (@texfile) {
|
$texps =~ s/\.tex/\.ps/; |
$texps =~ s/\.tex/\.ps/; |
my @garb = ($texaux,$texdvi,$texps); |
my @garb = ($texaux,$texdvi,$texps); |
# unlink @garb; |
# unlink @garb; |
unlink $duefile; |
unlink($duefile); |
print "<a href=\"/prtspool/$pdf_file\">Your PDF document</a>"; |
print "<a href=\"/prtspool/$pdf_file\">Your PDF document</a>"; |
|
unlink($missfonts_file); |
|
|
} |
} |
if ($advanced_role) { |
if ($advanced_role) { |
print "<br /><br />"; |
print "<br /><br />"; |
Line 627 foreach $texfile (@texfile) {
|
Line 629 foreach $texfile (@texfile) {
|
print "<a href=\"$texfile\">Your original LaTeX file </a></big></b>"; |
print "<a href=\"$texfile\">Your original LaTeX file </a></big></b>"; |
print "\n"; |
print "\n"; |
} |
} |
|
|
} else { |
} else { |
#LaTeX successfully parsed tex file |
#LaTeX successfully parsed tex file |
$name_file =~ s/\.tex/\.dvi/; |
$name_file =~ s/\.tex/\.dvi/; |
Line 668 foreach $texfile (@texfile) {
|
Line 671 foreach $texfile (@texfile) {
|
if (-e $missfonts_file) { |
if (-e $missfonts_file) { |
#print("<br />Missing fonts file exists\n"); |
#print("<br />Missing fonts file exists\n"); |
&create_missing_fonts($missfonts_file); |
&create_missing_fonts($missfonts_file); |
unlink($missfonts_file); |
&busy_wait_command("$comma $name_file 1>/dev/null 2>/dev/null", |
&busy_wait_command("$comma $name_file 1>dev/null 2>/dev/null", |
|
"for $status_statement dvips generated missing fonts", |
"for $status_statement dvips generated missing fonts", |
\%prog_state, $new_name_file); |
\%prog_state, $new_name_file); |
} |
} |
Line 755 foreach $texfile (@texfile) {
|
Line 757 foreach $texfile (@texfile) {
|
$texps =~ s/\.tex/\.ps/; |
$texps =~ s/\.tex/\.ps/; |
my @garb = ($texlog,$texaux,$texdvi,$texps); |
my @garb = ($texlog,$texaux,$texdvi,$texps); |
# unlink @garb; |
# unlink @garb; |
unlink $duefile; |
unlink($duefile); |
print "<a href=\"/prtspool/$pdf_file\">$link_text - click here to download pdf</a>"; |
print "<a href=\"/prtspool/$pdf_file\">$link_text - click here to download pdf</a>"; |
print "\n"; |
print "\n"; |
} |
} |
|
unlink($missfonts_file); |
|
|
} |
} |
} else { |
} else { |
print "LaTeX file $texfile was not created successfully"; |
print "LaTeX file $texfile was not created successfully"; |
Line 862 sub repaginate {
|
Line 866 sub repaginate {
|
# |
# |
|
|
if ($line =~ /^%%Page:/) { |
if ($line =~ /^%%Page:/) { |
my @pageinfo = split(/ /, $line); |
my @pageinfo = split(/\s+/, $line); |
if ($page_number < $pageinfo[1]) { |
if ($page_number < $pageinfo[1]) { |
$page_number = $pageinfo[1]; |
$page_number = $pageinfo[1]; |
} elsif ($pageinfo[2] ne 1) { |
} elsif ($pageinfo[2] ne 1) { |
Line 962 sub create_missing_fonts {
|
Line 966 sub create_missing_fonts {
|
# Open and read in the font file..we'll read it into the array |
# Open and read in the font file..we'll read it into the array |
# font_commands. |
# font_commands. |
# |
# |
my $font_handle = IO::File->new($fontfile); |
open(my $font_handle, $fontfile); |
my @font_commands = <$font_handle>; |
my @font_commands = <$font_handle>; |
|
|
|
# make the list contain each command only once |
|
my %uniq; |
|
@font_commands = map { $uniq{$_}++ == 0 ? $_ : () } @font_commands; |
|
|
# Now process each command replacing the appropriate 8000's with |
# Now process each command replacing the appropriate 8000's with |
# 600's ensuring that font names with 8000's in them are not corrupted. |
# 600's ensuring that font names with 8000's in them are not corrupted. |
# and if the --mfmode is not ljfour we turn it into ljfour. |
# and if the --mfmode is not ljfour we turn it into ljfour. |
# Then we execute the command. |
# Then we execute the command. |
# |
# |
|
|
foreach my $command (@font_commands) { |
foreach my $command (@font_commands) { |
#print("<br />Raw command: $command"); |
#print("<br />Raw command: $command"); |
$command =~ s/ 8000/ 600/g; # dpi directives. |
$command =~ s/ 8000/ 600/g; # dpi directives. |
Line 988 sub create_missing_fonts {
|
Line 995 sub create_missing_fonts {
|
$command = join(" ", (@cmdarray)); |
$command = join(" ", (@cmdarray)); |
|
|
#print("<br />Creating fonts via command: $command"); |
#print("<br />Creating fonts via command: $command"); |
&busy_wait_command("$command 1>dev/null 2>/dev/null", |
&busy_wait_command("$command 1>/dev/null 2>/dev/null", |
"Creating missing font", |
"Creating missing font", |
$state, $command); |
$state, $command); |
|
|