#!/usr/bin/perl # uses imagemagic, pdftex,... use strict; my $args= join(':', @ARGV); #print "figspecial2pdf $args \n"; #system("pwd >> /tmp/figresult"); my $argCount = $#ARGV; my $tmpDir = '/tmp/gendir'; if (1 != $argCount) { die "usage: figspecial2pdf figFile pdfFile" ; } my ($figFileName, $pdfResultFileName) = @ARGV; my @pathComponents = split('/', $figFileName); my ($figFileBasename) = $pathComponents[$#pathComponents]; $figFileBasename =~ s/\.fig$//; my ($figFileBasedir) = join('/', @pathComponents[0..$#pathComponents-1]); my $generateDir = $tmpDir . $figFileBasedir; my $pngGenerateFile = $generateDir . '/' . $figFileBasename . '.png'; my $pdfGenerateFile = $generateDir . '/' . $figFileBasename . '.pdf'; if ((-r $pngGenerateFile) && ((stat($pngGenerateFile))[9] > (stat($figFileName))[9])) { # print $pngGenerateFile , " exists and is newer than ", $figFileName, "\n"; } else { # print $pngGenerateFile , " does not exist or is older than $figFileName\n"; &execCmd("mkdir -p " . $generateDir); my $convertResult = &execCmd("fig2dev -L pstex $figFileName | epstopdf -f > $pdfGenerateFile"); if (1 == $argCount && 0 == $convertResult) { &execCmd("convert " . $pdfGenerateFile . " " . $pngGenerateFile); } } &execCmd("cp " . $pdfGenerateFile . ' ' . $pdfResultFileName); sub execCmd { my ($cmd) = @_; # system("echo ---'$cmd' >> /tmp/figresult"); return system("cd /tmp;$cmd 2>>/tmp/figresult"); } ;