html转pdf 使用的三方工具:
wkhtmltopdf
源码分析:
pdf_content = self._run_wkhtmltopdf(
bodies,
header=header,
footer=footer,
landscape=context.get('landscape'),
specific_paperformat_args=specific_paperformat_args,
set_viewport_size=context.get('set_viewport_size'),
)
可以看出要调用三方工具需要准备的数据有,body,header, footer,这下知道为什么header 和footer 能够在多个页面重复显示了吧.
update 2021年12月11日5
这里得header,bodies,footer 都被处理成了一个完整的html 页面,header 和footer的高度也都是已经设置死了,bodies 的摆放位置会根据header 设置的高度,从一个固定的位置开始,还有一点要说明的是,header 的高度如果比内容的高度小,则实际显示的失火还是会显示出来的,并且会覆盖bodies 的内容.最近遇到一些头痛的需求,要把一些格式不固定的内容放到header中,比如地址信息,这就好造成某些客户的表头很长,某些公司的表头很短,长的会盖掉boides的内容,短的又会留出很大块空白.