﻿{"id":7571,"date":"2018-12-12T02:05:55","date_gmt":"2018-12-12T01:05:55","guid":{"rendered":"http:\/\/www.sigterritoires.fr\/?p=7571"},"modified":"2023-04-28T14:58:53","modified_gmt":"2023-04-28T12:58:53","slug":"imprima-mapas-web-con-geoserver-evite-el-plugin","status":"publish","type":"post","link":"https:\/\/www.sigterritoires.fr\/index.php\/es\/imprima-mapas-web-con-geoserver-evite-el-plugin\/","title":{"rendered":"Imprima mapas web con geoserver: evite el plugin!"},"content":{"rendered":"\n<p>Veremos aqu\u00ed c\u00f3mo configurar una soluci\u00f3n para generar pdf para imprimir a partir de una p\u00e1gina cartogr\u00e1fica interactiva, la p\u00e1gina codificada de OpenLayers 4 y el servidor Geoserver 2.14. Teoricamente, para leer el documento Geoserver,todo deber\u00eda ser muy simple: instalaci\u00f3n del plugin Geoserver <strong>Print<\/strong> , prueba de la instalaci\u00f3n, configuraci\u00f3n y listo. <\/p>\n\n\n\n<!--more-->\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"795\" data-attachment-id=\"7572\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/imprima-mapas-web-con-geoserver-evite-el-plugin\/121-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/121-1.png?fit=525%2C795&amp;ssl=1\" data-orig-size=\"525,795\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"121\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/121-1.png?fit=525%2C795&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/121-1.png?resize=525%2C795&#038;ssl=1\" alt=\"\" class=\"wp-image-7572\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/121-1.png?w=525&amp;ssl=1 525w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/121-1.png?resize=198%2C300&amp;ssl=1 198w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/figure>\n\n\n\n<p>Si bien la instalaci\u00f3n es r\u00e1pida y f\u00e1cil, los problemas comienzan cuando desea utilizar la p\u00e1gina de prueba propuesta para asegurarse de que todo funciona correctamente. Imposible hacer que funcione y cada vez que encontramosla fuente del problema y lo resolvemos, &nbsp;un nuevo mensaje de error aparece y otro problema para tratar de resolver.<\/p>\n\n\n\n<p>Las rutas de los scripts ya no son v\u00e1lidas, el contenido de lasbibliotecas ha cambiado, en resumen, si desea perder el tiempo, siempre puede intentarlo. <\/p>\n\n\n\n<p>Tambi\u00e9n puede buscar soluciones en la red y, al igual que yo, encontrar publicaciones en foros con las mismas preguntas &#8230; y ninguna respuesta. <\/p>\n\n\n\n<p><strong>Empecemos por el principio &#8230;<\/strong> <\/p>\n\n\n\n<p>El m\u00f3dulo de impresi\u00f3n debe generar un archivo pdf que contenga un mapae informaciones. Este mapa es producido por Geoserver y la consulta es generadapor una p\u00e1gina html escrita con OpenLayers. Incluso si puede hacerlo todo sinotra biblioteca, a menudo utiliza la biblioteca GeoExt que simplifica el<\/p>\n\n\n\n<p>trabajo de codificaci\u00f3n de la aplicaci\u00f3n. <\/p>\n\n\n\n<p>En cuanto a la generaci\u00f3n del pdf, se basa en la biblioteca java Mapfish\nPrint. <\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Si bien, la versi\u00f3n Geoserver usada no afecta el resultado, no es as\u00ed para los otros componentes. <\/p>\n\n\n\n<p>La instalaci\u00f3n descrita en la documentaci\u00f3n de Geoserver se refiere a Mapfish versi\u00f3n 2. Esta version fue remplazada por MapFish3 en 2015. Se debe entender que las dos versiones son completamente diferentes en t\u00e9rminos de sintaxis y flujo de trabajo. <\/p>\n\n\n\n<p>MapFish V2 se usa con la biblioteca GeoExt V2 que se basa en OpenLayers\n2. Es decir, versiones antiguas. <\/p>\n\n\n\n<p>Si est\u00e1 trabajando con OpenLayers\n4 o 5, la versi\u00f3n de GeoExt a usar es la versi\u00f3n 3, y la versi\u00f3n de Mapfish es\nla versi\u00f3n 3. <\/p>\n\n\n\n<p><strong>Por lo tanto, no instale el plugin de impresi\u00f3n\nGeoserver (MapFish V2).<\/strong> <\/p>\n\n\n\n<p>Esto no representa un problema, MapFish3 se instala f\u00e1cilmente. El problema o los problemas surgen cuando busca documentaci\u00f3n, tal como informaci\u00f3n sobre mensajes de error, en la red. Tendr\u00e1 referencias r\u00e1pidas atodas las versiones, pero sin saber a qu\u00e9 versi\u00f3n se refiere &#8230; <\/p>\n\n\n\n<p><strong>Instalaci\u00f3n de Mapfish 3<\/strong> <\/p>\n\n\n\n<p>El archivo WAR de Mapfish Print es un archivo Java que se puede ejecutar en cualquier servidor de aplicaciones web Java, como Tomcat o Jetty. Para utilizar Mapfish Print como una aplicaci\u00f3n web independiente, debe: <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Instalar Java 7 o posterior <\/li><li>Descargue el servidor de aplicaciones web: archivo war en <a href=\"https:\/\/translate.google.com\/translate?hl=en&amp;prev=_t&amp;sl=fr&amp;tl=es&amp;u=http:\/\/mapfish.github.io\/mapfish-print-doc\/download.html\">http:\/\/mapfish.github.io\/mapfish-print-doc\/download.html<\/a><\/li><li>Coloque el archivo de impresi\u00f3nde Mapfish en el directorio webapps del servidor de aplicaciones web. <\/li><li>Cambie el nombre del archivo WARde Mapfish Print por un nombre m\u00e1s pr\u00e1ctico, como print.war (el nombre formar\u00e1 parte de la URL). <\/li><li>Iniciar el servidor de aplicaciones web (Tomcat o Jetty) <\/li><\/ul>\n\n\n\n<p>Verifique que la aplicaci\u00f3n se est\u00e9 ejecutandocorrectamente visitando http: \/\/ localhost: 8080 \/ print \/ index.html. (Esto supone que el servidor se est\u00e1 ejecutando en el puerto 8080 del host local y que ha cambiado el nombre a war.Print.war) &nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"428\" data-attachment-id=\"7573\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/imprima-mapas-web-con-geoserver-evite-el-plugin\/122-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/122-1.png?fit=525%2C428&amp;ssl=1\" data-orig-size=\"525,428\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"122\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/122-1.png?fit=525%2C428&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/122-1.png?resize=525%2C428&#038;ssl=1\" alt=\"\" class=\"wp-image-7573\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/122-1.png?w=525&amp;ssl=1 525w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/122-1.png?resize=300%2C245&amp;ssl=1 300w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/figure>\n\n\n\n<p>Por el momento, no haga nada con esta p\u00e1gina. El hecho de que se vea enla pantalla es suficiente para confirmar que la instalaci\u00f3n de MapFish ha sido exitosa. <\/p>\n\n\n\n<p><strong>C\u00f3mo funciona Mapfish 3<\/strong> \n\nLa falta de documentaci\u00f3n en l\u00ednea es dif\u00edcil de\ncomprender porque no hay una introducci\u00f3n clara sobre la arquitectura general. &nbsp;&nbsp;\n\n\n\n<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"371\" data-attachment-id=\"7574\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/imprima-mapas-web-con-geoserver-evite-el-plugin\/123-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/123-1.png?fit=525%2C371&amp;ssl=1\" data-orig-size=\"525,371\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"123\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/123-1.png?fit=525%2C371&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/123-1.png?resize=525%2C371&#038;ssl=1\" alt=\"\" class=\"wp-image-7574\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/123-1.png?w=525&amp;ssl=1 525w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/123-1.png?resize=300%2C212&amp;ssl=1 300w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/figure>\n\n\n\n<p>Para que el usuario obtenga un documento de este tipo, cliqueando \u00ab\n&nbsp; Imprimir &nbsp; \u00bb ubicado en una p\u00e1gina con un mapa interactivo (p\u00e1gina\nhtml con c\u00f3digo OpenLayers) hay tres elementos a tener en consideraci\u00f3n: <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Una plantilla de formulario creada con Jasper Studio. <\/li><li>un archivo config.yaml configurado en el servidor de impresi\u00f3n <\/li><li>un elemento &nbsp; \u201cespecificaciones\u201d &nbsp; a agregar a la orden POST o GET de la p\u00e1gina html <\/li><\/ul>\n\n\n\n<p>Veamos lo anterior m\u00e1s detalladamente. <\/p>\n\n\n\n<p><strong>Plantilla de formulario<\/strong> \n\nPara crear el formulario utilizamos <strong><em>Jaspersoft\nStudio<\/em><\/strong> . Puede descargarlo <a href=\"https:\/\/translate.google.com\/translate?hl=en&amp;prev=_t&amp;sl=fr&amp;tl=es&amp;u=https:\/\/sourceforge.net\/projects\/jasperstudio\/\">desde esta p\u00e1gina<\/a> . &nbsp;\n\n\n\n<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"302\" data-attachment-id=\"7575\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/imprima-mapas-web-con-geoserver-evite-el-plugin\/124-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/124-1.png?fit=525%2C302&amp;ssl=1\" data-orig-size=\"525,302\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"124\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/124-1.png?fit=525%2C302&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/124-1.png?resize=525%2C302&#038;ssl=1\" alt=\"\" class=\"wp-image-7575\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/124-1.png?w=525&amp;ssl=1 525w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/124-1.png?resize=300%2C173&amp;ssl=1 300w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/figure>\n\n\n\n<p><strong><em>JasperStudio<\/em><\/strong> &nbsp;permite crear una plantilla de formulario donde se puede colocar bloques de texto, im\u00e1genes, mapas y t\u00edtulos, perotambi\u00e9n otros bloques como &nbsp; gr\u00e1ficos &nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"246\" data-attachment-id=\"7576\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/imprima-mapas-web-con-geoserver-evite-el-plugin\/125-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/125.png?fit=525%2C246&amp;ssl=1\" data-orig-size=\"525,246\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"125\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/125.png?fit=525%2C246&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/125.png?resize=525%2C246&#038;ssl=1\" alt=\"\" class=\"wp-image-7576\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/125.png?w=525&amp;ssl=1 525w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/125.png?resize=300%2C141&amp;ssl=1 300w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/figure>\n\n\n\n<p>El prop\u00f3sito de este trabajo es crear un archivo .jrxml con la plantilla de p\u00e1gina a crear. El contenido de la p\u00e1gina se definir\u00e1 en otra parte: lascapas que se representar\u00e1n, la escala, la proyecci\u00f3n, &#8230; <\/p>\n\n\n\n<p><strong>Archivo de configuraci\u00f3n .yaml<\/strong> <\/p>\n\n\n\n<p>En comparaci\u00f3n con la versi\u00f3n 2 de Mapfish Print, siempre hay un archivo de configuraci\u00f3n en formato yaml, pero ahora es mucho m\u00e1s simple y se centra enla definici\u00f3n de modelos: &nbsp; los archivos Jasper a usar (el anterior.jrxml), y los par\u00e1metros a enviar al motor Jasper para rellenar los bloquesdel modelo. Aqu\u00ed hay un ejemplo de un archivo deconfiguraci\u00f3n muy simple: <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"437\" height=\"307\" data-attachment-id=\"7577\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/imprima-mapas-web-con-geoserver-evite-el-plugin\/attachment\/126\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/126.png?fit=437%2C307&amp;ssl=1\" data-orig-size=\"437,307\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"126\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/126.png?fit=437%2C307&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/126.png?resize=437%2C307&#038;ssl=1\" alt=\"\" class=\"wp-image-7577\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/126.png?w=437&amp;ssl=1 437w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/126.png?resize=300%2C211&amp;ssl=1 300w\" sizes=\"auto, (max-width: 437px) 100vw, 437px\" \/><\/figure>\n\n\n\n<p>Lo que hay que entender en este archivo: <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>La l\u00ednea de <strong>A4 portrait:! plantilla<\/strong> define el nombre del modelo. Cuando queramos usar esta configuraci\u00f3n, lo haremos\nrefiri\u00e9ndonos al dise\u00f1o <strong><em>A4 portrait<\/em><\/strong><\/li><li>el <strong>ReportTemplate<\/strong> para especificar el nombre de nuestro archivo .jrxml creado con Jaspersoft\nStudio. <\/li><li>los <strong>atributos de<\/strong> <strong><em>t\u00edtulo<\/em><\/strong> y <strong><em>mapa<\/em><\/strong> contienen la informaci\u00f3n que se pasar\u00e1 al motor\nJasper. Esto significa que hemos creado\nun bloque de <strong><em>t\u00edtulo<\/em><\/strong> y un bloque de <strong><em>mapa<\/em><\/strong> en la plantilla de formulario . Aqu\u00ed informamos el contenido de\nestos dos bloques. <\/li><\/ul>\n\n\n\n<p>Por supuesto, hay otras opciones disponibles para los archivos de\nconfiguraci\u00f3n. Pero por ahora, seamos sencillos. <\/p>\n\n\n\n<p>Tenemos una plantilla de formulario .jrxml y un archivo de configuraci\u00f3n\n.yaml. Todo lo que falta es enviar la solicitud de creaci\u00f3n del pdf. <\/p>\n\n\n\n<p><strong>Solicitud de impresi\u00f3n<\/strong> <\/p>\n\n\n\n<p>A partir de la p\u00e1gina html realizaremos un POST al servidor con un\npar\u00e1metro de <strong>especificaciones<\/strong> que contendr\u00e1, en formato json, los\npar\u00e1metros de nuestra solicitud de impresi\u00f3n. <\/p>\n\n\n\n<p>Aqu\u00ed hay un ejemplo de <strong>especificaci\u00f3n<\/strong> : <\/p>\n\n\n\n<p>{ <\/p>\n\n\n\n<p>\u00ab\u00a0layout\u00a0\u00bb: \u00ab\u00a0retrato\nA4\u00a0\u00bb, <\/p>\n\n\n\n<p>\u00ab\u00a0atributos\u00a0\u00bb:\n{\u00ab\u00a0mapa\u00a0\u00bb: { <\/p>\n\n\n\n<p>\u00ab\u00a0centro\u00a0\u00bb: [ <\/p>\n\n\n\n<p>5 <\/p>\n\n\n\n<p>45 <\/p>\n\n\n\n<p>] <\/p>\n\n\n\n<p>\u00ab\u00a0rotaci\u00f3n\u00a0\u00bb: 0, <\/p>\n\n\n\n<p>\u00ab\u00a0longitudeFirst\u00a0\u00bb:\nverdadero, <\/p>\n\n\n\n<p>\u00ab\u00a0capas\u00a0\u00bb: [{ <\/p>\n\n\n\n<p>\u00ab\u00a0geoJson\u00a0\u00bb: \u00ab\u00a0file:\n\/\/countries.geojson\u00a0\u00bb, <\/p>\n\n\n\n<p>\u00ab\u00a0estilo\u00a0\u00bb: { <\/p>\n\n\n\n<p>\u00ab\u00a0*\u00a0\u00bb:\n{\u00ab\u00a0simbolizadores\u00a0\u00bb: [{ <\/p>\n\n\n\n<p>\u00ab\u00a0fillColor\u00a0\u00bb: \u00ab\u00a0#\n5E7F99\u00a0\u00bb, <\/p>\n\n\n\n<p>\u00ab\u00a0strokeWidth\u00a0\u00bb: 1, <\/p>\n\n\n\n<p>\u00ab\u00a0fillOpacity\u00a0\u00bb: 1, <\/p>\n\n\n\n<p>\u00ab\u00a0tipo\u00a0\u00bb:\n\u00ab\u00a0pol\u00edgono\u00a0\u00bb, <\/p>\n\n\n\n<p>\u00ab\u00a0strokeColor\u00a0\u00bb: \u00ab\u00a0#\nCC1D18\u00a0\u00bb, <\/p>\n\n\n\n<p>\u00ab\u00a0strokeOpacity\u00a0\u00bb: 1 <\/p>\n\n\n\n<p>}]}, <\/p>\n\n\n\n<p>\u00ab\u00a0version\u00a0\u00bb:\n\u00ab\u00a02\u00a0\u00bb <\/p>\n\n\n\n<p>} <\/p>\n\n\n\n<p>\u00ab\u00a0tipo\u00a0\u00bb:\n\u00ab\u00a0geojson\u00a0\u00bb <\/p>\n\n\n\n<p>}], <\/p>\n\n\n\n<p>\u00ab\u00a0escala\u00a0\u00bb: 100000000, <\/p>\n\n\n\n<p>\u00ab\u00a0proyecci\u00f3n\u00a0\u00bb:\n\u00ab\u00a0EPSG: 4326\u00a0\u00bb, <\/p>\n\n\n\n<p>\u00ab\u00a0dpi\u00a0\u00bb: 72 <\/p>\n\n\n\n<p>}} <\/p>\n\n\n\n<p>} <\/p>\n\n\n\n<p>La l\u00ednea  <strong>\u201clayout<\/strong>  <strong>\u00bb:\u00ab<\/strong> <strong>A4 portrait\u201d<\/strong>  sirve&nbsp;para indicar el enlace con el archivo config.yaml con su l\u00ednea <strong>A4 portait :! template<\/strong> <\/p>\n\n\n\n<p>En la lista de atributos enviados, en este simple ejemplo, solo tenemos\nel mapa a mostrar (\u00a0\u00bb &nbsp; <strong>mapa<\/strong> \u00ab &nbsp; ) con sus par\u00e1metros de\nformato (centrado, rotaci\u00f3n, escala, proyecci\u00f3n, definici\u00f3n) y, sobre todo, la\ndefinici\u00f3n de las capas a mapear con la definici\u00f3n de sus fuentes de datos\n(aqu\u00ed un archivo geoJson local). <\/p>\n\n\n\n<p>En respuesta a esta publicaci\u00f3n, la p\u00e1gina recibe el url de descarga del documento pdf producido. A fin de verificar puede copiar y pegar elc\u00f3digo json correspondiente a la especificaci\u00f3n en la ventana Prueba de Impresi\u00f3n:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"510\" data-attachment-id=\"7578\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/imprima-mapas-web-con-geoserver-evite-el-plugin\/attachment\/127\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/127.png?fit=525%2C510&amp;ssl=1\" data-orig-size=\"525,510\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"127\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/127.png?fit=525%2C510&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/127.png?resize=525%2C510&#038;ssl=1\" alt=\"\" class=\"wp-image-7578\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/127.png?w=525&amp;ssl=1 525w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/127.png?resize=300%2C291&amp;ssl=1 300w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/figure>\n\n\n\n<p>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nHaga\nclic en <strong>Crear y obtener impresi\u00f3n<\/strong> o <strong>Publicar y Encuesta de impresi\u00f3n<\/strong>\n, obtendr\u00e1 su archivo pdf: &nbsp;&nbsp;\n\n\n\n<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"332\" data-attachment-id=\"7579\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/imprima-mapas-web-con-geoserver-evite-el-plugin\/attachment\/128\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/128.jpg?fit=525%2C332&amp;ssl=1\" data-orig-size=\"525,332\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"128\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/128.jpg?fit=525%2C332&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/128.jpg?resize=525%2C332&#038;ssl=1\" alt=\"\" class=\"wp-image-7579\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/128.jpg?w=525&amp;ssl=1 525w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/128.jpg?resize=300%2C190&amp;ssl=1 300w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/figure>\n\n\n\n<p>El mismo archivo de configuraci\u00f3n yaml y la misma plantilla jrxml pueden\nllamarse con datos diferentes. Aqu\u00ed hay otra versi\u00f3n del c\u00f3digo json spec que\nsolicita los datos de los pa\u00edses servidos en WMS por Geoserver: <\/p>\n\n\n\n<p>{ <\/p>\n\n\n\n<p>\u00ab\u00a0layout\u00a0\u00bb: \u00ab\u00a0retrato\nA4\u00a0\u00bb, <\/p>\n\n\n\n<p>\u00ab\u00a0outputFormat\u00a0\u00bb:\n\u00ab\u00a0pdf\u00a0\u00bb, <\/p>\n\n\n\n<p>\u00ab\u00a0atributos\u00a0\u00bb: { <\/p>\n\n\n\n<p>\u00ab\u00a0mapa\u00a0\u00bb: { <\/p>\n\n\n\n<p>\u00ab\u00a0proyecci\u00f3n\u00a0\u00bb:\n\u00ab\u00a0EPSG: 3857\u00a0\u00bb, <\/p>\n\n\n\n<p>\u00ab\u00a0dpi\u00a0\u00bb: 72, <\/p>\n\n\n\n<p>\u00ab\u00a0rotaci\u00f3n\u00a0\u00bb: 0, <\/p>\n\n\n\n<p>\u00ab\u00a0centro\u00a0\u00bb:\n[-8233518.5005945, 4980320.4059228], <\/p>\n\n\n\n<p>\u00ab\u00a0escala\u00a0\u00bb: 130000000, <\/p>\n\n\n\n<p>\u00ab\u00a0capas\u00a0\u00bb: [ <\/p>\n\n\n\n<p>{ <\/p>\n\n\n\n<p>\u00ab\u00a0baseURL\u00a0\u00bb:\n\u00ab\u00a0http:\/\/carto-dei-brest.fr\/geoserver\/postgres\/wms\u00a0\u00bb, <\/p>\n\n\n\n<p>\u00ab\u00a0opacidad\u00a0\u00bb: 1, <\/p>\n\n\n\n<p>\u00ab\u00a0tipo\u00a0\u00bb:\n\u00ab\u00a0WMS\u00a0\u00bb, <\/p>\n\n\n\n<p>\u00ab\u00a0layers\u00a0\u00bb:\n[\u00ab\u00a0postgres: country\u00a0\u00bb], <\/p>\n\n\n\n<p>\u00ab\u00a0imageFormat\u00a0\u00bb:\n\u00ab\u00a0image \/ png\u00a0\u00bb, <\/p>\n\n\n\n<p>\u00ab\u00a0estilos\u00a0\u00bb:\n[\u00ab\u00a0pol\u00edgono\u00a0\u00bb], <\/p>\n\n\n\n<p>\u00ab\u00a0customParams\u00a0\u00bb: { <\/p>\n\n\n\n<p>\u00ab\u00a0TRANSPARENTE\u00a0\u00bb:\n\u00ab\u00a0verdadero\u00a0\u00bb <\/p>\n\n\n\n<p>} <\/p>\n\n\n\n<p>} <\/p>\n\n\n\n<p>] <\/p>\n\n\n\n<p>} <\/p>\n\n\n\n<p>} <\/p>\n\n\n\n<p>} <\/p>\n\n\n\n<p>En la p\u00e1gina de prueba de impresi\u00f3n reemplazamos el texto json y el\nresultado es el siguiente:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"361\" data-attachment-id=\"7580\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/imprima-mapas-web-con-geoserver-evite-el-plugin\/attachment\/129\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/129.jpg?fit=525%2C361&amp;ssl=1\" data-orig-size=\"525,361\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"129\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/129.jpg?fit=525%2C361&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/129.jpg?resize=525%2C361&#038;ssl=1\" alt=\"\" class=\"wp-image-7580\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/129.jpg?w=525&amp;ssl=1 525w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2018\/12\/129.jpg?resize=300%2C206&amp;ssl=1 300w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/figure>\n\n\n\n<p>Para profundizar, usted cuenta con una &nbsp;presentaci\u00f3n Camptocamp &nbsp;y &nbsp;la <a href=\"https:\/\/translate.google.com\/translate?hl=en&amp;prev=_t&amp;sl=fr&amp;tl=es&amp;u=http:\/\/mapfish.github.io\/mapfish-print-doc\/index.html\">documentaci\u00f3n MapFish<\/a> , <\/p>\n\n\n\n<p><strong>Y si usas el plugin de impresi\u00f3n Geoserver &#8230;<\/strong> <\/p>\n\n\n\n<p>Si a\u00fan decide utilizar el plugin provisto por Geoserver, debe saber que:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>no hay forma de usar Jaspersoft\npara crear una plantilla. Todo lo que haga con Jaspersoft y\nMapFish 3 tendr\u00e1 que hacerlo a mano en el archivo config.yaml. Y no tendr\u00e1 las mismas posibilidades como por\nejemplo, incluir gr\u00e1ficos en su salida pdf. <\/li><li>La sintaxis del archivo yaml es\ntotalmente diferente. Encontrar\u00e1 su descripci\u00f3n <a href=\"https:\/\/translate.google.com\/translate?hl=en&amp;prev=_t&amp;sl=fr&amp;tl=es&amp;u=https:\/\/docs.geoserver.org\/latest\/en\/user\/extensions\/printing\/configuration.html\">en esta p\u00e1gina<\/a> . <\/li><li>Si desea utilizar los ejemplos de\nla biblioteca GeoExt como base para sus desarrollos, deber\u00e1 instalar y usar la\nversi\u00f3n GeoExt2. GeoExt 3 no es compatible con el\nm\u00f3dulo de impresi\u00f3n Geoserver. <\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Veremos aqu\u00ed c\u00f3mo configurar una soluci\u00f3n para generar pdf para imprimir a partir de una p\u00e1gina cartogr\u00e1fica interactiva, la p\u00e1gina codificada de OpenLayers 4 y el servidor Geoserver 2.14. Teoricamente, para leer el documento Geoserver,todo deber\u00eda&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"give_campaign_id":0,"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"sfsi_plus_gutenberg_text_before_share":"","sfsi_plus_gutenberg_show_text_before_share":"","sfsi_plus_gutenberg_icon_type":"","sfsi_plus_gutenberg_icon_alignemt":"","sfsi_plus_gutenburg_max_per_row":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[842],"tags":[],"class_list":["post-7571","post","type-post","status-publish","format-standard","hentry","category-non-classe-es"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p6XU0A-1Y7","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/7571","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/comments?post=7571"}],"version-history":[{"count":0,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/7571\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media?parent=7571"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/categories?post=7571"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/tags?post=7571"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}