Skip to content
Snippets Groups Projects
figspecial2pdf 1.42 KiB
Newer Older
#!/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");
}

;