Transformación de GML a SVG
Zahra_T
Mensajes publicados
89
Fecha de registro
Estado
Miembro
Última intervención
-
Zahra_T Mensajes publicados 89 Fecha de registro Estado Miembro Última intervención -
Zahra_T Mensajes publicados 89 Fecha de registro Estado Miembro Última intervención -
Hola
estoy programando en Java un botón que permite abrir un JFileChooser para seleccionar un archivo GML.
mi problema es cómo puedo convertir ese archivo GML en un archivo SVG para poder mostrarlo utilizando la biblioteca Batik.
¿Podría ayudarme? Sería muy amable de su parte.
Gracias de antemano.
estoy programando en Java un botón que permite abrir un JFileChooser para seleccionar un archivo GML.
mi problema es cómo puedo convertir ese archivo GML en un archivo SVG para poder mostrarlo utilizando la biblioteca Batik.
¿Podría ayudarme? Sería muy amable de su parte.
Gracias de antemano.
Configuración: Windows XP Internet Explorer 6.0
4 respuestas
¿Puedo usar la clase transformer?
Si es así, he probado estas líneas en mi aplicación y no me muestra nada, teniendo en cuenta que debo mostrar el resultado SVG en un JSVGCanvas para que sea interactivo:
DocumentBuilderFactory fabricaD = DocumentBuilderFactory.newInstance();
DocumentBuilder constructor = fabricaD.newDocumentBuilder();
File archivoGml = new File(s);
// s es la ruta que obtengo cuando elijo mi archivo gml a través de un JFileChooser
Document documento = constructor.parse(archivoGml);
Source fuente = new DOMSource(documento);
File archivoSVG = new File("SVG.svg");
Result resultado = new StreamResult(archivoSVG);
// Configuración del transformer
TransformerFactory fabricaT = TransformerFactory.newInstance();
StreamSource fuenteEstilo = new StreamSource("file.xsd");
Transformer transformer = fabricaT.newTransformer(fuenteEstilo);
transformer.setOutputProperty(OutputKeys.METHOD, "SVG");
// Transformación
transformer.transform(fuente, resultado);
}
Si es así, he probado estas líneas en mi aplicación y no me muestra nada, teniendo en cuenta que debo mostrar el resultado SVG en un JSVGCanvas para que sea interactivo:
DocumentBuilderFactory fabricaD = DocumentBuilderFactory.newInstance();
DocumentBuilder constructor = fabricaD.newDocumentBuilder();
File archivoGml = new File(s);
// s es la ruta que obtengo cuando elijo mi archivo gml a través de un JFileChooser
Document documento = constructor.parse(archivoGml);
Source fuente = new DOMSource(documento);
File archivoSVG = new File("SVG.svg");
Result resultado = new StreamResult(archivoSVG);
// Configuración del transformer
TransformerFactory fabricaT = TransformerFactory.newInstance();
StreamSource fuenteEstilo = new StreamSource("file.xsd");
Transformer transformer = fabricaT.newTransformer(fuenteEstilo);
transformer.setOutputProperty(OutputKeys.METHOD, "SVG");
// Transformación
transformer.transform(fuente, resultado);
}
¿Qué es la bib Batik? ¿Es para hacer copias de seguridad?
Arf, no, está bien, acabo de encontrarlo, pero no tengo ni idea de lo que es :)
--
El lobo, solitario y misterioso.
Arf, no, está bien, acabo de encontrarlo, pero no tengo ni idea de lo que es :)
--
El lobo, solitario y misterioso.
Hola jojo
ha pasado mucho tiempo desde este problema, y no he encontrado una solución
lo que puedo decirte es que gml y svg son dos versiones de xml, para la transformación intenta orientarte hacia xslt, creo que es la única pista que puede resolver todo el problema, pero no estoy seguro de cómo.
Buena suerte y no olvides publicar la solución si la encuentras, a mí y a otros nos resultaría útil.
ha pasado mucho tiempo desde este problema, y no he encontrado una solución
lo que puedo decirte es que gml y svg son dos versiones de xml, para la transformación intenta orientarte hacia xslt, creo que es la única pista que puede resolver todo el problema, pero no estoy seguro de cómo.
Buena suerte y no olvides publicar la solución si la encuentras, a mí y a otros nos resultaría útil.
De hecho, no puedo integrarlo ni estudiarlo para poder programar.
Lo que busco es cómo puedo manipular la clase Transformer de javax.xml.transform.
He intentado, pero no se muestra nada en el JSVGCanvas;-)