我正在尝试获取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。