SvgCom Komponente für Windows- 95/98, NT, ME und 2000
ISSB SvgCom (SVG: Scalable Vector Graphics) ist eine ActiveX-Komponente, mit der sich SVG-Grafiken
erstellen und manipulieren lassen.
Die Funktionalität erstreckt sich nicht über die gesamte Vielfalt und
Leistungsfähigkeit von SVG. Es werden nur einige SVG-Elemente, wie z. B. Rect,
Line, Circle, Ellipse, Polyline und Polygon unterstützt. Tags, wie
desc, title und text können durch entsprechende Methoden in die SVG-Grafik an
entsprechende Positionen eingefügt werden. SVG-Elemente können mit
der Methode RemoveSvgElement entfernt werden. SVG-Elemente können
gruppiert oder einer Gruppe hinzugefügt werden. Jedem neu erstellten
SVG-Element können zusätzliche Attribute übergeben werden.
Beliebige andere SVG-Elemente können mit der Methode
InsertSvgElement in die SVG-Datei eingefügt werden. Hierbei müssen
die in W3C -> SVG-Elemente angegebenen Spezifikationen als
Attribute angegeben werden.
Eine ausführliche Beschreibung ist bei www.w3c.org
unter SVG zu finden. Mögliche Attribute und Angaben zu Maßeinheiten
und Datentypen liegen unter http://www.w3.org/TR/SVG/struct.html
und http://www.w3.org/TR/SVG/types.html.
Die clientseitige Anzeige wurde nicht implementiert. Die Komponente
kann lediglich zur Erstellung und Manipulation von SVG-Dateien genutzt
werden. Als SVG-Viewer kann z. B. MS Internet Explorer der aktuellen
Version genutzt werden.
Objekterstellung der SvgCom-Komponente
in ASP-Seiten
Set obj =
Server.CreateObject("ISSB.SvgGraphic")
' Zerstörung
Set obj = Nothing
im C++ Client
#import "[dir\]SvgCom.dll"
ISvgGraphicPtr m_pSvg;
if (SUCCEEDED(m_pSvg.CreateInstance("ISSB.SvgGraphic")))
{
// Nutzung der Methoden und
Eigenschaften
m_pSvg->Methode
}
else
// Fehler, Komponente konnte nicht erzeugt
werden!
// Zerstörung
m_pSvg = NULL;
Methoden
- string CreateSvgNumberWithUnit (double Number, string Unit)
Generiert eine Maßangabe der in www.w3c.org
vorgeschriebenen Form und gibt sie als String zurück. Unit ist
optional und entspricht der Maßeinheit z. B. cm, pt oder px.
Aus den Übergabeparametern Number: 13.22700000 und Unit:
"cm" generiert die Methode die Zeichenfolge 13.227cm.
Aus den Übergabeparametern Number: 000.22700000 und keine Angabe
in Unit generiert die Methode die Zeichenfolge .227.
- long GetSvgElementCount()
Gibt die Anzahl geladener
SVG-Elemente an, die in einer internen Indexliste aufgenommen wurden.
- InsertSvgCircle (CX, CY, R, string Attributes, string
InsToSvgElemWithName, string InsToSvgElemWithID)
Fügt einen SVG-Kreis in die in InsToSvgElemWithName angegebene Gruppe
oder an das Ende der SVG-Datei ein. Der Kreis wird an die Position
CX, CY mit Radius R eingefügt. CX, CY und R können
Gleitkommazahlen mit und ohne Maßeinheiten sein.
Die Angabe Attributes ist optional und gibt zusätzliche Attribute
an.
Die Parameter InsToSvgElemWithName und InsToSvgElemWithID sind
ebenfalls optional und geben bei InsSvgElemWithName: g die Gruppe
oder andernfalls ein beliebiges Element an, in die/das der Kreis
eingefügt wird.
- InsertSvgDesc (string Text, string Attributes, string
InsToSvgElemWithName, string InsToSvgElemWithID)
Fügt einen desc-Tag in die in InsToSvgElemWithName angegebene Gruppe
oder an das Ende der SVG-Datei ein.
Die Angabe Attributes ist optional und gibt zusätzliche Attribute
an.
Die Parameter InsToSvgElemWithName und InsToSvgElemWithID sind
ebenfalls optional und geben bei InsSvgElemWithName: g die Gruppe
oder andernfalls ein beliebiges Element an, in die/das der
desc-Tag eingefügt werden soll.
Ein desc-Tag wird immer an Index 0 der angegebenen Gruppe oder der
SVG-Hauptgruppe eingefügt.
- InsertSvgElement (string Name, string Attributes,
string InnerText, string InsToSvgElemWithName, string
InsToSvgElemWithID, long Index)
Fügt ein beliebiges SVG-Element in die SVG-Datei ein.
Die Angabe Attributes ist optional und gibt zusätzliche Attribute
an.
Die Parameter InsToSvgElemWithName und InsToSvgElemWithID sind
ebenfalls optional und geben bei InsSvgElemWithName: g die Gruppe
oder andernfalls ein beliebiges Element an, in die/das das Element
eingefügt wird.
Der Parameter Index ist 0-basierend und ebenfalls optional und
gibt die Stelle an, an der das Element in der angegebenen Gruppe
platziert werden soll. Standardwert ist -1. Bei Angaben kleiner 0
wird das Element hinter das letzte Element dieser Gruppe
eingefügt.
Wird keine Gruppe und/oder keine ID angegeben, wird das neue
Element in die SVG-Hauptgruppe eingefügt.
- InsertSvgEllipse (CX, CY, RX, RY, string Attributes,
string InsToSvgElemWithName, string InsToSvgElemWithID)
Fügt eine SVG-Ellipse in die in InsToSvgElemWithName angegebene Gruppe
oder an das Ende der SVG-Datei ein. Die Ellipse wird an die
Position CX, CY mit X-Radius RX und Y-Radius RY eingefügt.
CX, CY, RX und RY können Gleitkommazahlen mit und ohne
Maßeinheiten sein.
Die Angabe Attributes ist optional und gibt zusätzliche Attribute
an.
Die Parameter InsToSvgElemWithName und InsToSvgElemWithID sind
ebenfalls optional und geben bei InsSvgElemWithName: g die Gruppe
oder andernfalls ein beliebiges Element an, in die/das die Ellipse
eingefügt wird.
- InsertSvgGroup (string ID, string Ext Attributes,
string InnerText, string InsToSvgElemWithName, string
InsToSvgElemWithID)
Fügt eine SVG-Gruppe in die SVG-Datei ein.
Der Parameter ID gibt eine eindeutige ID (Zahl oder string) an. Es
kann eine leere Zeichenfolge übergeben werden. Um die Gruppe
eindeutig zu identifizieren und wiederzufinden, sollte aber eine
ID angegeben werden.
Die Angabe ExtAttributes ist optional und gibt zusätzliche
Attribute an.
Die Parameter InsToSvgElemWithName und InsToSvgElemWithID sind
ebenfalls optional und geben bei InsSvgElemWithName: g die Gruppe
oder andernfalls ein beliebiges Element an, in die/das das
Group-Element eingefügt wird.
- InsertSvgLine (X1, Y1, X2, Y2, string Attributes,
string InsToSvgElemWithName, string InsToSvgElemWithID)
Fügt eine SVG-Linie in die in InsToSvgElemWithName angegebene Gruppe
oder an das Ende der SVG-Datei ein.
Die Linie wird an von Position X1, Y1 zur Position X2, Y2 gezogen.
X1, Y1, X2 und Y2 können Gleitkommazahlen mit und ohne
Maßeinheiten sein.
Die Angabe Attributes ist optional und gibt zusätzliche Attribute
an.
Die Parameter InsToSvgElemWithName und InsToSvgElemWithID sind
ebenfalls optional und geben bei InsSvgElemWithName: g die Gruppe
oder andernfalls ein beliebiges Element an, in die/das die Linie
eingefügt wird.
- InsertSvgPolygon (string Points, string Attributes,
string InsToSvgElemWithName, string InsToSvgElemWithID)
Fügt ein geschlossenes SVG-Vieleck in die in InsToSvgElemWithName angegebene Gruppe
oder an das Ende der SVG-Datei ein.
Die in Points angegebenen Punkt-Paare werden in der Form
"100,110 200,130 220,140" oder "100.23cm,110.45cm
200.21cm,130.67cm" angegeben. Ein Punktpaar wird durch Komma
getrennt. Aufeinanderfolgende Punktpaare werden durch Leerzeichen
getrennt. Es können Gleitkommazahlen (mit Punkt getrennt) mit und
ohne Maßeinheiten angegeben werden.
Die Angabe Attributes ist optional und gibt zusätzliche Attribute
an.
Die Parameter InsToSvgElemWithName und InsToSvgElemWithID sind
ebenfalls optional und geben bei InsSvgElemWithName: g die Gruppe
oder andernfalls ein beliebiges Element an, in die/das das Vieleck
eingefügt wird.
- InsertSvgPolyline (string Points, string Attributes,
string InsToSvgElemWithName, string InsToSvgElemWithID)
Diese Methode verhält sich analog zu InsertSvgPolygon. Hierbei
werden aber Punkte angegeben, die eine Mehrpunktlinie ergeben. Es
wird kein geschlossenes Vieleck dargestellt. Anfangs- und Endpunkt
können auf verschiedenen Positionen liegen.
- InsertSvgRect (X, Y, Width, Height, RX, RY, string Attributes,
string InsToSvgElemWithName, string InsToSvgElemWithID)
Fügt ein SVG-Rechteck in die in InsToSvgElemWithName angegebene Gruppe
oder an das Ende der SVG-Datei ein.
Das Rechteck wird an von Position X, Y mit Breite Width und Höhe
Height positioniert.
Bei Angabe der optionalen Parameter RX und/oder RY werden die
Ecken mit angegebenen Radius abgerundet.
X, Y, Width, Height, RX und RY können Gleitkommazahlen mit und
ohne Maßeinheiten sein.
Die Angabe Attributes ist optional und gibt zusätzliche Attribute
an.
Die Parameter InsToSvgElemWithName und InsToSvgElemWithID sind
ebenfalls optional und geben bei InsSvgElemWithName: g die Gruppe
oder andernfalls ein beliebiges Element an, in die/das das
Rechteck eingefügt wird.
- InsertSvgText (string Text, X, Y, FontSize, string FontFamily,
string ExtAttributes, string InsToSvgElemWithName, string
InsToSvgElemWithID)
Fügt einen SVG-Text in die in InsToSvgElemWithName angegebene Gruppe
oder an das Ende der SVG-Datei ein.
X, Y und FontSize können Gleitkommazahlen mit und ohne
Maßeinheiten sein und sind optional.
Der Parameter FontFamily ist ebenfalls optional und gibt die
Schriftart an.
Die Angabe Attributes ist optional und gibt zusätzliche Attribute
an.
Die Parameter InsToSvgElemWithName und InsToSvgElemWithID sind
ebenfalls optional und geben bei InsSvgElemWithName: g die Gruppe
oder andernfalls ein beliebiges Element an, in die/das der Text
eingefügt werden soll.
- InsertSvgTitle (string Text, string Attributes, string
InsToSvgElemWithName, string InsToSvgElemWithID)
Fügt einen title-Tag in die in InsToSvgElemWithName angegebene Gruppe
oder an das Ende der SVG-Datei ein.
Die Angabe Attributes ist optional und gibt zusätzliche Attribute
an.
Die Parameter InsToSvgElemWithName und InsToSvgElemWithID sind
ebenfalls optional und geben bei InsSvgElemWithName: g die Gruppe
oder andernfalls ein beliebiges Element an, in die/das der
title-Tag eingefügt werden soll.
Ein title-Tag wird immer an Index 0 der angegebenen Gruppe oder
der SVG-Hauptgruppe eingefügt.
- InsertXmlComment (string Comment, string
InsToSvgElemWithName, string InsToSvgElemWithID, long Index)
Fügt einen Kommentar in die in InsToSvgElemWithName angegebene Gruppe
oder an das Ende der SVG-Datei ein.
Die Parameter InsToSvgElemWithName und InsToSvgElemWithID sind
optional und geben bei InsSvgElemWithName: g die Gruppe oder
andernfalls ein beliebiges Element an, in die/das der title-Tag
eingefügt werden soll.
Index ist optional und gibt die Stelle an, an der der Kommentar
eingefügt wird. Standardwert ist -1. Bei Werten kleiner 0 wird
der Kommentar an die letzte Stelle der angegebenen Gruppe oder der
SVG-Hauptgruppe angefügt.
- long Load (string Filename)
Lädt die in Filename angegebene SVG-Datei und gibt die Anzahl
gelesener Daten in Bytes zurück.
- long RemoveSvgElement (string Name, string ID, bool
FirstOnly)
Entfernt das in
Namen und/oder ID angegebene SVG-Element. Bei FirstOnly: True wird
nur das erste gefundene Element entfernt, ansonsten alle.
FirstOnly ist optional. Der Standardwert ist False.
- long Save (string Filename)
Speichert die SVG-Datei unter in Filename angegebene Dateinamen
und gibt die Anzahl geleschriebener Daten in Bytes zurück.
Eigenschaften
- string SvgAttributes string
Gibt zusätzliche Attribute des SVG-Hauptelementes an. Diese
Attribute werden in den SVG-Tag <svg ... attr> eingefügt.
Eine Änderung der Attribute wird nur bei Neuerstellung einer
SVG-Grafik wirksam.
- string SvgContentType
gibt den SVG-Content-Typ als festen Wert an. Wert ist "image/svg+xml".
Dieser Wert kann nur gelesen werden.
- string,double SvgHeight string,double
Gibt die Höhe der SVG-Grafik an. Dieses Attribut wird im
SVG-Tag <svg height="9x" ...> eingefügt. Die
Angabe erfolgt ohne den Attributnamen height= und kann als
Gleitkommazahl mit und ohne Maßeinheit angegeben werden. Eine
Änderung des Attributes wird nur bei Neuerstellung einer
SVG-Grafik wirksam.
- string SvgSource string
Gibt den Quelltext der SVG-Grafik an. Es kann ein völlig neuer
gültiger Quelltext übergeben werden. Dabei werden alle evtl.
vorher vorhandenen SVG-Elemente entfernt.
- string,double SvgWidth string,double
Gibt die Breite der SVG-Grafik an. Dieses Attribut wird im
SVG-Tag <svg width="9x" ...> eingefügt. Die
Angabe erfolgt ohne den Attributnamen width= und kann als
Gleitkommazahl mit und ohne Maßeinheit angegeben werden. Eine
Änderung des Attributes wird nur bei Neuerstellung einer
SVG-Grafik wirksam.
- string XmlDocType string
Gibt den XML-Dokument-Typ an.
Standartwert ist <!DOCTYPE svg>
- string XmlHeader string
Gibt den XML-Header an.
Standartwert ist <?xml version="1.0" standalone="yes"?>
ASP-Beispiel
Im Beispiel wird eine neue
SVG-Grafik erzeugt, als Datei gespeichert und im Browser angezeigt.
SvgTest.asp
<%
Set oSvg =
Server.CreateObject("ISSB.SvgGraphic")
' lBytes = oSvg.Load("c:\temp\test.svg")
oSvg.SvgWidth = "8cm"
oSvg.SvgHeight = "8cm"
oSvg.InsertSvgTitle "Testtext"
oSvg.InsertSvgText "Testtext",
50, 4 0, 20,
"Arial", "fill=""red"""
oSvg.InsertSvgRect 20, 80,
250, 110, 20, ""
, "stroke=""blue"""
oSvg.InsertSvgEllipse 140, 230, 100, 40, "fill=""green""" oSvg.InsertSvgLine 10, 10, 280, 280, "stroke=""yellow"" stroke-width=""6"""
oSvg.Save "c:\temp\test2.svg"
' Inhalt kann auch
ausgegeben werden, ohne dass die Datei gespeichert wird
Response.ContentType = oSvg.SvgContentType
Response.Write oSvg.SvgSource
Set oSvg =
Nothing
%>
Ergebnis testen...
Installation
- Komponente laden... (Bitte
nur laden und installieren, wenn Sie die Nutzungsbedingungen
gelesen haben.)
- Komponente auspacken und die Datei SvgCom.dll in ein
beliebiges lokales Verzeichnis kopieren...
- regsvr32 [komponenten-dir]\SvgCom.dll ausführen...
komponenten-dir ist das Verzeichnis, in der
sich die DLL befindet.
Deinstallation
Um die Komponente zu deinstallieren, muss der Webserver (MS IIS)
beendet werden. Den Webserver kann man im Dienste-Manager beenden.
Dazu muss der IIS-Administrationsdienst beendet werden. Ein
"Anhalten"-Klick im Webserver-Manager (MS MMC) reicht nicht
aus.
Die Komponente wird mit regsvr32 [komponenten-dir]\SvgCom.dll
/u aus dem System entfernt.
Sie kann danach einfach aus dem Verzeichnis gelöscht werden.
[SvgCom Komponente herunterladen]
© 2003 ISSB. Alle
Rechte vorbehalten.
|