[英]Generating PDFs with Django 1.9
我想使用在Django 1.9 docs上找到的以下方法生成PDF: https : //docs.djangoproject.com/ja/1.9/howto/outputting-pdf 。
這是我的網址格式(我不需要任何特殊的東西,只需要這樣一個不同的網址名稱
urlpatterns = [
url(r'^people/$', PeopleTemplate.as_view(), name='people'),
url(r'^people/pdf/$', some_view),
]
def some_view(request):
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="example.pdf"'
p = canvas.Canvas(response)
p.drawString(100, 100, "Hello world.")
p.showPage()
p.save()
def get(self, request, *args, **kwargs):
context = locals()
context['response'] = self.response
context['p'] = self.p
return render_to_response(self.response_template, context, context_instance=RequestContext(request))
我正在嘗試使用get方法。 當我打/ pdf時,它提示輸入pdf輸出,但不包含任何數據-只是一個空白頁。 當您點擊/ attendance / pdf網址時,如何獲取該網址/ attendance /上存在的數據以顯示在pdf頁面上?
我認為您需要:
現在,您的代碼將模板呈現為html,將“ application / pdf”內容類型添加到標題中並返回正常的html頁面。
您需要類似PDFTemplateView的東西。 現在可以使用django-easy-pdf或django-wkhtmltopdf軟件包 。
UPD:
def some_view(request):
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="example.pdf"'
p = canvas.Canvas(response)
// simple but visual result is not pretty at all
for i, obj in enumerate(People.objects.all()):
p.drawString(100, 50*(i+1), str(obj))
p.showPage()
p.save()
def get(self, request, *args, **kwargs):
context = locals()
context['response'] = self.response
context['p'] = self.p
return render_to_response(self.response_template, context, context_instance=RequestContext(request))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.