Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/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");
}
;