我正在尝试创建一个将 html 文件转换为 pdf 的 django 项目。我正在使用 xhtml2pdf,特别是比萨。我可以获取 pdf,但 pdf 中没有表单字段。在我看来,我有一个包含以下代码的方法:
视图.py
from django.template.loader import get_template
from django.template import Context
from django.views.generic import TemplateView
from xhtml2pdf import pisa
from django.http import HttpResponse
from api.models import Api
def MyPDF(request):
nameOfFormToDisplay = request.POST['nameOfFormToDisplay']
current_number_to_use = Api.objects.filter(formName=nameOfFormToDisplay)[0].currentNumberToUse
current_date_to_use = Api.objects.filter(formName=nameOfFormToDisplay)[0].currentDate
currentApiSelected = Api.objects.filter(formName=nameOfFormToDisplay)[0]
currentApiSelected.currentNumberToUse = current_number_to_use +1
currentApiSelected.save()
templateString = (nameOfFormToDisplay + ".html")
template = get_template(templateString)
myContextObject = {'incrementingNumber': current_number_to_use, 'currentDate':current_date_to_use}
html = template.render(Context(myContextObject))
file = open('test.pdf', "w+b")
pisaStatus = pisa.CreatePDF(html.encode('utf-8'), dest=file, encoding='utf-8')
file.seek(0)
pdf = file.read()
file.close()
return HttpResponse(pdf, 'application/pdf')
点冻结:
Django==1.8.7
django-easy-pdf==0.1.0
django-wkhtmltopdf==3.0.0
djangorestframework==3.3.1
html5lib==0.9999999
pep8==1.6.2
Pillow==2.9.0
psycopg2==2.6.1
PyPDF2==1.25.1
raven==5.8.1
reportlab==2.7
six==1.10.0
wheel==0.24.0
xhtml2pdf==0.0.6
pdf 在浏览器窗口中打开,而不是在 acrobat 中打开。我搜索并尝试了其他软件,如 django-wkhtmltopdf 和 pdfcrowd。我正在Mac上开发。我不确定是否可以在 pdf 中放置特定标签以使“表单域”显示在 pdf 中。
任何指导表示赞赏。谢谢。