我试图将项目从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端口?
答案 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>