Zitat:
Original erstellt von edgar:
Hallo,
man könnte sich ein Makro schreiben, welches die ME10- Daten in PDF
umwandelt und dann mit Ghostscript in jpg übersetzt.
Hallo zusammen!
Das habe ich schon gemacht:
DEFINE mi2xx
PARAMETER mi_xx
PARAMETER kasten
LOCAL ps2xx
LOCAL xmax
LOCAL ymax
LOCAL faktor
LOCAL P1
LOCAL P2
LOCAL masstab
LOCAL din_format
LOCAL psx
LOCAL psy
LOCAL akt_ver
LOCAL top_name
INQ_ENV 0
LET akt_ver ((INQ 302)+chr(47))
IF (mi_xx='pdf')
LET ps2xx (' | remsh w26 wps2pdf '+akt_ver)
ELSE_IF (mi_xx='jpg')
LET ps2xx (' | remsh w26 wps2jpg '+akt_ver)
ELSE_IF (mi_xx='tif')
LET ps2xx (' | remsh w26 wps2tif '+akt_ver)
END_IF
EDIT_PART TOP
IF (kasten='kasten')
READ STRING 'Dateiname? (ohne Leerzeichen!)' top_name
Plot_enter_two_pts
LET P1 Sys_plot_source_ll
LET P2 Sys_plot_source_ur
INQ_ENV 6
LET masstab (INQ 4)
LET din_format ((P2-P1)*masstab)
ELSE_IF (kasten='alles')
INQ_ENV 7
LET top_name (INQ 301)
Set_sys_plot_source ALL
INQ_ENV 6
LET masstab (INQ 4)
LET din_format (((INQ 102)-(INQ 101))*masstab)
END_IF
LET psx (STR (ROUND (X_OF(din_format)/(25.4/72))))
LET psy (STR (ROUND (Y_OF(din_format)/(25.4/72))))
Set_sys_plot_configuration 'Kyocera A4/PS'
Set_sys_plot_filename_prefix ('| sed '+chr(39)+'s/PageSize <A HREF="http://www.cad42.de/index.php/][0-9. ]*[" target=_cad42>][0-9. ]*[</A>/PageSize ['+psx+' '+psy+']/g'+chr(39)+ps2xx+top_name+'.'+mi_xx)
Set_sys_plot_filename_generate 0
Set_sys_plot_offset_x 0
Set_sys_plot_offset_y 0
Set_sys_plot_format_width (X_OF(din_format))
Set_sys_plot_format_height (Y_OF(din_format))
IF ((X_OF(din_format)) > (Y_OF(din_format)))
Set_sys_plot_rot 0
ELSE
Set_sys_plot_rot (-PI/2)
END_IF
Set_sys_plot_format 'USER'
plot_do
Set_sys_plot_filename_prefix '| remsh w26 lp -d lpky'
END_DEFINE
Hier noch die Shellskripte auf unserem Server, über denen der eigentlich Aufruf von Ghostscript erfolgt:
w26 # cat wps2jpg
#!/bin/sh
# Shell-Skript zur Umwandlung von ps-Dateien nach jpg
JPGNAME="$@"
gs -dSAFER -q -dNOPAUSE -dBATCH -sDEVICE=jpeggray -r72 -dGraphicsAlphaBits=4 "-sOutputFile=$JPGNAME" -
w26 # cat wps2pdf
#!/bin/sh
# Shell-Skript zur Umwandlung von ps-Dateien nach pdf
PDFNAME="$@"
gs -dCompatibilityLevel=1.2 -dSAFER -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite "-sOutputFile=$PDFNAME" -c .setpdfwrite -
w26 # cat wps2tif
#!/bin/sh
# Shell-Skript zur Umwandlung von ps-Dateien nach tif
TIFNAME="$@"
gs -dSAFER -q -dNOPAUSE -dBATCH -sDEVICE=tiffg4 -r300 "-sOutputFile=$TIFNAME" -
Hier noch die entsprechenden Zeilen aus meiner defaults:
PLOTTER_TYPE ADD POSTSCRIPT NO_LINETYPE_ADJUST 'KYOCERA/PS'
Set_sys_plot_configuration 'Kyocera A4/PS'
Set_sys_plot_type 'KYOCERA/PS'
Set_sys_plot_filename_prefix '| remsh w26 lp -d lpky'
Set_sys_plot_filename_delold (TRUE)
Set_sys_plot_filename_generate (FALSE)
Set_sys_plot_default ''
Set_sys_plot_macro_name 'User_plot_macro'
Hier ein paar grundsätzliche Erklärungen:
Der eingerichtete Drucker ist ein Postscript-Drucker. Die Druckjobs leite ich normalerweise auf unseren Server zum ausdrucken um. Mein Makro erzeugt eine Postscript-Datei, wobei ich die Pagesize-Größe vorher in ME10 ermittle und übergebe. Unser ME10 Version 8.7g hat da irgendwie Probleme mit größer als A3. Danach wird das entsprechende Shell-Skript aufgerufen und die Datei wird im aktuellen ME10-Verzeichnis generiert. Hinter dem Makro plot_do verbergen sich plot-transfomations Befehle und der eigentliche Start des Plots.
Gruß, Klaus.
[Diese Nachricht wurde von riesi am 25. Mrz. 2013 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP