Reportlab表走到Frame外面

时间:2014-06-01 10:40:34

标签: python pdf pdf-generation reportlab

我试图将项目从Python 2移植到Python 3并且遇到了Reportlab问题。

使用Platypus可流动KeepInFrame将表放置在框架中并设置mode='shrink'时,表会缩小以垂直放置,但不会缩小以适合水平放置。任何水平收缩仅发生在垂直收缩的比例上。垂直KeepInFrame按预期工作,但横向上的行为就像mode='continue'

这是我的相关代码

早期我创建了一个像这样的框架

markbook_frame = Frame(cm, 2*cm, 27.7*cm, 17*cm, leftPadding=0, bottomPadding=0,
              rightPadding=0, topPadding=0, id='markbook_frame', showBoundary=1)

然后我将我的表附加到故事中,表格显示在所需的框架中

story.append(FrameBreak())
table_story = []
t = Table(data, style=table_style)
table_story.append(t)
t_keep = KeepInFrame(0, 0, table_story, mode='shrink', hAlign='CENTER', vAlign='MIDDLE')
story.append(t_keep)

我的代码在Python 2.7中按预期工作。我想知道这个问题是否来自Reportlab最近的Python 3端口?

2 个答案:

答案 0 :(得分:0)

在文档中说

  

将fakeWidth设置为False以使_listWrapOn执行' right'事

所以你的代码

    t_keep = KeepInFrame(0, 0, table_story, mode='shrink', hAlign='CENTER', vAlign='MIDDLE')

应该是

    t_keep = KeepInFrame(0, 0, table_story, mode='shrink', hAlign='CENTER', vAlign='MIDDLE', fakeWidth=False)

答案 1 :(得分:0)

我遇到了这个问题因为我限制了标准 A4 的宽度!让身体获得它的原始宽度,并希望转换为 pdf;它们会自行缩小。

<style type="text/css">
body {
    position:relative;
    margin:0 auto;
    /* width:21cm; height:29.7cm; */    /** i Just commented the size of body  **/
    color:#555;
    background:#fff;
    font-family:Arial,sans-serif;
    font-size:14px;
}
</style>