PDF-Einstellungen
In der Datei <GISX3HOME>/definitions/renderOptions.xml definiert der Administrator die dem Nutzer anzuzeigenden Optionen für die PDF-Ausgabe:
- Verfügbare Seitengrößen und Standardseitengröße
- Verfügbare Maßstäbe und Standardmaßstab
- Darstellung von Bemaßungen in PDF Ausgabe
- Standard-Druckvorlage. (Die verfügbaren Druckvorlagen sind wie unten beschrieben im Unterverzeichnis printtemplates zu definieren.)
Die Datei hat folgenden einfachen Aufbau:
<?xml version="1.0" encoding="UTF-8"?> <renderOptions xmlns="http://www.geograt.de/namespaces/gisx3/renderOptions/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <paperFormat> <name>A4</name> <width>210</width> <height>297</height> </paperFormat> <paperFormat> <name>A3</name> <width>297</width> <height>420</height> </paperFormat> <!-- usw. --> <defaultPaperFormat>A3</defaultPaperFormat> <scale>100</scale> <scale>200</scale> <!-- usw. --> <defaultScale>500</defaultScale> <defaultTemplate>Beispiel 2</defaultTemplate> <!-- Siehe printtemplates.xml --> <dimensioningStyles> <polygon> <lineWidth>3</lineWidth> <lineColor>#000000</lineColor> <lineOpacity>0.2</lineOpacity> <fillColor>#FF0000</fillColor> <fillOpacity>0.9</fillOpacity> </polygon> <labelText> <textColor>#0000FF</textColor> <fontFamily>Arial</fontFamily> <fontSize>16</fontSize> </labelText> <line> <lineWidth>10</lineWidth> <lineColor>#00FF00</lineColor> <lineOpacity>0.4</lineOpacity> </line> <labelHalo> <lineWidth>8</lineWidth> <lineColor>#FFFFFF</lineColor> <lineOpacity>0.9</lineOpacity> </labelHalo> </dimensioningStyles> </renderOptions>
- Mittels <paperFormat> wird ein Papierformat definiert. Hoch- und Querformat müssen nicht separat angegeben werden, es reicht die Angabe der Größe.
- Mittels <defaultPaperFormat> wird der Name des standardmäßig zu verwendenden Papierformats aus der vorigen Liste angegeben. (Es wird standardmäßig Hochformat verwendet.)
- Die Angaben <scale> und defaultScale> geben die dem Nutzer verfügbaren Maßstäbe (1:x) sowie den vorausgewählten Maßstab an, in obigem Fall 1:500.
- Mittels <defaultTemplate> wird der Name der vorauszuwählenden Druckvorlage angegeben. Diese muss in printtemplates.xml existieren, sonst wird die Angabe ignoriert und die Vorlage "Default" verwendet.
- Mittels <dimensioningStyles> erfolgt die Angabe wie Bemaßungen im PDF ausgegeben werden sollen
Darstellung Bemaßungen
Mittels <dimensioningStyles> (optional) kann die Ausgabe von Bemaßungen im PDF beeinflusst werden.
Polygon
Der Bereich <polygon> legt fest in welcher Form Flächenbemaßungen dargestellt werden. Alle Einstellungen sind optional.
Attribut | Beschreibung | Beispiel |
---|---|---|
lineWidth | Die Stärke der Umrandungslinie in Pixeln bei einer Ausgabe in 72 DPI. | 8 |
lineColor | Die Farbe der Umrandungslinie in HEX Notation ("#" + <rot> + <grün> + <blau>) | #FF0000 (Farbe Rot) |
lineOpacity | Die Transparenz der Umrandungslinie. Zulässig sind Werte von 0 (Vollständig durchsichtig) bis 1 (Keine Transparenz) | 0.9 |
fillColor | Die Farbe der Füllung in HEX Notation ("#" + <rot> + <grün> + <blau>) | #0000FF (Farbe Blau) |
fillOpacity | Die Transparenz der Füllung. Zulässig sind Werte von 0 (Vollständig durchsichtig) bis 1 (Keine Transparenz) | 0.1 |
Linie
Der Bereich <line> legt fest in welcher Form Linienbemaßungen dargestellt werden. Alle Einstellungen sind optional.
Attribut | Beschreibung | Beispiel |
---|---|---|
lineWidth | Die Stärke der Linie in Pixeln bei einer Ausgabe in 72 DPI. | 8 |
lineColor | Die Farbe der Linie in HEX Notation ("#" + <rot> + <grün> + <blau>) | #FF0000 (Farbe Rot) |
lineOpacity | Die Transparenz der Linie. Zulässig sind Werte von 0 (Vollständig durchsichtig) bis 1 (Keine Transparenz) | 0.9 |
Text
Der Bereich <labelText> legt fest in welcher Form Bemaßungstexte für Linien und Flächen dargestellt werden. Alle Einstellungen sind optional.
Attribut | Beschreibung | Beispiel |
---|---|---|
fontSize | Die Stärke der Linie in Pixeln bei einer Ausgabe in 72 DPI. | 8 |
textColor | Die Farbe der Linie in HEX Notation ("#" + <rot> + <grün> + <blau>) | #FF0000 (Farbe Rot) |
fontFamily | Der Name des zu verwendenden Fonts auf dem Server. Ein angegebener Font muss auf dem Server installiert sein. | Arial |
Zusätzlich gibt der Bereich <labelHalo> an, welcher Halo Effekt (Dient der Hervorhebung) hinter dem Bemaßungstext dargestellt werden kann.
Attribut | Beschreibung | Beispiel |
---|---|---|
lineWidth | Die Stärke (der Radius) der Halo-Linie in Pixeln bei einer Ausgabe in 72 DPI. | 8 |
lineColor | Die Farbe der Halo-Linie in HEX Notation ("#" + <rot> + <grün> + <blau>) | #FF0000 (Farbe Rot) |
lineOpacity | Die Transparenz der Halo-Linie. Zulässig sind Werte von 0 (Vollständig durchsichtig) bis 1 (Keine Transparenz) | 0.9 |
Migration der Druckvorlagen aus GISX 2.x
Im wesentlichen können Druckvorlagen aus GISX 2.x (WorldView) in GISX 3 verwendet werden, wobei nur das neuere Format (<template2>, s.u.) unterstützt wird.
Dateiname
Kopieren Sie hierzu ihre Vorlagen nach <GISX3HOME>/definitions/printtemplates.
Für die Anzeige entscheidend ist die Datei "printtemplates.xml" (Sie müssen vermutlich die Datei "wvprinttemplates.xml" umbenennen).
Namespace
Sämtliche XML-Dateien (Also auch elementcollections.xml, colorstyles.xml etc., falls vorhanden) sind um eine Namespace-Angabe zu erweitern:
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- Hier sind die Vorlagen definiert --> <printtemplates> <!-- Einbindung von anderen Dateien --> <includes> ...
... wird zu ...
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- Hier sind die Vorlagen definiert --> <printtemplates xmlns="http://www.geograt.de/namespaces/gisx3/printtemplates/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <!-- Einbindung von anderen Dateien --> <includes> ...
Beachten Sie die Angaben in Zeile 3 und 4.
Standardvorlage
Wenn in der Datei <GISX3HOME>/definitions/renderOptions.xml nicht anders festgelegt oder falls diese Datei fehlt, wird automatisch eine Vorlage mit dem Namen "Default" als Standardvorlage verwendet, d.h. diese Vorlage wird für die PDF-Ausgabe vorausgewählt.
Nicht mehr unterstützt
Folgende Angaben werden in GISX 3 nicht mehr unterstützt, bzw werden derzeit noch nicht unterstützt:
- Alte Druckvorlagen (<template>) - Ersetzen Sie diese durch neue (<template2>). Die Definition dazu können Sie folgender GISX2.x beiliegenden Dokumentation entnehmen: (25_GISXinfo_WorldView_Druckvorlagen_ab_V2.3_xxxx-xx-xx.pdf)
Verwendung von SQL Befehlen und relativen Pfadangaben bei Bildnamen:
<image> ... <src>.\\system\\icons\\geokopf.jpg</src> ... </image> ... <image> ... <src>SQL: select '$(JGISHOME)\\system\\icons\\geokopf.jpg' from dual</src> ... </image>
Ersetzen Sie derartige Angaben durch eine gültige Pfadangabe. Weitere Hinweise hierzu finden Sie im weiterein Verlauf dieses Kapitels.
Definition von Kartenbereichen als freies Polygon:
... <map> <location> <polygon> ...
Ersetzen Sie derartige Bereiche bitte durch ein passendes Rechteck:
... <map> <location> <box> ...
Unterstützung von <sql> in dynamischen Textbereichen.
<text> ... <dynamicContent space="true"> <label>Auszug vom</label><sql>select to_char(SYSDATE,'DD. Mon YYYY') from dual</sql> </dynamicContent>
Ersetzen Sie derartige Bereiche durch feste Texte.
Unterstützung der <value> Angaben "comment", "username" und "project" in <dynamicContent>:
<dynamicContent space="true"> <value>comment</value> </dynamicContent>
Diese Einschränkung wird voraussichtlich in Kürze entfallen.
Unterstützung von gedrehten Texten mittels <rotation>:
<text> ... <rotation>60.0</rotation> </text>
Neue Funktionen
Gegenüber den Druckvorlagen aus WorldView wurden einige wesentliche Verbesserungen eingebaut:
Angabe von Bilddateinamen
Bei der Verwendung von Bildern in Druckvorlagen können jetzt für den Bildnamen folgende Werte verwendet werden:
Sofern sich die Bilddatei in <GISX3HOME>/definitions/printtemplates befindet genügt der einfach Bildname.
... <image> ... <!-- logo.png befindet sich in GISX3HOME/definitions/printtemplates --> <src>logo.png</src> ... </image> ...
- Relative Pfadangaben zu <GISX3HOME>/definitions/printtemplates (z.B. beschreibt ../../images/logo.png das Bild <GISX3HOME>/images/logo.png)
Angabe von <GISX3HOME> mittels der Variable ${gisx3home} im Pfad.
... <image> ... <!-- logo.png befindet sich in GISX3HOME/images --> <src>${gisx3home}/images/logo.png</src> ... </image> ...
- Vollständige Pfadangaben (z.B. C:/temp/meinBild.png)
- http- bzw. https-Adressen, bei denen die Bilder dynamisch aus dem Netz geladen werden. (Internetverbindung vorausgesetzt.)
Variablen in Texten
Zukünftig können Sie in den Texten einer Druckvorlage direkt auf Variablen zugreifen, ohne dafür einzelne Inhalts-Tags in die Vorlage einbauen zu müssen. Damit entfällt auch die Notwendigkeit, dynamische Texte als <dynamicContent> statt <content> zu markieren.
Alt:
<text> ... <!-- Zeigt z.B. Text M = 1:100 an --> <dynamicContent space="false"> <label>M = 1:</label><value>scale</value> </dynamicContent> ... </text>
Neu:
<text> ... <!-- Zeigt z.B. Text M = 1:100 an --> <content>M = 1:${scale}</content> ... </text>
Bis auf die weiter oben beschriebenen Einschränkungen werden alle anderen Varianten bis auf weiteres unterstützt, können aber auch als Variable definiert werden.
Variablen geben Sie im <content>
Element in der Form "${" + Variablenname + "}"
an (z.B. ${scale}
für die Variable mit dem Namen scale
). Mehrere Variablen können in einem Text kombiniert werden.
Folgende Variablen stehen Ihnen aktuell zur Verfügung
- title := Enthält den Titel der für Die Ausgabe vom Benutzer angegeben wurde
- scale := Enthält den aktuellen Maßstab
- gisx3home := Beschreibt den Pfad zu <GISX3HOME> (Ist im Kontext von Bildnamen zu sehen und an dieser Stelle wahrscheinlich eher unüblich)
- project := Enthält den Namen des aktuellen Projekts, falls dieses über eine der Projektkonfigurationen gewählt worden ist.
Da es sich beim Inhalt des <content> Elements um ein Freemarker Template handelt, stehen Ihnen auch sämtliche eingebauten Variablen von FreeMarker in der Version 2.3.22 zur Verfügung. Eine Übersicht finden Sie unter http://freemarker.org/docs/ref_builtins.html. Hiermit lassen sich z.B. auch Datumsangaben formulieren:
<text> ... <content>${.now?string["dd.MM.yyyy, HH:mm"]}</content> ... </text>
Gibt das aktuelle Datum in der Form 23.12.2016, 15:22
aus.