создание PDF с использованием EasyPrint в Django - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь сгенерировать PDF-файл из HTML-шаблона, используя easyprint в django, но некоторые CSS-файлы не отображаются при разрыве страницы.css свойство не работает.Я рендерил динамические данные JSON в HTML-шаблон, чтобы преобразовать его в PDF с помощью easyprint.когда таблица разбивается и переходит на следующую страницу, некоторые 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>
...