[Gvsig_desarrolladores] Error al generar e imprimir mapas

Joaquin Jose del Cerro Murciano jjdelcerro en gvsig.org
Lun Mayo 8 21:49:42 CEST 2017


El 8 de mayo de 2017, 17:33, Alex Irmel Oviedo Solis <alleinerwolf en gmail.com
> escribió:

> Hola a todos y espero que tengan buenos dias :-)
>
> Joaquin, probe el ejemplo que me enviaste y funciona bien, quisiera saber
> si hay alguna forma de generar una imagen vectorial en lugar de una imagen
> rasterizada.
>



Hola Alex,
gvSIG no tiene nada para exportar la vista a SVG, pero asi de forma rapida
y muy a lo bestia, he hecho una prueba a ver que pasaba.

"The Apache™ Batik Project" tiene librerias que tienen un Graphics2D
especializado que renderiza en SVG.

https://xmlgraphics.apache.org/batik/using/svg-generator.html

He medio adaptado el prograna de ejemplo y me ha quedado algo como:


----------------------------------------
# encoding: utf-8

import gvsig
from gvsig import currentView

from org.apache.batik.svggen import SVGGraphics2D
from org.apache.batik.dom import GenericDOMImplementation

from org.gvsig.app import ApplicationLocator

from java.io import File
from java.io import FileOutputStream
from java.io import OutputStreamWriter

def main(*args):

  # Primero inicializamos un SVGGraphics2D
  # Get a DOMImplementation.
  domImpl = GenericDOMImplementation.getDOMImplementation()
  # Create an instance of org.w3c.dom.Document.
  svgNS = "http://www.w3.org/2000/svg"
  document = domImpl.createDocument(svgNS, "svg", None)
  # Create an instance of the SVG Generator.
  graphics2DSVG = SVGGraphics2D(document)

  view = ApplicationLocator.getManager().getActiveWindow()
  image = view.getMapControl().getImage()

  mapcontext = currentView().getMapContext()
  mapcontext.invalidate()
  mapcontext.draw(image, graphics2DSVG, 0)

  # Finally, stream out SVG to the standard output using
  # UTF-8 encoding.
  out = OutputStreamWriter(FileOutputStream("/tmp/pp.svg"),"UTF-8")
  graphics2DSVG.stream(out, True)

------------------------

He descargado de

http://apache.rediris.es/xmlgraphics/batik/binaries/batik-bin-1.9.zip

La ultima version de batik. Y ahora es donde he hecho la burrada.
Sin pensar nada, es solo una prueba, he metido en la carpeta lib de la
instalacion de gvSIG todos los jars que habian en el zip.
He borrado todos los jar de batik 1.7 que habian en la carpeta y
algunos jars que tras la copia estaban duplicados con distinta version
he dejado la mas alta.

He arrancado gvSIG, cargado la capa de paises del mundo que tengo en shape,
y ejecutado el script.

Y para mi sorpresa me ha generado el pp.svg aparentemente bien.

Como prueba de concepto vale, pero habria que darle mas vueltas.

¿ Que repercusiones tiene en gvSIG que quitemos batik 1.7 y metamos 1.9 ?
¿ Funcionaria el script con batik 1.7 ?
¿ Le faltan librerias de batik 1.7 a gvSIG que se necesitan para hacer esto
?

¿ Se podrian utilizar otras librerias similares a batik que no
entren en conflicto con existentes en gvSIG ?

No he puesto la vista capas raster, ni he aplicado simbologia
con imagenes puntuales o de relleno... ¿ Funcionaria con ellas ?


Bueno, si necesitas esa funcionalidad, te dejo aqui lo que podria ser
la semillita a partir de la que estirar y ver que se puede acabar teniendo.

Si te puedo echar una mano a ratitos, ya vas preguntando, y si consigues
algo ya lo vas comportiendo por aqui.

Un saludo
Joaquin




>
> Tengo algo nuevo que contar, probe con los shp que vienen de ejemplo con
> gvSIG y la generacion de los PDF y las impresiones funcionan bien, no se si
> puede deberse al cambio de la proyección (Estoy usando EPGS: 32719)
>
> El vie., 5 de may. de 2017 a la(s) 03:45, Joaquin Jose del Cerro Murciano <
> jjdelcerro en gvsig.org> escribió:
>
>> El 27 de abril de 2017, 15:48, Alex Irmel Oviedo Solis <
>> alleinerwolf en gmail.com> escribió:
>>
>>> Buenos dias a todos, gracias Joaquin por la respuesta, te cuento que
>>> hice una prueba creando un mapa vacio y puse un texto para probar y al
>>> imprimir no da el error pero la hoja sale vacia y el pdf tambien.
>>>
>>> Aunque este problema no se podra solucionar en el corto plazo se me
>>> ocurre que si pudiera obtener una imagen o captura de la vista podria
>>> generar un pdf con itext o una herramienta similar con los rotulos y algo
>>> más. ¿Como puedo obtener la captura de la vista actual? Gracias de antenamo
>>> por la respuesta. Saludos
>>>
>>
>>
>> Hola Alex,
>> sin pensarlo mucho, a ver si te sirbe.
>>
>>
>> #---------><---------------><--------------------------------
>> # encoding: utf-8
>>
>> import gvsig
>>
>> from java.io import File
>> from javax.imageio import ImageIO
>> from org.gvsig.app import ApplicationLocator
>>
>> def main(*args):
>>   # Tengo activa la vista, si no fuese la vista activa habria que
>>   # buscar, pero la idea seria similar.
>>   view = ApplicationLocator.getManager().getActiveWindow()
>>   img = view.getMapControl().getImage()
>>   print ImageIO.write(img,"png",File("/tmp/test.png"))
>>
>> #---------><---------------><--------------------------------
>>
>>
>>
>>
>>
>>
>>>
>>> El mar., 25 de abr. de 2017 a la(s) 13:42, Joaquin Jose del Cerro
>>> Murciano <jjdelcerro en gvsig.org> escribió:
>>>
>>>> El 25 de abril de 2017, 16:56, Alex Irmel Oviedo Solis <
>>>> alleinerwolf en gmail.com> escribió:
>>>>
>>>>> Buenos dias, hice un mapa en base a una vista y al generar el pdf/ps
>>>>> me salen vacios y al tratar de imprimir el mapa con la impresora sale una
>>>>> notificacion que dice "bug en el codigo", les adjunto el log de gvSIG para
>>>>> que puedan echarme una mano. Saludos
>>>>>
>>>>
>>>> Hola,
>>>> pues no se muy bien por que puede estar pasando el error... pero de lo
>>>> que se esta quejando es que no puede crear un java.awt.Shape a partir de
>>>> una de las geometrias que tiene que pintar. Probablemente este teniendo
>>>> algun problema con esa geometria en concreto.
>>>>
>>>> Me temo que ahora mismo no puedo saber mas.
>>>> De todos modos, gracias por el reporte... no lo puedo solucionar, pero
>>>> puedo atrapar los errores en el bucle que esta pintando las geometrias y en
>>>> caso de que se produzca un error en alguna, informar al usuario, indicando
>>>> con que feature esta teniendo problemas, y tratar de seguir pintando el
>>>> resto. Acabo de meter esos cambios para que ya esten disponibles en el
>>>> proximo build.
>>>>
>>>> Un saludo
>>>> Joaquin
>>>>
>>>>
>>>>>
>>>>> _______________________________________________
>>>>> gvSIG_desarrolladores mailing list
>>>>> gvSIG_desarrolladores en listserv.gva.es
>>>>> Para ver histórico de mensajes, editar sus preferencias de usuario o
>>>>> darse de baja en esta lista, acuda a la siguiente dirección:
>>>>> https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> --------------------------------------
>>>> Joaquin Jose del Cerro Murciano
>>>> Development and software arquitecture manager at gvSIG Team
>>>> jjdelcerro en gvsig.com
>>>> jjdelcerro en gvsig.org
>>>> gvSIG Association
>>>> www.gvsig.com
>>>> www.gvsig.org
>>>> _______________________________________________
>>>> gvSIG_desarrolladores mailing list
>>>> gvSIG_desarrolladores en listserv.gva.es
>>>> Para ver histórico de mensajes, editar sus preferencias de usuario o
>>>> darse de baja en esta lista, acuda a la siguiente dirección:
>>>> https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>>>
>>>
>>> _______________________________________________
>>> gvSIG_desarrolladores mailing list
>>> gvSIG_desarrolladores en listserv.gva.es
>>> Para ver histórico de mensajes, editar sus preferencias de usuario o
>>> darse de baja en esta lista, acuda a la siguiente dirección:
>>> https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>>
>>>
>>
>>
>> --
>> --------------------------------------
>> Joaquin Jose del Cerro Murciano
>> Development and software arquitecture manager at gvSIG Team
>> jjdelcerro en gvsig.com
>> jjdelcerro en gvsig.org
>> gvSIG Association
>> www.gvsig.com
>> www.gvsig.org
>> _______________________________________________
>> gvSIG_desarrolladores mailing list
>> gvSIG_desarrolladores en listserv.gva.es
>> Para ver histórico de mensajes, editar sus preferencias de usuario o
>> darse de baja en esta lista, acuda a la siguiente dirección:
>> https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en listserv.gva.es
> Para ver histórico de mensajes, editar sus preferencias de usuario o darse
> de baja en esta lista, acuda a la siguiente dirección:
> https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>
>


-- 
--------------------------------------
Joaquin Jose del Cerro Murciano
Development and software arquitecture manager at gvSIG Team
jjdelcerro en gvsig.com
jjdelcerro en gvsig.org
gvSIG Association
www.gvsig.com
www.gvsig.org
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20170508/8fb65913/attachment.html>


Más información sobre la lista de distribución gvSIG_desarrolladores