在Django中使用easyprint生成pdf

时间:2018-10-09 11:13:32

标签: python html css django weasyprint

我正在尝试使用Django中的easyprint从html模板生成pdf,但是在发生分页符时某些CSS无法呈现。 css属性不起作用。 我正在将动态json数据呈现到html模板,以使用easyprint将其转换为pdf。当表中断并转到下一页时,某些CSS将不会在下一页中出租。

@register.simple_tag
def displayRetirementPlanningAnalysisView(object_lists, object_lists2):

ob = object_lists
ln = len(ob)
ob2 = object_lists2
ln2 = str(len(ob2) + ln + 1)


htmltable = ''
if len(object_lists) > 0: 
htmltable += '<THEAD>'
htmltable += '<tr>'
htmltable += '<th class="emptyheading">' + '</th>'
htmltable += '<th class="tableHeadingData" >' + 'Particulars(Pre-Retirement)' + '</th>'
htmltable += '<th class="text-right">' + 'Value' + '</th>'
htmltable += '</tr>'
htmltable += '<tr>'
htmltable += '<td class=" sideHeading" rowspan="' + ln2 + '">'
htmltable += '<div class="labelSection" >Retirement Planning  Analysis</div></td>'

for obj in object_lists: 
htmltable += '<tr>'
htmltable += '<td class="particularsLabels" >' + str(obj.get('particular')) + '</td>'
htmltable += '<td  class="text-right td-font" >' + str(obj.get('value')) + '</td></tr>'

htmltable += '<tr><th class="tableHeadingData" >' + 'Particulars(Post-Retirement)' + '</th>'
htmltable += '<th class="text-right">' + 'Value' + '</th></tr>'
for obj1 in object_lists2:
  htmltable += '<tr>'
htmltable += '<td class="particularsLabels" >' + str(obj1.get('particular')) + '</td>'
htmltable += '<td  class="text-right td-font" >' + str(obj1.get('value')) + '</td>'

htmltable += '</tr>'
htmltable += ' </TBODY>'


return format_html(htmltable)
.labelSection {
  transform: rotate(270deg);
  writing-mode: vertical-rl;
  height: 100px;
  width: 50px;
  position: relative;
  overflow-wrap: all;
  left: 50%;
  font-size: 10px;
  padding: 2px;
}

.sideHeading {
  color: #0d3049;
  background: #0d3049;
  column-fill: balance;
  grid-auto-rows: auto;
  color: white;
}
<table class=" table " >        
    {% displayRetirementPlanningAnalysisView kwargs.data.analysis.preRetirementAnalysis kwargs.data.analysis.postRetirementAnalysis%}
</table>

0 个答案:

没有答案