old_contents: # -*- coding: utf-8 -*-
  from django.shortcuts import render
  from django.http import HttpResponse
  from django.contrib.auth.decorators import login_required
  from reportlab.pdfgen import canvas
  from reportlab.lib.pagesizes import A4
  from reportlab.lib.units import cm
  from core import settings
  from io import BytesIO
  from models import Bill
  
  @login_required
  def generate_pdf(request, id):
      bill = Bill.objects.get(id=id)
      response = HttpResponse(content_type='application/pdf')
      response['Content-Disposition'] = 'attachment; filename="%s.pdf"' % bill.number
  
      pdf = canvas.Canvas(filename="test.pdf", pagesize=A4)
      # define new 0,0 bottom left with cm as margin
      pdf.translate(cm,cm)
      # define document width and height with cm as margin
      width, height = A4
      width = width - 2*cm
      height = height - 2*cm
  
      # Create a buffer
      buffer = BytesIO()
      buffer.close()
  
  
  
new_contents: # -*- coding: utf-8 -*-
  from django.shortcuts import render
  from django.http import HttpResponse
  from django.contrib.auth.decorators import login_required
  from reportlab.pdfgen import canvas
  from reportlab.lib.pagesizes import A4
  from reportlab.lib.units import cm
  from core import settings
  from io import BytesIO
  from models import Bill
  
  @login_required
  def generate_pdf(request, id):
      bill = Bill.objects.get(id=id)
      response = HttpResponse(content_type='application/pdf')
      response['Content-Disposition'] = 'attachment; filename="%s.pdf"' % bill.number
  
      pdf = canvas.Canvas(filename="test.pdf", pagesize=A4)
      # define new 0,0 bottom left with cm as margin
      pdf.translate(cm,cm)
      # define document width and height with cm as margin
      width, height = A4
      width = width - 2*cm
      height = height - 2*cm
  
      # if debug draw lines for document limit
      if settings.DEBUG is True:
          pdf.setStrokeColorRGB(1,0,0)
          pdf.line(0,0,width,0)
          pdf.line(0,0,0,height)
          pdf.line(0,height,width,height)
          pdf.line(width,height,width,0)
  
      # Create a buffer
      buffer = BytesIO()
      buffer.close()
  
  
  
subject: document limits in debug env