为什么z3c.RML忽略<template>

时间:2016-10-17 11:59:53

标签: python reportlab rml

我正在尝试获取A4-Landscape输出文件。我正在修改的文档是A4-Portrait,所以我想简单的切换: pageSize =“(21cm,29.7cm)” pageSize =“ (29.7厘米,21厘米)“ ,但没有任何事情发生。

然后我输入一个属性: rotation =“90” 。屏幕上的页面仍然是A4-Portrait,但内容是90度左右。在纸上,它很好,但在屏幕上我必须把头转90度,不太舒服。

在此之后我尝试了: pageSize =“(10cm,10cm)” ,认为这应该看起来很糟糕,但没有任何改变。

生成的PDF文件的大小是否可以在Python代码中设置而不是由RML文件设置?

这是Python代码:

#!venv/bin/python
# -*- coding: utf-8 -*-
from z3c.rml import pagetemplate
rmlPageTemplate = pagetemplate.RMLPageTemplateFile("test.rml")
open('test.pdf', 'wb').write(rmlPageTemplate())

我的RML文件锁定如:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE document SYSTEM "rml_1_0.dtd">
<document test.pdf">
    <docinit>
        ...
    </docinit>
    <template   pageSize="(10cm, 10cm)"
                rotation="90"
                leftMargin="2.5cm"
                rightMargin="2.5cm"
                topMargin="2.5cm"
                bottomMargin="2.5cm"
                showBoundary="1"
                >
        <pageTemplate id="main">
            <frame id="first" x1="2.5cm" y1="2.5cm" width="24.7cm" height="16cm" showBoundary="1"/>
        </pageTemplate>
    </template>
    <stylesheet>
        ...
    </stylesheet>
    <story>
        ...
    </story>
</document>

非常感谢。

1 个答案:

答案 0 :(得分:5)

https://github.com/zopefoundation/z3c.rml/blob/master/RML-DIFFERENCES.rst

RML2PDF和z3c.rml实施差异

本文档概述了ReportLab公司的RML2PDF库和z3c.rml之间的区别。

<强> Incompatibilies

S ize :在此实现中称为页面 s ize以匹配API。