【问题标题】:Why z3c.RML ignores the pageSize Attribute of <template>为什么z3c.RML会忽略<template>的pageSize属性
【发布时间】:2016-10-17 11:59:52
【问题描述】:

我正在尝试获取 A4-Landscape 输出文件。我正在修改的文档是 A4-Portrait,所以我想简单的切换:pageSize="(21cm, 29.7cm)" 到 pageSize=" (29.7cm, 21cm)",但什么也没发生。

然后我找到了一个属性: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>

非常感谢。

【问题讨论】:

    标签: python reportlab rml


    【解决方案1】:

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

    RML2PDF 和 z3c.rml 实现差异

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

    不兼容

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

    【讨论】:

    • 以防万一有人遇到同样的问题并通过 Google 找到此页面。
    • 在 z3c.RML 参考版本 3.2.0 中,&lt;pageInfo&gt; 标签使用pageSize 属性,而&lt;pageTemplate&gt; 标签使用pagesize 属性。我也遇到了这个问题。
    猜你喜欢
    • 1970-01-01
    • 2014-07-10
    • 2023-04-08
    • 2021-12-03
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    • 2010-12-11
    • 1970-01-01
    相关资源
    最近更新 更多