java - Grails渲染插件css问题

原文 标签 java grails pdf-generation rendering

我刚刚安装了 grails 渲染插件,想用它来生成 PDF 文件。我创建了简单的模板,但它在没有任何 CSS 样式的情况下导出。如果我只是从 grails 渲染模板,那么页面会在我的 Web 浏览器中显示所有样式。

所以,我的问题是 - 如何在 PDF 生成过程中正确包含 CSS 文件?

我的模板:

<!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>

我的 webui.css 中有样式 .odd,但它没有应用于行。

任何帮助,将不胜感激。

Edit1:如果我按以下方式进行操作,我发现样式已被获取:
<link rel="stylesheet" href="my_appname${resource(dir:'css',file:'main.css')}" />

但我不想硬编码应用程序名称(这也是基本上下文路径)。有没有更好的方法来生成指向 css 文件的正确链接?

最佳答案

我的回答可能已经晚了,但我想在这里分享我在 grails 中渲染 pdf 的经验。我按照以下步骤操作并故障转移到下一个,直到我得到一个 pdf:

  • 使用模板 gsp 中的资源插件来获取捆绑了 css 的模块。

  • 例如:
    测试.gsp
    <html>
    <head>
      <r:require modules="bootstapApp"/>
      <r:layoutResources/>
    </head>
    <body>
       ....
       <r:layoutResources/>
    </body>
    </html>
    

    以上工作正常,但渲染后未在 pdf 中使用样式。我不得不跌倒到第 2 步。

    2.开始使用问题陈述中提到的标签。
    结果:没有变化。我无法获得 pdf 中的样式。
    失败转移到第 3 步

    3.在模板gsp中添加了内联样式。然后我能够将它们应用于pdf。这里要注意的是,如果你按照第 3 步进行操作,并且你有像 bootstrap.css 这样的 css,那么在模板中内联它们会很麻烦。即使我们添加它们,也不要忘记将它们放在媒体标签中。对我来说,以下工作非常好:
    <style type="text/css">
    @media all {
        //CSS styles goes here
    }
    </style>
    

    关于java - Grails渲染插件css问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10787221/

    相关文章:

    grails - Grails中具有关联的多个数据源

    objective-c - 来自CGPDFArray的CGPDFStrings的重复CGPDFStrings,该CGPDFArray是通过PDF流上的TJ回调生成的

    java - Keystore -- 从命令行自定义 SecretKey 进入 Keystore

    java - 单击小部件以更改小部件的文本

    grails - Grails UI性能插件页面压缩问题

    coldfusion - Railo PDF 生成问题

    pdf-generation - wkhtmltopdf 和基于表单的身份验证

    java - 在Java上加载DLL的启动

    java - Java同步:多个CountDownLatch

    validation - 修改flash.message中的消息