逗人,
我们要求仅在PDF上的业务单据的第一页(例如发票,销售报价单,销售订单)上打印用户定义的公司标题。 PDF报告的所有其他页面都必须包含我们的公司徽标。
很幸运找到post of Brett Lehrer我尝试使用
来实现这一目标<header>
<pageTemplate>
<frame id="first" x1="1.3cm" y1="3.0cm" height="21.7cm" width="19.0cm"/>
<stylesheet>
<!-- style definitions in here -->
</stylesheet>
<pageGraphics>
...
<!-- corporate logo definition in here -->
...
<docIf cond="doc.page==1">
...
<!-- all corporate contact data in here -->
...
</docIf>
</pageGraphics>
</pageTemplate>
</header>
在自定义公司标头RML定义中。
进一步修改了函数./odoo/openerp/report/render/rml2pdf/trml2pdf.py
中的文件def _flowable(...)
以处理<docIf>
标记,如下所示
elif node.tag == 'hr':
width_hr=node.get('width') or '100%'
color_hr=node.get('color') or 'black'
thickness_hr=node.get('thickness') or 1
lineCap_hr=node.get('lineCap') or 'round'
return platypus.flowables.HRFlowable(width=width_hr,color=color.get(color_hr),thickness=float(thickness_hr),lineCap=str(lineCap_hr))
##### edit-start ####
elif node.tag == 'docIf':
return platypus.flowables.DocIf(node.get('cond'), self.render(node))
##### edit-end ####
else:
sys.stderr.write('Warning: flowable not yet implemented: %s !\n' % (node.tag,))
return None
但这导致不所需的结果:
公司标题打印在PDF上,而每个页面上的<docIf>
标记内没有任何定义。似乎条件永远变为真。
几天的网络研究现在没有结果。
你们中的任何人可能已经解决了这样的需求,或者在OpenERP / odoo中使用条件RML输出?
你能帮忙吗?您的意见/想法非常感谢。 感谢答案 0 :(得分:0)
我只是评论,但我不允许。 ^^ 我认为不可能使用带有页码的docIf来更改布局,因为rml将页码作为最后一步处理。 (我猜?!) 我也尝试了它并没有让它发挥作用。
长话短说我有同样的问题。我这样解决了。 Link
只要您只想更改第一页就应该有效。
MFG