From 3e04f689aaa6a3ccc8d437ebf44b3f7d840916cb Mon Sep 17 00:00:00 2001 From: Jean-Michel Sarlat Date: Sun, 23 Oct 2011 12:58:27 +0200 Subject: [PATCH] =?utf8?q?Ajout=20du=20script=20epsnorm.pl=20et=20mise=20?= =?utf8?q?=C3=A0=20jour=20de=20la=20doc=20des=20scripts?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- opt/Makefile | 8 ++ opt/epsnorm | 123 +++++++++++++++++++++++++++ opt/epsnorm.pl | 123 +++++++++++++++++++++++++++ opt/pst-anamorphosis-doc-scripts.pdf | Bin 153682 -> 157688 bytes opt/pst-anamorphosis-doc-scripts.tex | 50 ++++++++++- 5 files changed, 303 insertions(+), 1 deletion(-) create mode 100755 opt/epsnorm create mode 100755 opt/epsnorm.pl diff --git a/opt/Makefile b/opt/Makefile index ee7b533..12dd058 100644 --- a/opt/Makefile +++ b/opt/Makefile @@ -1,8 +1,16 @@ +BIN = epsnorm psftopst PDOC = pst-anamorphosis-doc-scripts $(PDOC).pdf: $(PDOC).tex latex $< && dvips $(PDOC).dvi -o && ps2pdf -dNOSAFER $(PDOC).ps +install: $(BIN) +$(BIN) : % : %.pl + perl -c $< + cp $< $@ + cp $@ ~/bin/$@ + + clean: rm -f *.aux *.log *.dvi *.ps \ No newline at end of file diff --git a/opt/epsnorm b/opt/epsnorm new file mode 100755 index 0000000..f9f34b0 --- /dev/null +++ b/opt/epsnorm @@ -0,0 +1,123 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q' + if 0; +use strict; +# ============================================================================== +# epsnorm +# Version 1.0 (Dimanche 23 octobre 2011) Jean-Michel Sarlat +# Ce script fait partie du projet pst-anamorphosis (Gilg, Luque, Sarlat) +# http://melusine.eu.org/syracuse/G/pst-anamorphosis Checkout +# http://melusine.eu.org/syracuse/G/git/?p=pst-anamorphosis.git git +# ============================================================================== + +our $windows_pstoedit = ''; + +our $on_windows = $^O =~ /^MSWin/; +our $GS = $on_windows ? "gswin32c" : "gs"; +our $PS = $on_windows ? $windows_pstoedit : "pstoedit"; + + +# === Acquisition des options de la ligne de commande ------------------------- +$::opt_dimmax = 4; # Dimension maximale : 4 cm par défaut +use Getopt::Long; +GetOptions( + "dimmax=s" +); + +our $debug = 1; + +our $cm = 28.3464567; + +our $Fichier = $ARGV[0]; +-f $Fichier or die "Fichier <$Fichier> introuvable !\n"; + +our ($Nom, $Dir, $Ext) = &FichierNRE($Fichier); + +our @Bbox = (); + +use File::Copy; +# === Première transformation par pstoedit ------------------------------------- +{ + my $f = "$Nom-original.$Ext"; + copy($Fichier, $f); + my @a = ($PS, "-f", "ps", $f, $Fichier); + $debug and print STDERR "Processing by pstoedit (1) ...\n"; + system(@a) == 0 or die "Running pstoedit failed\nCommand :".join(" ",@a)."\n"; + $debug and print STDERR "Ok!\n"; +} +# === Adaptation du fichier ---------------------------------------------------- +{ + my $ps = &FichierListe($Fichier); + my $n = 0; + my $p = 0; + foreach (@$ps) { + $n++; + not($p) and /^\%\%Page: 1 1/ and $p = $n; + /^\%\%BoundingBox\: ([\d\.-]+) ([\d\.-]+) ([\d\.-]+) ([\d\.-]+)/ and + &setBbox($1,$2,$3,$4); + } + my $t = &getTranslate(); + my $s = &getScale(); + $$ps[$p] .= "$::opt_dimmax $cm mul $s $t"; + open PS, "> $Fichier"; print PS join("\n", @$ps); close PS; +} +# === Seconde transformation par pstoedit -------------------------------------- +{ + my $f = "$Nom-temp.$Ext"; + copy($Fichier, $f); + my @a = ($PS, "-f", "ps", "-noclip", $f, $Fichier); + $debug and print STDERR "Processing by pstoedit (2)...\n"; + system(@a) == 0 or die "Running pstoedit failed\nCommand :".join(" ",@a)."\n"; + $debug and print STDERR "Ok!\n"; + unlink $f if -f $f; +} + + +# === Acquisition de la BoundingBox -------------------------------------------- +sub setBbox { + @Bbox = @_; +} +# === Translation -------------------------------------------------------------- +sub getTranslate { + my $tx = "$Bbox[2] $Bbox[0] add 2 div neg"; + my $ty = "$Bbox[3] $Bbox[1] add 2 div neg"; + return "$tx $ty translate"; +} +# === Échelle ------------------------------------------------------------------ +sub getScale { + my $lx = $Bbox[2] - $Bbox[0]; + my $ly = $Bbox[3] - $Bbox[1]; + my $m = $lx; $m = $ly if $ly > $lx; + return "$m div dup scale"; +} + +# === Contenu d'un fichier et éléments du nom ---------------------------------- +# ------------------------------------------------------------------------------ +# Contenu sous forme d'une liste de lignes +sub FichierListe { + my $f = shift; + open(FICH, $f) or die "Le fichier $f est introuvable !\n"; + my @l = ; + close FICH; + chomp @l; + return \@l; +} +# Contenu en un seul élément +sub FichierScalaire { + my $f = shift; + local $/; + open(FICH, $f) or die "Le fichier $f est introuvable !\n"; + my $c = ; + close FICH; + return $c; +} +# Nom, Repertoire et Extension d'un fichier +sub FichierNRE { + my $f = shift; + use File::Basename; + my ($n, $r, $e) = fileparse($f,qw{\..*}); + $e =~ s/^\.//; + return ($n, $r, $e); +} + + + diff --git a/opt/epsnorm.pl b/opt/epsnorm.pl new file mode 100755 index 0000000..f9f34b0 --- /dev/null +++ b/opt/epsnorm.pl @@ -0,0 +1,123 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q' + if 0; +use strict; +# ============================================================================== +# epsnorm +# Version 1.0 (Dimanche 23 octobre 2011) Jean-Michel Sarlat +# Ce script fait partie du projet pst-anamorphosis (Gilg, Luque, Sarlat) +# http://melusine.eu.org/syracuse/G/pst-anamorphosis Checkout +# http://melusine.eu.org/syracuse/G/git/?p=pst-anamorphosis.git git +# ============================================================================== + +our $windows_pstoedit = ''; + +our $on_windows = $^O =~ /^MSWin/; +our $GS = $on_windows ? "gswin32c" : "gs"; +our $PS = $on_windows ? $windows_pstoedit : "pstoedit"; + + +# === Acquisition des options de la ligne de commande ------------------------- +$::opt_dimmax = 4; # Dimension maximale : 4 cm par défaut +use Getopt::Long; +GetOptions( + "dimmax=s" +); + +our $debug = 1; + +our $cm = 28.3464567; + +our $Fichier = $ARGV[0]; +-f $Fichier or die "Fichier <$Fichier> introuvable !\n"; + +our ($Nom, $Dir, $Ext) = &FichierNRE($Fichier); + +our @Bbox = (); + +use File::Copy; +# === Première transformation par pstoedit ------------------------------------- +{ + my $f = "$Nom-original.$Ext"; + copy($Fichier, $f); + my @a = ($PS, "-f", "ps", $f, $Fichier); + $debug and print STDERR "Processing by pstoedit (1) ...\n"; + system(@a) == 0 or die "Running pstoedit failed\nCommand :".join(" ",@a)."\n"; + $debug and print STDERR "Ok!\n"; +} +# === Adaptation du fichier ---------------------------------------------------- +{ + my $ps = &FichierListe($Fichier); + my $n = 0; + my $p = 0; + foreach (@$ps) { + $n++; + not($p) and /^\%\%Page: 1 1/ and $p = $n; + /^\%\%BoundingBox\: ([\d\.-]+) ([\d\.-]+) ([\d\.-]+) ([\d\.-]+)/ and + &setBbox($1,$2,$3,$4); + } + my $t = &getTranslate(); + my $s = &getScale(); + $$ps[$p] .= "$::opt_dimmax $cm mul $s $t"; + open PS, "> $Fichier"; print PS join("\n", @$ps); close PS; +} +# === Seconde transformation par pstoedit -------------------------------------- +{ + my $f = "$Nom-temp.$Ext"; + copy($Fichier, $f); + my @a = ($PS, "-f", "ps", "-noclip", $f, $Fichier); + $debug and print STDERR "Processing by pstoedit (2)...\n"; + system(@a) == 0 or die "Running pstoedit failed\nCommand :".join(" ",@a)."\n"; + $debug and print STDERR "Ok!\n"; + unlink $f if -f $f; +} + + +# === Acquisition de la BoundingBox -------------------------------------------- +sub setBbox { + @Bbox = @_; +} +# === Translation -------------------------------------------------------------- +sub getTranslate { + my $tx = "$Bbox[2] $Bbox[0] add 2 div neg"; + my $ty = "$Bbox[3] $Bbox[1] add 2 div neg"; + return "$tx $ty translate"; +} +# === Échelle ------------------------------------------------------------------ +sub getScale { + my $lx = $Bbox[2] - $Bbox[0]; + my $ly = $Bbox[3] - $Bbox[1]; + my $m = $lx; $m = $ly if $ly > $lx; + return "$m div dup scale"; +} + +# === Contenu d'un fichier et éléments du nom ---------------------------------- +# ------------------------------------------------------------------------------ +# Contenu sous forme d'une liste de lignes +sub FichierListe { + my $f = shift; + open(FICH, $f) or die "Le fichier $f est introuvable !\n"; + my @l = ; + close FICH; + chomp @l; + return \@l; +} +# Contenu en un seul élément +sub FichierScalaire { + my $f = shift; + local $/; + open(FICH, $f) or die "Le fichier $f est introuvable !\n"; + my $c = ; + close FICH; + return $c; +} +# Nom, Repertoire et Extension d'un fichier +sub FichierNRE { + my $f = shift; + use File::Basename; + my ($n, $r, $e) = fileparse($f,qw{\..*}); + $e =~ s/^\.//; + return ($n, $r, $e); +} + + + diff --git a/opt/pst-anamorphosis-doc-scripts.pdf b/opt/pst-anamorphosis-doc-scripts.pdf index 98162e52c28bac04c1af791db8bb268892418917..351af7397f50c4c090311e6807f9deaf4f749b3d 100644 GIT binary patch delta 17204 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 T*7)esiY5!=b8yIODB%Aeq)^-7 delta 13514 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 z epsnorm.pl [-dimmax n] monfichier.{eps|ps} +\end{boxedverbatim} +\end{gbar}%$ + +Le fichier est alors transformé, le contenu initial étant +sauvegardé dans \verb+monfichier-original.{eps|ps}+. + +\subsection{Option} + +\begin{description} +\item[\texttt{-dimmax n}] La transformation effectuée par le script +centre l'image sur \((0,0)\) et la met à l'échelle telle que la plus +grande des deux dimensions soit 4 cm par défaut. Vous pouvez substituer +la valeur \texttt{n} de votre choix à 4 avec cette option. +\end{description} + +\subsection{Notes} + +\begin{itemize} + +\item Pour les utilisateurs de \textsf{windows}: il faut, au préalable, +éditer le script et remplacer la chaîne \texttt{} (vers la ligne 12) par le chemin complet d'accès à +\textsf{pstoedit} sur votre sytème. Pour \textsf{Linux} ou +\textsf{MacOS}, l'hypothèse est faite que le programme est accessible +via la variable \texttt{PATH}. + +\item Le fichier à traiter ne doit comporter qu'une seule page, le +résultat peut être surprenant dans le cas contraire... + +\end{itemize} + \end{document} \ No newline at end of file -- 2.20.1