<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"><<a href="mailto:javiergalans@gmail.com" target="_blank">javiergalans@gmail.com</a>></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># ----------><------------><------------------------------------------<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("application-export-to-pdf")<br> action.execute()<br><br># ----------><------------><------------------------------------------<br><br><br>Esto ejecutaria la misma accion que tiene asociada el boton de "Exportar a fichero PDF".<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("/tmp/mapa.pdf")<br><br>Ya que comento el uso de la accion "application-export-to-pdf", 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 -> Desarrollo -> 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 "Name" 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>#--------------><--------------------><--------------------------</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("org.gvsig.app.document.layout2.app.mainplugin")</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("org.gvsig.scripting.app.extension")</div><div> scripting.addDependencyWithPlugin(other)</div><div><br></div><div>#</div><div># ==========================================================</div><div>#</div><div><br></div><div>use_plugin("org.gvsig.app.document.layout2.app.mainplugin")</div><div><br></div><div>#--------------><--------------------><--------------------------</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 = 'Referencia catastral: 987654321098765'</div><div> fact_redondeo=50.0</div><div> dSemana =time.strftime("%A",time.localtime())</div><div> nMes = time.strftime("%B",time.localtime())</div><div> fecha=dSemana[:1].upper() + dSemana[1:] + ', ' + time.strftime("%d",time.localtime()) + ' de ' + nMes[:1].upper()+ nMes[1:] + ' de ' +time.strftime("%Y",time.localtime())</div><div> variables ['Fecha']= fecha</div><div> variables ['Rcat']=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("Mapa_1", 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() == 'FFrameView':</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 = 'Escala: %s' %elemento.getScale()</div><div> </div><div> </div><div> if elemento.getName() == 'FFrameText':</div><div> if elemento.getTitle() == 'Escala':</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])#·('Referencia catastral: %s'%txt_rcat)</div><div> print "----------------------------"</div><div> </div><div><br></div><div> layoutManager = ApplicationLocator.getProjectManager().getDocumentManager(LayoutManager.TYPENAME)</div><div><br></div><div> layout = project.getDocument("Mapa_1", 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>