2016-07-08 10 views
-2

Ich versuche, vorgefertigte PDF-Formular mit Datenbankdaten zu füllen und es zu glätten. Wenn der Benutzer beispielsweise ein Feld namens "name" eingibt, sollte es in das Namensfeld des PDF-Formulars eingefügt werden.Wie füllt man ein PDF-Formular in Django/Python?

+0

Wie Sie bisher erreicht? Kannst du etwas Code zeigen? –

Antwort

0

Sie können reportlab Bibliothek in combinaison mit Django Ansichten verwenden:

from io import BytesIO 
from reportlab.pdfgen import canvas 
from django.http import HttpResponse 

def some_view(request): 
    # Create the HttpResponse object with the appropriate PDF headers. 
    response = HttpResponse(content_type='application/pdf') 
    response['Content-Disposition'] = 'attachment; filename="somefilename.pdf"' 

    buffer = BytesIO() 

    # Create the PDF object, using the BytesIO object as its "file." 
    p = canvas.Canvas(buffer) 

    # Draw things on the PDF. Here's where the PDF generation happens. 
    # See the ReportLab documentation for the full list of functionality. 
    p.drawString(100, 100, "Hello world.") 

    # Close the PDF object cleanly. 
    p.showPage() 
    p.save() 

    # Get the value of the BytesIO buffer and write it to the response. 
    pdf = buffer.getvalue() 
    buffer.close() 
    response.write(pdf) 
    return response 

Django Dokumentation: https://docs.djangoproject.com/en/1.9/howto/outputting-pdf/

Reportlab Dokumentation: http://www.reportlab.com/documentation/

Verwandte Themen