# autolatex - xmi2pdf_umbrello.transdef # Copyright (C) 1998-2013 Stephane Galland # # 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 = .xmi OUTPUT_EXTENSIONS for pdf = .pdf OUTPUT_EXTENSIONs for eps = .eps TRANSLATOR_FUNCTION =<catfile( dirname("$in"), basename("$in", @inexts)); if (-d "$outdir") { remove_tree("$outdir") or printErr("$outdir: $!"); } make_path($outdir) or printErr("$outdir: $!"); # Generation of the EPS from XMI runCommandOrFail( 'umbrello', '--export', 'eps', '--directory', "$outdir", "$in"); # Translate the generated files my @generatedFiles = (); local *INDIR; opendir(*INDIR, "$outdir") or printErr("$outdir: $!"); while (my $fn = readdir(*INDIR)) { if ($fn ne File::Spec->updir() && $fn ne File::Spec->curdir() && $fn =~ /\.eps$/) { my $ffn = File::Spec->catfile("$outdir", "$fn"); if (-f "$ffn") { push @generatedFiles, "$ffn"; } } } closedir(*INDIR); my $transresult = 0; if (@generatedFiles>1) { my $template = File::Spec->catfile( dirname($out), basename($out,$outext)).'_'; foreach my $file (@generatedFiles) { my $bn = basename($file,'.eps'); $bn =~ s/\s+/_/sg; if (runTranslator( 'eps2pdf', "$file", "$template$bn.pdf")) { $transresult = 1; } } } elsif (@generatedFiles) { my $file = shift @generatedFiles; $transresult = runTranslator( 'eps2pdf', "$file", "$out"); } else { printErr("No file generated"); } if (-d "$outdir") { remove_tree("$outdir") or printErr("$outdir: $!"); } $transresult; } EOL FILES_TO_CLEAN = $out_*.pdf $out_*.eps $out