java grails pdf-generation rendering

java - Grails rendering plugin css issue



pdf-generation (3)

Intenta configurar grails.serverURL en Config.groovy en la url de la aplicación (por ejemplo, grails.serverURL = http: // localhost: 8080 / appname). El complemento resuelve todos los enlaces relativos a través de esta configuración

Acabo de instalar el plugin de renderizado Grails y me gustaría usarlo para generar archivos PDF. Creé una plantilla simple, pero se exporta sin ningún estilo CSS. Si simplemente renderizo la plantilla de Grails, aparece la página con todos los estilos en mi navegador web.

Entonces, mi pregunta es: ¿cómo incluir correctamente el archivo CSS durante el proceso de generación de PDF?

Mi plantilla:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <link rel="stylesheet" href="${resource(dir:''css'',file:''main.css'')}" /> <link rel="stylesheet" href="${resource(dir:''css'',file:''webui.css'')}" /> <r:layoutResources/> <title>Report</title> </head> <body> <div id="content"> <div id="center-container"> <h1><g:message code="default.list.label" args="[entityName]" /></h1> <table> <thead> <tr> <th class="trip">trip</th> </tr> </thead> <tbody> <tr class="odd"> <td> ${tip} </td> </tr> </tbody> </table> </div> </div> </body> </html>

Y tengo estilo .odd en mi webui.css, pero no se aplica en la fila.

Cualquier ayuda sería apreciada.

Edit1: descubrí que se obtienen los estilos, si lo hago de la siguiente manera:

<link rel="stylesheet" href="my_appname${resource(dir:''css'',file:''main.css'')}" />

Pero no quiero codificar el nombre de la aplicación (esta es también una ruta de contexto básica). ¿Hay una mejor manera de generar un enlace adecuado a un archivo css?


Puede que sea tarde con mi respuesta, pero quería compartir mi experiencia aquí con la representación del pdf en grial. Seguí los pasos a continuación y pasé al siguiente hasta obtener un pdf:

  1. Usé el complemento de recursos en la plantilla gsp para tomar un módulo donde se incluyó css.

Por ejemplo: Test.gsp

<html> <head> <r:require modules="bootstapApp"/> <r:layoutResources/> </head> <body> .... <r:layoutResources/> </body> </html>

Lo anterior funcionó bien, pero los estilos no se usaron en el pdf después de la representación. Tuve que caer al paso 2.

2. Comenzó usando la etiqueta como se menciona arriba en la declaración del problema. Resultado: Sin cambios. No pude obtener los estilos en el pdf. Falló al paso 3

3. Agregó los estilos en línea en la plantilla gsp. Y luego pude aplicarlos al pdf. El punto a tener en cuenta aquí es que si sigues el paso 3 y tienes css como bootstrap.css, entonces incluirlos en la plantilla será engorroso. Incluso si los agregamos, no olvide ponerlos dentro de la etiqueta de medios. Para mí el siguiente trabajó perfectamente bien:

<style type="text/css"> @media all { //CSS styles goes here } </style>


Compartí mi respuesta en otro lugar, pero terminé simplemente incrustando el contenido del archivo externo en el gsp para el procesamiento de PDF:

https://.com/a/32767378/1599616