SVG-Umfeld-FAQ

Hier finden Sie häufig gestellte Fragen zum SVG-Umfeld, also Browser, Editoren und Plug-Ins. Da ich aber in letzter Zeit wenig Zeit hatte mich damit zu beschäftigen, befindet sich dieser Teil der FAQ auf dem Stand vom SVG-Viewer 2. Ich werde mich aber bemühen die FAQ in nächster Zeit zu aktualisieren.

SVG 3.1 Plug-Ins und Browser

3.1.a
Wie kann der SVG-Viewer mit Netscape 6/Mozilla genutzt werden?
3.1.a Installieren Sie Netscape 4.x und den SVG-Viewer für Netscape. Im PlugIn-Verzeichnis von Netscape 4.x finden Sie dann die Dateien des SVG-Viewers:
  • NPSVGw.dll
  • SVGView.dll
  • SVGViewer.zip

Kopieren Sie diese drei Dateien in das PlugIn-Verzeichnis von Netscape 6 oder Mozilla.

3.1.b
Warum müssen ständig die Lizenzbedingungen des SVG-Viewers bestätigt werden?
3.1.b Wenn jedes Mal beim Anzeigen einer SVG-Grafik die Lizenzbedingungen des SVG-Viewer bestätigt werden müssen, ist bei Installation ein Fehler aufgetreten. Bei mir hat folgende Vorgehensweise geholfen.
  • Download der aktuellen Version von der Adobe-Webseite.
  • Deinstallation des SVG-Viewers über die Systemsteuerung von Windows.
  • Neustart des Rechners.
  • Installation der heruntergeladenen Version
  • Neustart des Rechners.
3.1.c
Was ist zu tun, um den Browsern die Anzeige mit dem <object>-Tag zu erleichtern?
3.1.c Nach einigen Tests habe ich die Formatierungen herausgefunden, die in der REgel dafür verantwortlich sind, dass weder die SVG-Grafik noch der alternative Inhalt angezeigt werden. Achten Sie beim erstellen des Codes auf folgende Punkte:
  • Positionieren Sie den <object>-Tag niemals mit Hilfe des style-Attributs, weder absolut noch relativ. Am besten vermeiden Sie das style-Attribut ganz. Netscape 4.x stellt sonst in vielen Fällen weder die SVG-Grafik noch den Alternativinhalt dar. Wenn eine absolute Positionierung notwendig ist, verwenden Sie einen <div>-Tag, in den Sie dann den <object>-Tag einfügen.
  • Legen Sie die Höhe der SVG-Grafik über das height-Attribut des <object>-Tags fest. Diese Angabe benötigt Netscape 6 zur Darstellung.
  • Legen Sie auch die Breite der SVG-Grafik über das width-Attribut fest. Diese Angabe benötigt der Internet Explorer.
  • Geben Sie als MIME-Typ nicht image/svg+xml an, sondern image/svg-xml. Nur dann stellt nämlich der Netscape 6 Browser die SVG-Grafik oder den alternativen Inhalt dar. Für Opera und neuere Netscape bzw. Mozilla-Versionen ist aber der korrekte MIME-Typ erforderlich. Sie sollten daher für die aktuellen Browser auf jeden Fall image/svg+xml angeben um die aktuellen Browserversionen zu unterstützen.
  • Möchten Sie erreichen, dass auch der Internet Explorer den Inhalt des <object>-elements anzeigt, müssen Sie auf den MIME-Typ ganz verzichten.

Ein optimaler <object>-Tag könnte also folgendermaßen aussehen:

Listing 3.1.c

<object width="..." height="..." data="???.svg">Alternativinhalt</object>

Alternativ können Sie die Größe auch per CSS angeben, indem Sie das style-Attribut verwenden.

3.1.d
Warum werden Grafiken mit dem <object>-Tag nicht angezeigt?
3.1.d Einige Browser haben Schwierigkeiten damit, Inhalte des <object>-Tags mit Hilfe von Plug-Ins darzustellen. Das führt dazu, dass zwar die Grafik geladen wird aber nicht sichtbar ist. Betroffen sind davon:
  • Netscape Navigator 4.x (Windows)
  • Netscape 6/Mozilla (Windows)
  • Opera 5.x (Windows)
  • Internet Explorer 6 mit SVG-Viewer 3.03

Der Netscape Navigator hat nach meiner Erfahrung nur Probleme mit komplexeren Grafiken, während Opera und Netscape 6/Mozilla keine einzige Grafik mit dem <object>-Tag anzeigen. Adobe®  empfiehlt daher die Verwendung des <embed>-Tags.
Die oben aufgeführten Browser sind nur die, bei denen mir dieses Problem aufgefallen ist. Es ist daher nicht ausgeschlossen dass auch die Mac OS-Versionen oder Linux-Versionen der Browser diese Problem haben. Opera 7 und Netscape 7 haben diese Probleme nicht mehr, sofern Sie den richtigen MIME-Typ image/svg+xml angeben.

3.1.e
Warum funktionieren Skripte in der SVG-Grafik nicht?
3.1.e SVG-Grafiken, die mit dem SVG-Viewer angezeigt werden, verwenden die JavaScript-Implementation des Browser, um Skripte in der SVG-Grafik auszuführen. Daher muss der Browser den Zugriff auf seine JavaScript-Implementation erlauben. Wenn das nicht möglich ist, können die Skripte der Grafik nicht ausgeführt werden. Betroffen sind davon die Browser:
  • Internet Explorer für Mac OS
  • Opera
  • Netscape 6/Mozilla
3.1.f
Wie erfolgt die Installation des SVG-Viewers für Opera 5.x?
3.1.f Wenn der Internet Explorer, Netscape Navigator und der SVG-Viewer bereits installiert sind, wenn Opera installiert wird, scheint Opera die benötigten Plug-In-Dateien automatisch zu kopieren, zumindest ist keine separate Installation mehr notwendig und SVG-Dateien können angezeigt werden.

Ab der Version 8.0 unterstützt Opera aber von sich aus SVG, so dass gann gar kein Plug-In erforderlich ist.

3.1.g
Kann der SVG-Viewer als Steuerelement in anderen Anwendungen verwendet werden?
3.1.g Ja, Sie können den SVG Viewer für den Internet Explorer (für Windows) als ActiveX-Steuerelement verwenden und so in VB, VBA-Anwendungen und anderen Anwendungen verwenden. Ab dem SVG-Viewer 3.0 ist die Steuerungs mittels DOM jedoch kaum noch möglich.
3.1.h
Warum versucht Mozilla (+SVG/MathML) immer einen Download der SVG-Datei, obwohl diese mit dem richtigen MIME-Typ und dem <object>-Tag eingebunden ist?
3.1.h Tritt das Problem nur dann auf, wenn Sie die Seite über einen Webserver aufrufen, handelt es sich vermutlich um ein Serverkonfigurationsproblem. In diesem Fall können Sie das wie folgt testen, vorausgesetzt der Webserver unterstützt PHP.
  1. Erstellen Sie eine Kopie der SVG-Datei und geben Sie ihr die Dateinamenserweiterung .PHP.
  2. Öffnen Sie die Datei in einem Texteditor und ersetzen Sie die erste Zeile durch folgenden PHP-Code ein:

Listing: 3.1.h

<?

header("Content-type: image/svg+xml");

echo '<?xml version="1.0" encoding="iso-8859-1"?>' . "\n";

?>

Der Code sorgt dafür, dass die Datei mit dem MIME-Typ image/svg+xml an den Browser gesendet wird.

  1. Binden Sie nun die PHP-Datei anstelle der SVG-Datei mit dem <object>-Tag in die HTML-Seite ein.
  2. Veröffentlichen Sie nun die Dateien (die HTML- und die PHP-Datei) auf dem Server und führen Sie sie über das HTTP-Protokoll aus. Wird die Datei nun korrekt angezeigt, ist dies ein Indiz dafür, dass der Webserver SVG-Dateien standardmäßig mit dem veralteten MIME-Typ image/svg-xml an den Browser ausliefert. In diesem Fall bitten Sie Ihren Server-Administrator oder Ihren Provider darum für SVG-Dateien den richtigen MIME-Typ zu konfigurieren. Mein Provider (Host-Europe) hat das innerhalb eines Werktags erledigt.

Tipp: Sollte Ihr Admin/Provider diese Änderungen nicht machen können oder wollen bzw. können Sie das nicht ändern, haben aber PHP zur Verfügung, speichern Sie einfach alle SVG-Dateien als PHP-Dateien mit dem oben beschriebenen Code.

3.1.i
Ist es möglich eine SVG-Grafik vor Opera 8.x zu verbergen, wenn dieser Probleme mit der Darstellung hat?
3.1.i Wenn Sie verhindern möchten, dass Opera 8.x eine SVG-Grafik anzeigt it das ganz einfach. Geben Sie im object-Element zwar die Attribute width und height an, um die Größe der Grafik zu bestimmen, aber lassen Sie das type-Attribut weg. Dann zeigt Opera die Grafik nicht an.

Listing: 3.1.h

<object data="beispiele/wsseitenbanner.svg" id="bannersvg" width="400" height="55" >&nbsp;WWW.S-V-G.NET - Die SVG-FAQ</object>

SVG 3.2. Konverter und SVG-Grafikprogramme

3.2.a
Warum verändert WebDraw eingegebenen Code beim Speichern?
3.2.a. Jasc WebDraw unterstützt in der aktuellen Version 1.0 noch nicht alle SVG-Elemente und wandelt daher bestimmte Eingaben um. Bspw. werden alle Transformationen in Matrizen-Transformationen konvertiert und der Tag <circle>- wird zu <ellipse>- geändert.
3.2.b
Warum erzeugen Illustrator und CorelDraw 10 so große SVG-Dateien?
3.2.b. Eigentlich sind SVG-Dateien ja sehr klein, da sie nur aus Text bestehen. Allerdings nimmt mit der Menge des Textes natürlich auch die Größe der Datei zu. Mit beiden Programmen können Sie beim Export der SVG-Dateien festlegen, dass Schriften eingebettet oder Texte in Kurven umgewandelt werden sollen. Bei der Umwandlung in Kurven werden die Buchstaben der Texte in Pfade konvertiert. Das heißt für jeden Buchstaben muss ein Pfad gespeichert und natürlich auch bei der Anzeige wieder gezeichnet werden. Das führt einerseits zu langen Zeiten beim Rendern der Grafik, zum anderen aber auch zu extrem großen Dateigrößen. Sie sollten daher vermeiden Texte in Kurven umzuwandeln und Schriften in der Datei zu speichern um kleine Grafikdateien zu erhalten.

Die kleinsten Dateien erzeugen Sie auf jeden Fall, wenn Sie SVG-Grafiken mit einem einfachen ASCII- oder XML-Editor erfassen und keine grafischen Tools verwenden.

(c) 2003, Helma Spona, Dorfstr. 120c. 47647 Kerken-Stenden