使用xhtml2pdf和django动态更改模板

时间:2018-10-22 21:02:27

标签: django django-templates xhtml2pdf

我想根据渲染所处的页面类型(奇数或偶数)在两个命名模板之间切换。

换句话说,是否可以遍历我的上下文变量并更改我的模板,以便我可以打印纸张并用它制成一本书?

是否可以检测到分页符并更改模板?

这是我的模板

  @page {
        size: a4 portrait;
        @frame header_frame { /* Static Frame */
        -pdf-frame-content: header_content;
        left: 80pt;
        width: 500pt;
        top: 20pt;
        height: 100pt;
    }
          @frame content_frame { /* Content Frame */
            left: 80pt;
            right: 20pt;
            width: 500pt;
            top: 110pt;
            height: 600pt; /*top: 90pt*/
        }

        @frame footer_frame {
            /* Another static Frame */
        -pdf-frame-content:footer_content;
        left: 80pt; width: 500pt; top: 720pt; height: 50pt;
        }

    }

    @page even{
        size: a4 portrait;
        @frame header_frame { /* Static Frame */
        -pdf-frame-content: header_content;
        right: 80pt;
        width: 500pt;
        top: 20pt;
        height: 100pt;
    }
          @frame content_frame { /* Content Frame */
            left: 20pt;
            right: 80pt;
            width: 500pt;
            top: 110pt;
            height: 600pt; /*top: 90pt*/
        }

        @frame footer_frame {
            /* Another static Frame */
        -pdf-frame-content:footer_content;
        right: 80pt; width: 500pt; top: 720pt; height: 50pt;
        }

    }

我的桌子

{% for item in data %}
    <tr>
        <td></td>
    </tr>
    <tr class="table-row">
        {% if item.fracdspl|length == 7 %}

            <td style="padding-right:10px; font-weight: 500;">{{ item.fracdspl }}</td>
            <td style="width: 44%; padding: 0 10px; font-weight: 500;">{{ item.desc }}</td>
        {% else %}
            <td style="padding-right:10px ">{{ item.fracdspl }}</td>
            <td style="width: 44%; padding: 0 10px">{{ item.desc }}</td>
        {% endif %}


        <td>{{ item.unid_trf }}</td>
        <td>{{ item.adv }}.</td>
        <td style="width: 24%;padding-right:10px">{{ item.req }}</td>
        <td>{{ item.eua }}</td>
        <td>{{ item.can }}</td>
        <td>{{ item.ue }}</td>
        <td>{{ item.adv_exporta }}</td>
    </tr>


{% endfor %}

0 个答案:

没有答案