Mit dem Modul PSOUT können Objekte in eine PostScript Datei geschrieben werden. Mit Zusatzsoftware - kommerzielle, Freeware, Shareware - wie zum Beispiel GhostScript kann eine PostScript Datei in ein anderes Format wie PDF, JPEG, TIF, etc. transferiert werden.
Der Modul wird mit:
|INCL \script\psout.mod
in einer ICS Konfiguration verfügbar gemacht.
Der Modul ist nicht mit RUN1 kompatibel
und muss daher zusammen mit der speziellen .prg Datei
|
Für Plot Layout Elemente wie Titelblatt, Koordinatenkreuze, etc. ist das Verarbeitungsmodul PLOT einzubeziehen. Mehr dazu in der Dokumentation des Modules PLOT.
Folgende Parameter können in der Map
PSOUT_PARAM
für den Modul gesetzt werden:
Parameter | req/opt | Beschreibung |
FILE_FORMAT | o | ps , pdf ,
jpg , tif oder
tif_tfw . Definiert das Dateiformat für
den Output. Beim Typ tif_tfw wird
zusätzlich zur TIF-Datei noch eine TFW-Datei
erzeugt. |
ORIGIN | o | <x>/<y> .Definiert der
Ursprung in Koordinaten unten links der Daten für den
Output. Bei der Verwendung des Modules
PLOT.MOD wird dieser Parameter mit
PLOT_PARAM.ORIGIN überschrieben. |
ANGLE | o | <r> .Definiert den Drehwinkel
der Daten für den Output. Bei der Verwendung des
ModulesPLOT.MOD wird dieser Parameter mit
PLOT_PARAM. ANGLE überschrieben. |
SCALE | o | 1:<scale> , Default =
1:500 . Definiert den Massstab für den
Output. Bei der Verwendung des Modules
PLOT.MOD wird dieser Parameter mit
PLOT_PARAM.SCALE überschrieben. |
WIDTH | o | <m> . Definiert die Breite
im Massstab 1:1 der Daten in Meter für
den Output. Bei der Verwendung des Modules
PLOT.MOD wird dieser Parameter mit
PLOT_PARAM.WIDTH überschrieben. |
HEIGHT | o | <m> .Definiert die Höhe im
Massstab 1:1 der Daten in Meter für den
Output. Bei der Verwendung des Modules
PLOT.MOD wird dieser Parameter mit
PLOT_PARAM. HEIGHT überschrieben. |
PIXELSIZE | o | <r> , Default =
0.001 . Definiert die Pixelgrösse eines
Pixels für den Output. Ein positiver Wert definiert wieviele
Meter der Daten im Massstab 1:1 einem Pixel entsprechen,
z.B. eine Breite der Daten von 300 Metern und eine
Pixelgrösse von 0.1 Meter ergibt einen Output mit einer
Breite von 3000 Pixel. Ein negativer Wert definiert als
Faktor, wie gross ein Pixel im Verhältnis zur gesamten
Breite des Outputs ist, z.B. -0.001 ergibt einen Output mit
einer Breite von 1000 Pixel. Der Parameter wird bei der
Verwendung des Modules PLOT.MOD für einen
PLOT_PARA M.TYPE =>
RASTER berücksichtigt. |
PDF_DATA_FORMAT | o | jpg oder OFF ,
Default OFF . Definiert das Daten Format
innerhalb eines PDF's bei einem Output Format
PDF . Das heisst, die Daten im PDF-File
werden als JPG eingebettet. |
PDF_DATA_RESOLUTION | o | <dpi> , Default =
300 . Definiert die Auflösung der Daten
als dots per inch innerhalb eines PDF's bei einem Output
Format PDF, falls als Daten Format auf
jpg gesetzt ist. |
SYMBOLOGY[<n>] | o | <Symbology-Library>, Default = ''. Mit diesem Parameter können eine oder mehrere Signatur-Bibliotheken definiert werden. Signatur-Bibliotheken sind INTERLIS Dateien die Signaturen entsprechend dem INTERLIS Modell Symbology.ili beinhalten. Mehr dazu unter dem Abschnitt zu Signaturen. Bei der Verwendung mehrerer Signatur-Bibliotheken muss man dem Parameternamen eine fortlaufende Nummer beginnend mit 1 anfügen. |
STROKE_TOLERANCE | o | <r>, Default = 0.001. Definiert die Toleranz
wie Kreisbögen in Liniensegmente aufgelöst werden sollen.
Der Wert ist identisch mit dem Argument für die Methode
ICS.STROKE . |
GS_LIB | o | <Path>, Default = ''. Für die Transformation
der PostScript Files in ein anderes Format PDF,JPG,TIF,etc.
ist der Modul vorbereitet, dies mit dem Shareware Produkt
GhostScript der Firma Aladdin Enterprises auszuführen. Dazu
müssen Sie das Produkt GhostScript vom Internet laden und
installieren. Mit diesem Parameter definieren Sie das
Installationsverzeichnis des Produktes GhostScript. Falls
der Parameter nicht gesetzt ist, wird das
Installationsverzeichnis von GhostScript noch nach folgener
Reihenfolge gesucht: 1.Verzeichnis definiert mit der
Umgebungsvariable GS_LIB . 2. Annahme
GhostScript ist unter
ILTOOLS_DIR\redist\gs_x86
installiert. |
DEBUG | o | ON oder OFF, Default = OFF. Debugmodus ein oder aus. |
STATISTICS | o | ON oder OFF, Default = OFF. Statistik anzeigen. |
Mit der optionalen Map PSOUT_SYMBOL_CLIP können Freistellflächen für Symbole definiert werden. Diese Map beinhaltet folgende Definitionen:
MAP PSOUT_SYMBOL_CLIP
...
<symbol> => <ON|OFF>,[<color>],[<rand>],[<priority>],[<clipsymbol>],[<clipsymbolscale>]
...
DEFAULT => <ON|OFF>,[<color>],[<rand>],[<priority>],[<clipsymbol>],[<clipsymbolscale>]
END_MAP
<symbol>
Required. Definiert das Symbol für welches die Definition
gilt. Mit dem Eintrag DEFAULT
kann eine
Definition für alle anderen Symbole definiert werden.
<ON|OFF>
Required. Definiert ob das Symbol geclipt werden soll oder nicht.
<color>
Optional. Definiert die Farbe für die Clip-Fläche. Default=white.
<rand>
Optional. Definiert einen zusätzlichen Rand für die Clip-Fläche. Default=0.0.
<priority>
Optional. Definiert eine Priorität für die Clip-Fläche.
Default=identische Priorität wie die Priorität des
<symbol>
.
<clipsymbol>
Optional. Definiert ein Symbol für die Clip-Fläche. Default=kein Clipsymbol. Die Clip-Fläche wird aus dem Symbol bestimmt. Soll ein anderes Symbol als Clip-Fläche verwendet werden, so ist hier das enstprechende Symbol einzutragen..
<clipsymbolscale>
Optional. Definiert eine Scalierung für die Clipp-Fläche,
die aus dem <clipsymbol>
bestimmt
wird. Default=identische Skaliering wie die Skalierung des
<symbol>
. Diese Skalierung skaliert
die Skalierung des <symbol>
. Diese
Skalierung ist keine absolute Skalierung, sondern eine relative
Skalierung des bereits skalierten Symbols
<symbol> .
Beispiel einer Definition:
MAP PSOUT_SYMBOL_CLIP ! <symbol> => <ON|OFF>,[<color>],[<rand>],[<priority>],[<clipsymbol>],[<clipsymbolscale>] 097055 => OFF ! Koordinatenkreuz DEFAULT => ON END_MAP
Siganturen (Symbole, Farben, etc.) können als
Signatur-Bibliotheken von INTERLIS Dateien im Modell
ILTOOLS_DIR\system\symb\Symbology.ili
verwendet
werden. Im demselben Directory sind diverse Beispiel solcher
Signatur-Bibliotheken. Um Signatur-Bibliotheken zu erstellen, gibt es
diverse Wege. In der Regel sind Signaturen wie zum Beispiel Symbole
bereits in einem CAD-System vorhanden. Mit einer Konfiguration
CAD-System zu INTERLIS können solche Symbole nach INTERLIS transferiert
werden.
Einleitung
Sie können bei den Textelementen True Type Fonts verwenden.
Installation
Falls der True Type Font noch nicht in Windows installiert ist, installieren Sie den Font mit
Windows > Systemsteuerung > Schriftarten > Datei
> Neue Schriftwart Installieren ...
Zum Beispiel die Cadastra Schriftarten, die unter
ICS_DIR\system\font
Ca.ttf
CadastraBd.ttf
CadastraIt.ttf
CaBI.ttf
CadastraSymbol.ttf
CadastraMask.ttf
abgelegt sind.
Namen
Bei der Verwendung der True Type Fonts in einer Konfiguration müssen Sie die Namen der Fonts wie folgt verwenden.
Beispiel Font:
Font Arial | |
True Type Font Name | ICS Konfiguration Name |
Arial | Arial |
Arial Bold | Arial-Bold |
Arial Italic | Arial-Italic |
Arial Italic Bold | Arial-BoldItalic |
Speziell beim Cadastra Font folgende Namen verwenden:
Font Cadastra | |
True Type Font Name | ICS Konfiguration Name |
Cadastra | Cadastra-Roman |
Cadastra Bold | Cadastra-Bold |
Cadastra Italic | Cadastra-Italic |
Cadastra Italic Bold | Cadastra-BoldItalic |
CadastraSymbol | CadastraSymbol |
CadastraSymbol Mask | CadastraSymbol-Mask |
Mask
Fonts können maskiert werden. Verwenden Sie im
Fontnamen den Suffix Masked
.
Beispiel:
Arial-BoldMasked
Verwendung
Der Font wird wie folgt angewendet:
... => PSOUT_WRITE_TEXT12,IN.Objekt.Name,IN.Pos, IN.Ori,IN.HAli,IN.VAli,Arial-Bold,2.0,black,,0.0,0.06,4
Für die Transformation der PostScript Files in ein anderes Format
PDF,JPG,TIF,etc. ist der Modul vorbereitet, dies mit dem Shareware
Produkt GhostScript der Firma Aladdin Enterprises auszuführen. Dazu
müssen Sie das Produkt GhostScript vom Internet laden und installieren.
Mit dem PSOUT_PARAM.GS_LIB
definieren Sie das
Installationsverzeichnis des Produktes GhostScript. Falls der Parameter
nicht gesetzt ist, wird das Installationsverzeichnis von GhostScript
noch nach folgener Reihenfolge gesucht: 1.Verzeichnis definiert mit der
Umgebungsvariable GS_LIB
. 2. Annahme GhostScript ist
unter ILTOOLS_DIR\redist\gs_x86
installiert.
Komponente | req/opt | Beschreibung |
OUT.TYPE(s) | r | Typ des Objekts. |
OUT.PRIORITY(i) | r | Priorität des Objekts. Ein Objekt mit der Priorität n wird über ein Objekt mit der Priorität n-1 gezeichnet. |
OUT.COLOR(i) | o | Farbe des Objekts. Integer als RGB Werte in der Form (R*256*256) + (G*256) + B wobei R,G oder B einen Wert von 0 bis 255 aufweist. |
OUT.TYPE =
'POLYLINE'
Komponente | req/opt | Beschreibung |
OUT.GEOM(l) | r | Linien-Geometrie des Objekts. |
OUT.LSTYLE(s) | o | Linestyle des Objektes. Unterstützt werden
continuous ,
dotted ,
dashed ,
dash.dot ,
dash.dot.dot ,
dot.dash.dash . |
OUT.WIDTH(r) | o | Breite des Objekts. |
OUT.TYPE =
'POLYGON'
Komponente | req/opt | Beschreibung |
OUT.GEOM(a) | r | Flächen-Geometrie des Objekts. |
OUT.TYPE =
'TEXT'
Komponente | req/opt | Beschreibung |
OUT.GEOM(p) | r | Punkt-Geometrie des Objekts. |
OUT.TXT(s) | r | Text des Objekts. |
OUT.FONT(s) | r | Font des Objekts. z.B.
Helvetica ,
Helvetica-Oblique ,
Helvetica-Bold ,
Helvetica-BoldOblique , etc. Mit
dem Suffix Masked zum Font kann
definiert werden, dass der Font "maskiert" (d.h.
freigestellt) werden soll. |
OUT.ROT(r) | o | Orientierung des Objekts. |
OUT.HEIGHT(r) | o | Höhe des Objekts. |
OUT.HEIGHT(r) | o | Höhe des Objekts. |
OUT.XSCALE(r) | o | Horizontale Streckung des Objekts. |
OUT.SLANT(r) | o | Slant des Objekts. |
OUT.HALI(i) | o | Horizontales Alignment des Objekts. |
OUT.VALI(i) | o | Vertikales Alignment des Objekts. |
OUT.TYPE =
'CLIP'
Komponente | req/opt | Beschreibung |
OUT.GEOM(a) | r | Flächen-Geometrie des Objekts. In der Regel ist nur eine Clip-Fläche zu schreiben. Die Clip-Fläche definiert, welches Gebiet der Daten dargestellt werden soll. Die Clip-Fläche ist nur wirksam für Objekte, die eine höhere Priorität n+i als die Clip-Fläche n haben. |
Prozedur | PSOUT_OPEN ! [s input][] |
Beschreibung | Öffnet eine neue PostScript
Datei <input> und initialisiert den
Modul. Die Prozedur wird on RUN1 automatisch
aufgerufen. |
Beispiel |
|
Prozedur | PSOUT_CLOSE ! [][] |
Beschreibung | Schliesst den Modul und gibt die durch den Modul belegten Resourcen wieder frei. Die Prozedur wird von RUN1 automatisch aufgerufen. |
Beispiel |
|
Prozedur | PSOUT_WRITE_POLYLINE5 ! l geometrie, s lstyle, s color, r width, i priority |
Beschreibung | Schreibt eine Linien-Geometrie.
Die Prozedur erwartet 5 Argumente. Die Farbe
color ist ein Stringwert einer Farbe in
den mit PSOUT_PARAM.SYMBOLOGY[<n>]
definierten Signatur-Bibliotheken. Der Wert von
lstyle kann auch ein Pattern aufweisen.
Ein Pattern wird definiert mit
pattern(l1/l2/l3...) zum Beispiel
pattern(5.0/0.5/0.5/0.5) . Der 1. Eintrag
im Pattern definiert die Länge des 1. Liniensegmentes. Der
2. Eintrag im Pattern definiert die Distanz vom Ende des 1.
zum Anfang des 2. Lininesegment. Der 3. Eintrag im Pattern
definiert die Länge des 2. Liniensegmentes. Der 4. Eintrag
im Pattern definiert die Distanz vom Ende des 2. zum Anfang
des 3. Lininesegment. Und so weiter bis zum Ende des
Patterns, danach wiederholt sich das Pattern. |
Beispiel |
|
Prozedur | PSOUT_WRITE_POLYGON3 ! a geometrie, s color, i priority |
Beschreibung | Schreibt eine
Flächen-Geometrie. Die Prozedur erwartet 3 Argumente. Die
Farbe color ist ein Stringwert einer
Farbe in den mit
PSOUT_PARAM.SYMBOLOGY[<n>]
definierten Signatur-Bibliotheken. |
Beispiel |
|
Prozedur | PSOUT_WRITE_TEXT12 ! s text, p geometrie, rot rotation, i halignment, i valignment, s font, r height, s color, r xscale, r slant, r width, i priority |
Beschreibung | Schreibt einen Text. Die
Prozedur erwartet 12 Argumente. Die color
Farbe ist ein Stringwert einer Farbe in den mit
PSOUT_PARAM.SYMBOLOGY[<n>]
definierten Signatur-Bibliotheken. Der Font
font ist ein PostScript-Font oder ein
unter ILTOOLS_DIR\system\font\*.fd
definierter Vektor-Font. Vektor-Fonts werden in Polylines
aufgelöst und als Polylines geschrieben. Mit
width kann bei solchen Vektor-Fonts die
Breite der Polylines als Faktor zur Höhe
height des Text definiert werden. Die
Breite der Polyline ergibt sich aus
height*width . |
Beispiel |
|
Prozedur | PROCEDURE PSOUT_WRITE_SYMBOL7 ! p geometrie, rot rotation, s symbol, s color, r scale, r width, i priority |
Beschreibung | Schreibt ein Symbol. Die
Prozedur erwartet 7 Argumente. Die Farbe color
ist ein Stringwert einer Farbe in den mit
PSOUT_PARAM.SYMBOLOGY[<n>]
definierten Signatur-Bibliotheken. Das Symbol
symbol ist ein Stringwert eines Symbols
in den mit
PSOUT_PARAM.SYMBOLOGY[<n>]
definierten Signatur-Bibliotheken. Mit width
wird die Breite der Polylines des Symbols als
Faktor zur Skalierung scale des Symbols
definiert. Die Breite der Polylines ergibt sich aus
scale*width . |
Beispiel |
|
Prozedur | PROCEDURE PSOUT_WRITE_JPG6 ! a geometrie, r rotation, r width, r height, s image, i priority |
Beschreibung | Schreibt ein JPG-Bild. Die
Prozedur erwartet 6 Argumente. Die Fläche geometrie
für das Bild. Die Rotation
rotation des Bildes. Die Breite
width und Höhe height
des Bildes. Das File image des Bildes.Der
Pfad des Bildes kann absolut oder relativ zu
ICS_DIR sein. |
Beispiel |
|
Prozedur | PSOUT_WRITE_CLIP2 ! a geometrie, i priority |
Beschreibung | Schreibt eine Clip-Flächen-Geometrie. Die Prozedur erwartet 2 Argumente. In der Regel ist nur eine Clip-Fläche zu schreiben. Die Clip-Fläche definiert, welches Gebiet der Daten dargestellt werden soll. Die Clip-Fläche ist nur wirksam for Objekte, die eine höhere Priorität n+i als die Clip-Fläche n haben. |
Beispiel |
|
! Diese ICS Konfiguration schreibt von ilin.mod ! gelesenen Objekte mit psout.mod in eine PostScript ! Datei und wandelt diese in ein PDF-File. |LICENSE \license\iltoolspro.lic MAP ILIN_PARAM INTERLIS_DEF => \models\dm01avch24d.ili LOG_TABLE => ON TRACE => OFF STATISTICS => ON CALC_SURFACE => ON END_MAP MAP ILIN_TOPO DEFAULT => OFF END_MAP MAP PSOUT_PARAM FILE_FORMAT => pdf SYMBOLOGY1 => \symb\symbology.itf SYMBOLOGY2 => \symb\av.itf SYMBOLOGY3 => \symb\av2.itf GS_LIB => c:\ghostscript STATISTICS => ON END_MAP MAP PLOT_PARAM TYPE => PLOT FORMAT => A4 FORMATORIENTATION => hoch ORIGIN => '675855/245385' ANGLE => 45.0 SCALE => '1:500' COORDCROSS => ON COORDBAND => ON SCALEBAND => ON ADJUST => ON END_MAP MAP PLOT_LAYOUT ! Format,hoch|quer,Massstab A0,quer,* => \plot\a0q500.itf A0,hoch,* => \plot\a0h500.itf A1,quer,* => \plot\a1q500.itf A1,hoch,* => \plot\a1h500.itf A2,quer,* => \plot\a2q500.itf A2,hoch,* => \plot\a2h500.itf A3,quer,* => \plot\a3q500.itf A3,hoch,* => \plot\a3h500.itf A4,quer,* => \plot\a4q500.itf A4,hoch,* => \plot\a4h500.itf DEFAULT => \plot\a4h500.itf END_MAP MAP PLOT_COORDCROSS_WIDTH '1:250' => 50.0 '1:500' => 50.0 '1:1000' => 50.0 DEFAULT => 100.0 END_MAP MAP PLOT_SCALEBAND_WIDTH '1:250' => 12.0 '1:500' => 20.0 '1:1000' => 40.0 END_MAP MAP PLOT_VALUES PLOT_PARAM.SCALE => OPT.massstab PLOT_DATE => OPT.datum 'Demogemeinde' => OPT.gemeinde END_MAP MAP PLOT_WRITE_OBJECT Plot_Elemente,Border_Flaeche => OFF Plot_Elemente,Clipp_Flaeche => PSOUT_WRITE_CLIP2,IN.Geometrie,-1001 Plot_Elemente,Flaeche => PSOUT_WRITE_POLYGON3,IN.Geometrie,white,-1005,PSOUT_WRITE_POLYLINE5,IN.Geometrie,continuous,black,0.05,-1004 Plot_Elemente,Linie => PSOUT_WRITE_POLYLINE5,IN.Geometrie,continuous,black,0.05,-1004 Plot_Elemente,Text => PSOUT_WRITE_TEXT12,IN.Text,IN.Geometrie,IN.Ori,IN.HAli,IN.VAli,IN.Font,IN.Height,black,,IN.Slant,,-1003 Plot_Elemente,Bild => PSOUT_WRITE_JPG6,IN.Geometrie,IN.Ori,IN.Width,IN.Height,IN.Bild,-1003 Plot_Elemente,Symbol_Linie => PSOUT_WRITE_POLYLINE5,IN.Geometrie,continuous,black,0.05,-1004 Plot_Elemente,Symbol_Flaeche => PSOUT_WRITE_POLYGON3,IN.Geometrie,black,-1005 Plot_Generiert,Koordinatenkreuz => PSOUT_WRITE_SYMBOL7,IN.Geometrie,IN.Ori,097055,black,IN.Scale,,100001 Plot_Generiert,Koordinatenband_Linie => PSOUT_WRITE_POLYLINE5,IN.Geometrie,continuous,black,0.05,100001 Plot_Generiert,Koordinatenband_Text => PSOUT_WRITE_TEXT12,IN.Text,IN.Geometrie,IN.Ori,IN.HAli,IN.VAli,Helvetica,IN.Height,black,,IN.Slant,,100001 Plot_Generiert,Skalierungsband_Clipp_Flaeche => PSOUT_WRITE_POLYGON3,IN.Geometrie,white,100001 Plot_Generiert,Skalierungsband_Border_Linie => PSOUT_WRITE_POLYLINE5,IN.Geometrie,continuous,black,0.05,100001 Plot_Generiert,Skalierungsband_Block_Flaeche1 => PSOUT_WRITE_POLYLINE5,IN.Geometrie,continuous,black,0.05,100001 Plot_Generiert,Skalierungsband_Block_Flaeche2 => PSOUT_WRITE_POLYGON3,IN.Geometrie,black,100001 Plot_Generiert,Skalierungsband_Text => PSOUT_WRITE_TEXT12,IN.Text,IN.Geometrie,IN.Ori,IN.HAli,IN.VAli,Helvetica,IN.Height,black,,IN.Slant,,100001 END_MAP MAP INPUT_SOURCES I1 => ILTOPO,OPT.input END_MAP MAP INOUT I1 => IN.TOPIC,IN.TABLE I1,FixpunkteKategorie3,LFP3Pos => GD_T_1 I1,FixpunkteKategorie3,LFP3Symbol => GD_S_1 I1,* => OFF END_MAP MAP MACRO GD_S_1 => PSOUT_WRITE_SYMBOL7,IN.LFP3Symbol_von.Geometrie,IN.Ori,GP,black,0.6,,50 GD_T_1 => PSOUT_WRITE_TEXT12,IN.LFP3Pos_von.Nummer,IN.Pos,IN.Ori,IN.HAli,IN.VAli,Helvetica,1.5,black,,15.0,,60 END_MAP |INCL \script\plot.mod |INCL \script\ilTOPO.mod |INCL \script\psout.mod |INCL \script\il2ps\il2ps.prg