2016-01-19 61 views
1

我正在嘗試創建一個將html文件轉換爲pdf的django項目。我使用的是xhtml2pdf,特別是比薩。我可以得到pdf,但pdf中沒有表單域。在我的觀點我有一個包含以下代碼的方法:如何在使用xhtml2pdf/pisa時獲得可編輯字段(表單域)?

views.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') 

PIP凍結:

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中。
任何指導表示讚賞。謝謝。

+0

這裏有一個xhtml2pdf問題。尚無迴應。 https://github.com/xhtml2pdf/xhtml2pdf/issues/66 – approxiblue

+0

是的,很確定這是不可能的。我不再需要通過提問來實現我正在努力的目標。 –

回答

0

正如在評論中提到的,xhtml2pdf不支持它。該庫使用reportlab生成PDF文件,而reportlab本身不支持它。實際上甚至是他們的商業版本supports only the filling of existing forms

但是,如在this answer中暗示的那樣,reportlab在此有一些實驗性的工作。我檢查了current source,看起來它仍在繼續。所以,如果你(但似乎你不再)或其他人需要這樣做,你可以試試看。但是將HTML變成PDF格式會複雜得多...

即使看着其他庫,看起來目前還沒有真正的開源/免費選項來生成可編輯的PDF表單。

相關問題