<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">El 29 de abril de 2016, 8:48, Javier Galán <span dir="ltr">&lt;<a href="mailto:javiergalans@gmail.com" target="_blank">javiergalans@gmail.com</a>&gt;</span> escribió:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hola a todos.<div><br></div><div>He hecho un script que configura un mapa con datos de una parcela seleccionada.</div><div>Estoy intentando hacer que una vez termine lo imprima en pdf, pero no logro averiguar por donde ir.</div><div><br></div><div>Alguien lo ha intentado antes? </div><div><br></div></div></blockquote><div><br>Hola, <br>asi de forma rapida podrias hacer algo como:<br><br># ----------&gt;&lt;------------&gt;&lt;------------------------------------------<br>from gvsig import *<br><br>from org.gvsig.andami import PluginsLocator<br><br>def main(*args):<br><br>  actionManager = PluginsLocator.getActionInfoManager()<br>  action = actionManager.getAction(&quot;application-export-to-pdf&quot;)<br>  action.execute()<br><br># ----------&gt;&lt;------------&gt;&lt;------------------------------------------<br><br><br>Esto ejecutaria la misma accion que tiene asociada el boton de &quot;Exportar a fichero PDF&quot;.<br>La cuestion es que pedira al usuario el fichero a donde hay que exportarlo, no se si <br>esto puede ser un problema.<br>En la version 2.3 se le podra pasar un parametro al execute de la accion con el nombre del<br>fichero o un objecto File de java.<br><br>  action.execute(&quot;/tmp/mapa.pdf&quot;)<br><br>Ya que comento el uso de la accion &quot;application-export-to-pdf&quot;, comentar que todos los <br>menus y botones de la ventana principal de gvSIG tienen asociadas acciones y que se pueden<br>invocar de esta forma desde scripting. <br>Si queremos ver la lista de acciones registradas en gvSIG podemos consultarlas en el menu:<br><br>  Herramientas -&gt; Desarrollo -&gt; Mostrar informacion de acciones disponibles<br><br>Nos mostrara una tabla con todas las acciones que registran los plugins que hayan instalados<br>en ese momento en gvSIG, la columna &quot;Name&quot; es el nombre de la accion que debemos utilizar como<br>parametro de la llamada a getAction.<br><br>Un saludo<br>Joaquin<br><br> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div></div><div>Aquí dejo el código que configura el mapa.</div><div><br></div><div>Gracias de antemano.</div><div><br></div><div><div>#--------------&gt;&lt;--------------------&gt;&lt;--------------------------</div><div># ==========================================================</div><div>#</div><div># Declara como que el plugin de scripting puede importar modulos </div><div># de otro plugin de gvSIG.</div><div>#</div><div># Por ejemplo, tras ejecutar:</div><div>#</div><div>#   use_plugin(&quot;org.gvsig.app.document.layout2.app.mainplugin&quot;)</div><div>#</div><div># Ya podriamos importar modulos del plugin de Mapas (documento mapa)</div><div>#</div><div><br></div><div>def use_plugin(pluginName):</div><div>  from org.gvsig.andami import PluginsLocator</div><div><br></div><div>  pluginsManager = PluginsLocator.getManager()</div><div>  other = pluginsManager.getPlugin(pluginName)</div><div>  scripting = pluginsManager.getPlugin(&quot;org.gvsig.scripting.app.extension&quot;)</div><div>  scripting.addDependencyWithPlugin(other)</div><div><br></div><div>#</div><div># ==========================================================</div><div>#</div><div><br></div><div>use_plugin(&quot;org.gvsig.app.document.layout2.app.mainplugin&quot;)</div><div><br></div><div>#--------------&gt;&lt;--------------------&gt;&lt;--------------------------</div><div><br></div><div>from org.gvsig.app import ApplicationLocator</div><div>from org.gvsig.app.project.documents.layout import LayoutManager</div><div>from org.gvsig.app.extension import Print</div><div>from org.gvsig.app.extension import ExportLayoutExtension</div><div>import math</div><div>import time</div><div><br></div><div>from java.awt.image import *</div><div>from javax.imageio import ImageIO</div><div>from <a href="http://java.io" target="_blank">java.io</a> import File;</div><div><br></div><div><br></div><div><br></div><div>def main(*args):</div><div><br></div><div>  #PASAR A VARIABLES DE LA FUNCION</div><div>  variables={}</div><div>  txt_rcat = &#39;Referencia catastral: 987654321098765&#39;</div><div>  fact_redondeo=50.0</div><div>  dSemana =time.strftime(&quot;%A&quot;,time.localtime())</div><div>  nMes = time.strftime(&quot;%B&quot;,time.localtime())</div><div>  fecha=dSemana[:1].upper() + dSemana[1:] + &#39;, &#39; + time.strftime(&quot;%d&quot;,time.localtime()) + &#39; de &#39; + nMes[:1].upper()+ nMes[1:] + &#39; de &#39; +time.strftime(&quot;%Y&quot;,time.localtime())</div><div>  variables [&#39;Fecha&#39;]= fecha</div><div>  variables [&#39;Rcat&#39;]=txt_rcat</div><div><br></div><div>  # Recuperamos el proyecto</div><div>  project = ApplicationLocator.getManager().getCurrentProject()</div><div><br></div><div>  # Recuperamos un layout por nombre</div><div>  layout = project.getDocument(&quot;Mapa_1&quot;, LayoutManager.TYPENAME)</div><div><br></div><div>  </div><div>  #print layout.__class__.__name__, layout.getName()</div><div>  contextLayout = layout.getLayoutContext()</div><div>  for elemento in  contextLayout.getAllFFrames():</div><div>#    print elemento.getName()</div><div>    if elemento.getName() == &#39;FFrameView&#39;:</div><div>      mapContext= elemento.getMapContext()</div><div>      vp = mapContext.getViewPort()</div><div>      vp.setEnvelope(mapContext.getSelectionBounds())</div><div>      escala_round =long(math.ceil(elemento.getScale()/fact_redondeo)*fact_redondeo)</div><div>      mapContext.setScaleView(escala_round)</div><div>      txt_escala = &#39;Escala: %s&#39; %elemento.getScale()</div><div>      </div><div>      </div><div>    if elemento.getName() == &#39;FFrameText&#39;:</div><div>      if elemento.getTitle() == &#39;Escala&#39;:</div><div>        elemento.clearText()</div><div>        elemento.addText (txt_escala)</div><div>      else:</div><div>        titulo= elemento.getTitle()</div><div>        if not (titulo is None):</div><div>          elemento.clearText()</div><div>          print titulo,variables[titulo]</div><div>          elemento.addText (variables[titulo])#·(&#39;Referencia catastral: %s&#39;%txt_rcat)</div><div>  print &quot;----------------------------&quot;</div><div>  </div><div><br></div><div>  layoutManager = ApplicationLocator.getProjectManager().getDocumentManager(LayoutManager.TYPENAME)</div><div><br></div><div>  layout = project.getDocument(&quot;Mapa_1&quot;, LayoutManager.TYPENAME)</div><div>  layoutPanel = layoutManager.getMainWindow(layout)</div><div>  print layoutPanel.__class__.__name__, layoutPanel.getDocument().getName()</div><div>  print dir(layout)</div><div>  impresora = ExportLayoutExtension</div><div>  print dir(impresora)</div></div><div><br></div><div><br></div></div>
<br>_______________________________________________<br>
gvSIG_usuarios mailing list<br>
<a href="mailto:gvSIG_usuarios@listserv.gva.es">gvSIG_usuarios@listserv.gva.es</a><br>
<br>
Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección:<br>
<br>
<a href="https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios" rel="noreferrer" target="_blank">https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature">--------------------------------------<br>Joaquin Jose del Cerro Murciano<br>Development and software arquitecture manager at gvSIG Team<br><a href="mailto:jjdelcerro@gvsig.com" target="_blank">jjdelcerro@gvsig.com</a><br><a href="mailto:jjdelcerro@gvsig.org" target="_blank">jjdelcerro@gvsig.org</a><br>gvSIG Association<br><a href="http://www.gvsig.com" target="_blank">www.gvsig.com</a><br><a href="http://www.gvsig.org" target="_blank">www.gvsig.org</a></div>
</div></div>