diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/autolatex/translators/xmi2pdf_umbrello.transdef |
Initial commit
Diffstat (limited to 'support/autolatex/translators/xmi2pdf_umbrello.transdef')
-rw-r--r-- | support/autolatex/translators/xmi2pdf_umbrello.transdef | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/support/autolatex/translators/xmi2pdf_umbrello.transdef b/support/autolatex/translators/xmi2pdf_umbrello.transdef new file mode 100644 index 0000000000..70a7606df9 --- /dev/null +++ b/support/autolatex/translators/xmi2pdf_umbrello.transdef @@ -0,0 +1,91 @@ +# autolatex - xmi2pdf_umbrello.transdef +# Copyright (C) 1998-2013 Stephane Galland <galland@arakhne.org> +# +# 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 =<<EOL { + # Create tmp dir + my $outdir = File::Spec->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 + |