我正在尝试获取A4-Landscape输出文件。我要修改的文档是A4-Portrait,因此我认为可以简单地将pageSize =“(21cm,29.7cm)”切换为pageSize =“(29.7cm,21cm)”,但是什么也没发生。

然后,我找到一个属性:rotation =“ 90”。屏幕上的页面仍为A4纵向,但内容显示为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>


非常感谢你。

最佳答案

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

RML2PDF和z3c.rml的实现差异

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

不兼容


pageSize:在此实现中称为pagesize以匹配API。

10-05 21:33