-
svg dans xhtml
Bonjour à tous
J'ai une petit souci avec mon code java
en fait jai un document svg que je veux afficher a partir de xhtml, pour cela j'ai ma fonction processNode ci dessous qui me parcourt le document svg et affiche tous les elements de mon SVG sauf l'image de fond
Voici la description de l'element SVG
Element Img = (Element)document.createElement("image");
// Attacher l'image à la racine
svg.appendChild(Img);
// Adresse de l'image
Img.setAttribute("xlink:href", "carte-du-monde.jpg");
Img.setAttribute("x", "0"); // Position en x
Img.setAttribute("y", "0"); // Position en y
void processNode(
int type = node.getNodeType();
switch(type){
case Node.ELEMENT_NODE:{
case Node.DOCUMENT_NODE:{
Pourqu'oi n'arrive t'il pas a afficher l'image? Est ce un probleme de l'emplacement de stockage ou une fonction qui manque?
Merci d'avance pour vos reponses.
-
Bonjour
Personne n'a de solution pour mon probleme!? Merci
-
Bonjour,
pour vérifier si ton navigateur prend en charge le format svg, ouvre la page :
http://188.165.46.35:8888/samples/ellipse.svg
si l'image ne s'affiche pas alors il faut installer le plug-ins prenant en charge le svg.
Il serais pratique de voir le fichier svg engendré par ta classe.
-
Mon navigateur prend en charge le format svg, tous les elements de type cercle rectangle et texte s'affiche mais pas l'objet image au format jpg inclus dans le SVG.
<?xml version="1.0" encoding="utf-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%" viewBox="-100 -200 1400 1400">
<svg:rect xmlns:svg="http://www.w3.org/2000/svg" x="0" y="0" width="1200px" height="980px" style="stroke:#000000; stroke-width:10; fill:#ffffff"/>
<svg:image xmlns:svg="http://www.w3.org/2000/svg" x="0" y="0" width="1200px" height="980px" xlink:href="/carte-du-monde.jpg"/>
<svg:text xmlns:svg="http://www.w3.org/2000/svg" x="-20" y="0" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="bold" font-size="40px" text-anchor="end">90</svg:text>
Je l'inclus dynamiquement dans un fichier XHTML en parcourant chacun des objet, tout s'affiche mais pas l'image qui doit etre en fond.
Merci
-
Bon voilà,
Code:
<svg xmlns="http://www.w3.org/2000/svg" xmlnslink="http://www.w3.org/1999/xlink" width="100%" height="100%" viewBox="-100 -200 1400 1400">
Ton espace de nom par défaut est http://www.w3.org/2000/svg,
il est donc inutile de préfixer tes balises par svg.
'svg:rect xmlns:svg="http://www.w3.org/2000/svg"'
devrait être transformer en 'rect' tout simplement.
Ca fait moins des fichiers plus légés et c'est plus facile à lire !
Code:
viewBox="-100 -200 1400 1400"
A moins que tu ne l'ai fais exprès, les dimensions de ton espace visible ne sont pas les mêmes que celles de ton image.
Code:
xlink:href="/carte-du-monde.jpg"
Est-tu certain d'avoir placer ton image à la racine ? Si elle est dans le répertoire de ton fichier svg remplace ton lien par "./carte-du-monde.jpg" ou "carte-du-monde.jpg".
Enfin par la suite, tu pourra mettre ton style dans une feuille de styles mystyle.css plutot que dans les balises. La processing instruction suivante
Code:
<?xml-stylesheet href="mystyle.css" type="text/css"?>
-
oui mon image est a la racine, de mon projet java, meme avec cette modification rien n'a changé
C'est pas une feuilel de style que j'ai mais une fonction processNode dans mon code Java qui parcours le document SVG et l'inclus dans le fichier XHTML pour visualiser ensuite a l'ecran
le fichier .svg s'ouvre sans probleme, mais dans mon projet java, après lecture et récupération des objects du SVG pour inclusion dans le fichier XHTML tout s'affiche sauf l'image.