私はDjangoアプリケーションでWeasyprint経由でHTMLをPDFにエクスポートしています。私は、テンプレートのhtmlをフロントエンドに送ってそのHTMLをバックエンドに戻してpdfにエクスポートすると、それが完全に印刷されることに気付きました。しかし、私がWeasyprintにテンプレートhtmlを直接送信すると、すべてがうんざりになります!いいえCSS、JavaScriptはありません。DjangoテンプレートでJavascriptとCSSを実行
これは私がHTMLを生成するためにテンプレートを使用している方法です:
私のJSコントローラでtemplate = loader.get_template('Reporting/reportTemplate.html')
context = {
"reportObj" : result[0]
}
htmlContent = (template.render(context, request))
response['message'] = htmlContent
return JsonResponse(response)
私は私のdivにhtmlContentを割り当てる:
$('#htmlContent').html(response.message);
その後、私は戻って生成されたHTMLを返します私のDjango関数でpdfを印刷する
HTML(string=htmlContent).write_pdf(target=response, stylesheets=[CSS(string=getCSS())])
このようにして、デザインとすべてを維持します。
しかし、htmlContent
をフロントエンドに送信せずにWeayprintに直接送信すると、デザインと色付けが消えてしまいました。私のテンプレートで
は、私もこのようなCSSやJavaScriptファイルが含まれている:
私は、フロントエンドに送信することなく、DjangoのテンプレートやPDFへのエクスポートにJavascriptとCSSを実行するにはどうすればよい{% load static %}
{% block content %}
<link href="{% static "css/ion.rangeSlider.css" %}" rel="stylesheet">
<link href="{% static "css/ion.rangeSlider.skinHTML5.css" %}" rel="stylesheet">
<script type='text/javascript' src='{% static "scripts/ion.rangeSlider.js" %}'></script>
<script type='text/javascript'>
$(document).ready(function(){
var creditScore = $("#creditScore").html();
$("#rangeCS").ionRangeSlider({
type: "double",
min: 0,
max: 1000,
step: 100,
from: 0,
to: creditScore,
from_fixed: true,
to_fixed: true,
grid: true,
grid_snap: true
});
});
</script>
{% endblock %}
?
おそらく、ページを内部的にレンダリングしようとすることができます。いくつかの詳細:http://stackoverflow.com/questions/126131/python-library-for-rendering-html-and-javascript#126250 – Marcs
私はそれを考慮して –