2016-07-14 1 views
0

Привет, ребята, я пытаюсь сделать небольшой PDF-файл с помощью python django, используя библиотеку reportlab. Я сделал несколько PDF-файлов только с некоторым текстом, но я понятия не имею, как это сделать с помощью html. Интересно, вы, ребята, можете дать мне пример, используя что-то вроде <h1>Hello</h1> или что-то с html, потому что, если я использую drawString, он покажет мне '<h1>HELLO</h1>"Django Reportlab, используя HTML

Позвольте мне показать вам мой источник.

from reportlab.pdfgen import canvas 
from django.http import HttpResponse 
from reportlab.lib.pagesizes import letter 
from reportlab.lib.utils import ImageReader 
import os 
from io import BytesIO 
import PIL.Image 

def index(request): 
    return HttpResponse('Hola Marcos :D') 


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


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

    logo = ImageReader('http://django-unfriendly.readthedocs.io/en/latest/_static/img/python-logo-256.png') 

    numero =150 
    uno = 204 - numero 
    dos = uno 

    p.drawImage(logo, 250, 500,uno,dos, mask='auto') 

    p.setLineWidth(.1) 
    p.setFont('Helvetica',22) 
    p.drawString(30,750,'Company') 

    p.setFont('Helvetica',22) 
    p.drawString(30,725,'Report') 

    p.setFont('Helvetica-Bold', 12) 
    p.drawString(480,759,"7/01/1986") 
    p.line(460,747,560,747) 

    # Draw things on the PDF. Here's where the PDF generation happens. 
    # See the ReportLab documentation for the full list of functionality. 
    suma = (7*75675678567856785)*70+2*9090 
    suma = str(suma) 
    resta = 100-9 
    resta = str(resta) 

    p.drawString(100, 630, 'Este podria ser el primer informe de empresa con python Django') 
    p.drawString(100, 600, suma) 
    p.drawString(100, 590, resta) 
    p.drawString(100, 570, 'O2A5X1996A3B4B4A6') 


    # Close the PDF object cleanly, and we're done. 
    p.showPage() 
    p.save() 
    pdf = buffer.getvalue() 
    buffer.close() 
    response.write(pdf) 
    return response 

# Create your views here. 

ответ

Смежные вопросы