Develop a Django app that performs PDF generation for any models created in previous laboratory components

Develop a Django app that performs PDF generation for any models created in previous laboratory components

Programs:-

views.py:-

from django.http import HttpResponse
from ap3.models import Course
from reportlab.pdfgen import canvas

def construct_pdf_from_model(request):
    courses = Course.objects.all()

    response = HttpResponse(content_type='application/pdf')
    response['Content-Disposition'] = 'attachment; filename="courses_data.pdf"'

    c = canvas.Canvas(response)
    c.drawString(70, 720, "Course Name")
    c.drawString(170, 720, "Course Code")
    c.drawString(270, 720, "Credits")
    y = 660
    for course in courses:
        c.drawString(70, y, course.course_name)
        c.drawString(170, y, course.course_code)
        c.drawString(270, y, str(course.course_credits))
        y = y - 20  # Adjust this value based on your preference for spacing between rows

    c.showPage()
    c.save()

    return response

urls.py:-

from django.contrib import admin
from django.urls import path
from ap3.views import construct_pdf_from_model

admin.site.site_header = "My Site Header"
admin.site.site_title = "My Site Title"
admin.site.index_title = "My Site Index"

urlpatterns = [
    path('secretadmin/', admin.site.urls),
    path('construct_pdf_from_model/', construct_pdf_from_model),
]

Leave a Reply

Your email address will not be published. Required fields are marked *