From 9aab3e2f0ef90dcc93f35da6dda8032ae44cc671 Mon Sep 17 00:00:00 2001
From: Martin Goik <goik@hdm-stuttgart.de>
Date: Fri, 15 Jan 2016 19:14:37 +0100
Subject: [PATCH] pdftoppm is now required for fig --> png conversion

---
 Makefile           |  4 ++-
 bin/figspecial2png | 65 +++++++++++++++++++++++++++-------------------
 2 files changed, 41 insertions(+), 28 deletions(-)

diff --git a/Makefile b/Makefile
index 1d1429f27..05cf580dc 100644
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,9 @@ SHELL = /bin/bash
 
 numCores=$(shell nproc --all)
 
-EXECUTABLES = /usr/share/xmlmind/bin/xxetool rsync pdflatex convert figspecial2pdf figspecial2png figspecial2svg fig2dev fig2mpdf fig2pdf pdf2svg java avconv 
+EXECUTABLES = /usr/share/xmlmind/bin/xxetool rsync pdflatex convert figspecial2pdf figspecial2png figspecial2svg fig2dev fig2mpdf fig2pdf pdf2svg pdftoppm \
+java avconv
+
 K := $(foreach exec,$(EXECUTABLES),\
         $(if $(shell which $(exec)),some string,$(error "No $(exec) in PATH)))
 
diff --git a/bin/figspecial2png b/bin/figspecial2png
index aa62c0f9c..a4bd4a257 100755
--- a/bin/figspecial2png
+++ b/bin/figspecial2png
@@ -3,44 +3,55 @@
 
 use strict;
 
-my $args= join(':', @ARGV);
-#print "figspecial2png $args \n";
-#system("pwd >> /tmp/figresult");
-
 my $argCount = $#ARGV;
-my $tmpDir = '/tmp/gendir';
 if (1 != $argCount) {
-  die "usage: figspecial2png figFile pngFile" ;
+   die "usage: figspecial2png figFile pngFile" ;
+} else {
+    my ($figFileName, $pngResultFileName) = @ARGV;
+    my $figFileBasename = $figFileName;
+    $figFileBasename =~ s/\.fig$//;
+    system("fig2pdf --nogv $figFileName");
+    system("pdftoppm -singlefile -png $figFileBasename.pdf > $pngResultFileName && rm -f $figFileBasename.pdf");
 }
 
-my ($figFileName, $pngResultFileName) = @ARGV;
-my @pathComponents = split('/', $figFileName);
-my ($figFileBasename) = $pathComponents[$#pathComponents];
-$figFileBasename =~ s/\.fig$//;
-my ($figFileBasedir) = join('/', @pathComponents[0..$#pathComponents-1]);
+#my $args= join(':', @ARGV);
+#print "figspecial2png $args \n";
+#system("pwd >> /tmp/figresult");
 
-my $generateDir = $tmpDir . $figFileBasedir;
-my $pngGenerateFile = $generateDir . '/' . $figFileBasename . '.png';
-my $pdfGenerateFile =  $generateDir . '/' . $figFileBasename . '.pdf';
+#my $argCount = $#ARGV;
+#my $tmpDir = '/tmp/gendir';
+#if (1 != $argCount) {
+#  die "usage: figspecial2png figFile pngFile" ;
+#}
 
-if ((-r $pngGenerateFile) && ((stat($pngGenerateFile))[9] > (stat($figFileName))[9])) {
+#my ($figFileName, $pngResultFileName) = @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 {
+#} 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");
+#  &execCmd("mkdir -p " . $generateDir);
+#  my $convertResult = &execCmd("fig2dev -L pstex $figFileName | epstopdf -f > $pdfGenerateFile");
 
-  if (1 == $argCount && 0 == $convertResult) {
-    &execCmd("convert " . $pdfGenerateFile  . " " . $pngGenerateFile);
-  }
-}
+#  if (1 == $argCount && 0 == $convertResult) {
+#    &execCmd("convert " . $pdfGenerateFile  . " " . $pngGenerateFile);
+#  }
+#}
 
-&execCmd("cp " . $pngGenerateFile . ' ' . $pngResultFileName);
+#&execCmd("cp " . $pngGenerateFile . ' ' . $pngResultFileName);
 
-sub execCmd {
-    my ($cmd) = @_;
+#sub execCmd {
+#    my ($cmd) = @_;
 #    system("echo ---'$cmd' >> /tmp/figresult");
-    return system("cd /tmp;$cmd 2>>/tmp/figresult");
-}
+#    return system("cd /tmp;$cmd 2>>/tmp/figresult");
+#}
 
 ;
-- 
GitLab