No Description

transcripcionmaker.py 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. def crear_transcripcion(id):
  2. from connect import connection
  3. import sqlalchemy as db
  4. from flask import jsonify
  5. ###### headers
  6. headers={}
  7. headers.update({"1":"Codigo"})
  8. headers.update({"2":"Curso"})
  9. headers.update({"3":"Nota"})
  10. headers.update({"4":"Creditos"})
  11. ###### estudiante
  12. query = 'SELECT nombres, apellidos, email, fecha_nacimiento, direccion1, direccion2, ciudad, pais, zipcode,\
  13. telefono1, telefono2\
  14. FROM usuarios u, estudiantes m \
  15. WHERE u.id = '+id+ ' AND u.id = m.user_id'
  16. result_db = connection.execute(query).fetchall()
  17. q = result_db
  18. q = q[0]
  19. estudiante={}
  20. estudiante.update({"nombres":str(q[0])})
  21. estudiante.update({"apellidos":str(q[1])})
  22. estudiante.update({"email":str(q[2])})
  23. estudiante.update({"fecha_nacimiento":str(q[3])})
  24. estudiante.update({"direccion1":str(q[4])})
  25. estudiante.update({"direccion2":str(q[5])})
  26. estudiante.update({"ciudad":str(q[6])})
  27. estudiante.update({"pais":str(q[7])})
  28. estudiante.update({"zipcode":str(q[8])})
  29. estudiante.update({"telefono1":str(q[9])})
  30. estudiante.update({"telefono2":str(q[10])})
  31. ###### semestres
  32. q = result_db
  33. semestres={}
  34. semestre = ('1', '2', '3', '4', )
  35. clases = ('ingles', 'espa~Nol', 'arte', 'mate', )
  36. for num in semestre:
  37. cursos = {}
  38. for clase in clases:
  39. curso = {}
  40. curso.update({"codigo":'33'})
  41. curso.update({"Nota":'A'})
  42. curso.update({"Creditos":'3'})
  43. curso.update({"nombre":clase})
  44. cursos.update({clase:curso})
  45. semestres.update({"semestre "+num:cursos})
  46. result = {}
  47. result.update({"headers":headers})
  48. result.update({"estudiante":estudiante})
  49. result.update({"semestres":semestres})
  50. # print(result)
  51. #####################################################################
  52. #####################################################################
  53. #####################################################################
  54. # https://www.blog.pythonlibrary.org/2018/06/05/creating-pdfs-with-pyfpdf-and-python/
  55. from fpdf import FPDF, HTMLMixin
  56. class HTML2PDF(FPDF, HTMLMixin):
  57. pass
  58. html = '''<h1 align="center">PyFPDF HTML Demo</h1>
  59. <p>This is regular text</p>
  60. <p>You can also <b>bold</b>, <i>italicize</i> or <u>underline</u>
  61. '''
  62. pdf = HTML2PDF()
  63. pdf.add_page()
  64. pdf.write_html(html)
  65. # pdf.output('html2pdf.pdf')
  66. ##########
  67. # pdf = FPDF()
  68. # pdf.add_page()
  69. pdf.set_font("Arial", size=12)
  70. pdf.cell(200, 10, txt="Welcome to Python!", ln=1, align="C")
  71. pdf.cell(200, 10, txt="Welcome to Python!", ln=1, align="C")
  72. pdf.cell(200, 10, txt="Welcome to Python!", ln=1, align="C")
  73. pdf.rect(20, 20, 100, 50)
  74. ###########
  75. spacing=1
  76. data = [['First Name', 'Last Name', 'email', 'zip'],
  77. ['Mike', 'Driscoll', 'mike@somewhere.com', '55555'],
  78. ['John', 'Doe', 'jdoe@doe.com', '12345'],
  79. ['Nina', 'Ma', 'inane@where.com', '54321']
  80. ]
  81. # pdf = FPDF()
  82. pdf.set_font("Arial", size=12)
  83. # pdf.add_page()
  84. col_width = pdf.w / 4.5
  85. row_height = pdf.font_size
  86. for row in data:
  87. for item in row:
  88. pdf.cell(col_width, row_height*spacing,
  89. txt=item, border=1)
  90. pdf.ln(row_height*spacing)
  91. ###########
  92. pdf.output("simple_demo.pdf")
  93. #####################################################################
  94. #####################################################################
  95. #####################################################################
  96. return jsonify(result)