# autolatex - ppt2pdf_libreoffice.transdef
# Copyright (C) 2014  Stephane Galland <[email protected]>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; see the file COPYING.  If not, write to
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.

#--------------------------------------------
# See template.txt for details on the fields
#--------------------------------------------

INPUT_EXTENSIONS = .ppt .pptx

OUTPUT_EXTENSIONS for pdf = .pdf
OUTPUT_EXTENSIONS for eps = .eps

TRANSLATOR_FUNCTION =<<EOL {
       my @binaries = ('libreoffice', 'loffice', 'openoffice', 'ooffice');
       my $bin;
       for(my $i=0; $i<@binaries && !$bin; $i++) {
               $bin = which($binaries[$i]);
       }
       if (!$bin) {
               printErr("Unable to retreive the binary file of Libre Office or Open Office.");
       }

       my $ext;
       my $mode;
       if ($ispdfmode) {
               $ext = '.pdf';
               $mode = 'pdf';
       }
       else {
               $ext = '.eps';
               $mode = 'eps';
       }

       my $outdir = File::Spec->rel2abs(dirname($out));
       my $basename = basename($in,@inexts);
       my $defaultOutput = File::Spec->catfile("$outdir", "$basename$ext");

       runCommandOrFail( "$bin", '--headless', '--nologo', '--convert-to', "$mode", '--outdir', "$outdir", "$in");

       if ($defaultOutput ne $out) {
               move("$defaultOutput", "$out") or printErr("$defaultOutput -> $out: $!");
       }

       1;
}
EOL