我正在尝试获取 A4-Landscape 输出文件。我正在修改的文档是 A4-Portrait,所以我认为简单的切换:pageSize="(21cm, 29.7cm)" 到 pageSize="(29.7 厘米,21 厘米)”,但什么也没发生。
然后我创建了一个属性: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。
关于python - 为什么 z3c.RML 会忽略 <template> 的 pageSize 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40085840/