需要xhtml2pdf (Pisa 3.0)的@page和@frame CSS语法

3 投票
1 回答
5687 浏览
提问于 2025-04-16 15:11

我正在尝试使用xhtml2pdf(也叫Pisa 3.0)和django,遇到了关于CSS的问题。
http://www.xhtml2pdf.com/doc/pisa-en.html
显然,上面的文档提到了可用的CSS以及一些特定于供应商的标签。

如果我按照文档中的静态框架示例来写CSS,比如这样:

@page{
        margin:0cm;
        @frame header{
            -pdf-frame-content: header;
            height: 3cm;    
        }
        @frame footer{
            -pdf-frame-content: footer;
            bottom: 2cm;
            height: 2cm;
        }
    }

    .main_content{
        padding: 0px
    }
    #header{

        background-color: #02164c;
        font: #FFFFFF;
        width:100%;     
    }
    #footer{    
        width: 100%;            
    }
    .pageBreak{
        page-break-after: always;       
    }

我在django中遇到了一个错误。

异常信息:

找不到规则集的开头'{'::
(u'@page{\n\t\tmargin:',
u'0cm;\n\t\t@frame header')

异常位置:
/usr/lib/pymodules/python2.6/sx/w3c/cssParser.py
在_parseAtPage,行654

看起来CSS解析器在处理@page时出错了。
对我来说,我觉得我按照示例在使用它。我希望有人能提供一些指导,或者给我指个模板的例子。
我还想知道如何使用这些- pdf -特定于供应商的标签。我找不到关于这些标签的任何文档……

1 个回答

6

当你在代码中写 @page{ 时,如果前面没有空格,就会出现错误。把它改成 @page { 就可以解决这个问题。

撰写回答