使用Django和Reportlab从HTML生成PDF

老鼠博士

我回来了一个新的问题,我整天都在挠我的头,我无法回答。

我想通过单击“下载PDF”按钮从网页生成PDF。我尝试了多个模块,包括Reportlab和XHTML2PDF,但是我无法生成任何pdf或无法下载它...这是我对Reportlab所做的工作,在Django网站中将HTML渲染为PDF

- - views.py - -

import cStringIO as StringIO
import ho.pisa as pisa
from django.template.loader import get_template
from django.template import Context
from django.http import HttpResponse
from cgi import escape

def index_data(request):
#Code to generate data
     return render(request, "analytics/stat.html", locals())
     return render_to_pdf(
        'analytics/stat.html',
        {
            'pagesize':'A4',
            'mylist': results,
        }
    )

def render_to_pdf(template_src, context_dict):
    template = get_template(template_src)
    context = Context(context_dict)
    html  = template.render(context)
    result = StringIO.StringIO()

    pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("ISO-8859-1")), result)
    if not pdf.err:
        return HttpResponse(result.getvalue(), content_type='application/pdf')
    return HttpResponse('We had some errors<pre>%s</pre>' % escape(html))

- - urls.py - -

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^$', "analytics.views.main_page", name="main_page"),
    url(r'^portail/$', "analytics.views.index_data", name="index"),
    url(r'^generate_pdf/$', "analytics.views.GroupPDFGenerate.as_view()", name="generate_pdf")

]

- -模板分析/ stat.html - -

{% extends "analytics/layout.html" %}

{% block title %}
    Audience
{% endblock title %}

{% block head %}
 # Script to generate google charts
{% endblock head %}

{% block body %}
<div class="page-header">
  <h1 align="center"> Audience </h1>
</div>
<div class="row">
  <div class="col-md-1">
      <h3 align="center"><a href="/logout/">Logout</a></h3>
      <h3 align="center"><a href="statistiques.pdf">Download pdf</a></h3>
  </div>
 </div>

{% endblock %}

另外,是否有更好的模块要处理?

脚掌PA

我建议使用wkhtmltopdf。

简短的答案?在Ubuntu上,安装二进制文件:

apt-get install wkhtmltopdf

在CentOS / RedHat上:

yum install wkhtmltox-0.12.2.1_linux-centos6-amd64.rpm

然后pip安装一个Python包:

pip install pdfkit

然后是代码:

import pdfkit

input_filename = 'README.html'
output_filename = 'README.pdf'

with open(input_filename, 'r') as f:
    html_text = f.read()

pdfkit.from_string(html_text, output_filename)

对于长答案和详细信息,我整理了一篇博客文章:

https://www.pyphilly.org/generating-pdf-markdown-or-html/

那应该照顾到PDF的创建;您必须决定如何处理下载。祝你好运!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Ajax在Django中打开Reportlab生成的PDF文件

来自分类Dev

用reportlab生成pdf

来自分类Dev

使用javascript和html生成pdf报告

来自分类Dev

使用 reportlab 生成的 pdf 文件,保存为纯文本

来自分类Dev

使用wkhtmltopdf Django生成pdf

来自分类Dev

如何使用Django生成pdf

来自分类Dev

使用wkhtmltopdf Django生成pdf

来自分类Dev

使用Prawn从html生成pdf

来自分类Dev

如何使用iText和XMLWorker生成有效的PDF / A文件(HTML到PDF / A进程)

来自分类Dev

Django-PDF响应编码错误-ReportLab

来自分类Dev

使用Reportlab的多个页面-Django

来自分类Dev

使用Reportlab的多个页面-Django

来自分类Dev

从外部 html 文件和 css 生成 pdf

来自分类Dev

使用Flask下载ReportLab PDF-Python

来自分类Dev

使用dompdf和CodeIgniter生成pdf文件

来自分类Dev

使用dompdf和CodeIgniter生成pdf文件

来自分类Dev

使用 html 元素创建 pdf 文件以在 php 和 codeigniter 中生成发票的可能选项

来自分类Dev

提供制表符标题以及reportlab生成的pdf

来自分类Dev

在Angularjs中使用pdfMake从HTML生成PDF

来自分类Dev

使用Django的reportlab标头的参数

来自分类Dev

在Codeigniter中使用html2pdf批量生成pdf

来自分类Dev

使用Python生成报告:PDF或HTML到PDF

来自分类Dev

使用itext从带有图像和CSS的HTML字符串生成HTML字符串的pdf

来自分类Dev

如何设置django保存通过reportlab创建的pdf的目录?

来自分类Dev

如何设置django保存通过reportlab创建的pdf的目录?

来自分类Dev

Weasyprint或Reportlab,用于在Heroku上生成Django报告

来自分类Dev

使用 Django 将 HTML 转换为 PDF

来自分类Dev

是否可以在reportlab生成的pdf文档中插入pdf格式的图像?

来自分类Dev

使用Python 3.4创建的ReportLab pdf中缺少字母č

Related 相关文章

热门标签

归档