Почему z3c.RML игнорирует атрибут pageSize для ‹template›

Я пытаюсь получить выходной файл формата A4 в альбомной ориентации. Документ, который я изменяю, - A4-Portrait, поэтому я подумал, что простой переключатель: pageSize = "(21 см, 29,7 см)" на 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>

Большое тебе спасибо.


person user2111880    schedule 17.10.2016    source источник


Ответы (1)


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

Различия в реализации RML2PDF и z3c.rml

В этом документе описываются различия между библиотекой RML2PDF ReportLab Inc. и z3c.rml.

Несовместимость

размер страницы : в данной реализации это называется размером страницы в соответствии с API.

person user2111880    schedule 17.10.2016
comment
На всякий случай, если у кого-то такая же проблема, и он нашел эту страницу через Google. - person user2111880; 17.10.2016
comment
В z3c.RML Reference Version 3.2.0 тег <pageInfo> использует атрибут pageSize, а тег <pageTemplate> использует атрибут pagesize. Я тоже попал в эту проблему. - person Leslie Zhu; 22.11.2017