main.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. """
  2. 功能:生成barcode和学号,并生成图片和导入文件
  3. 时间:2020/08/18
  4. """
  5. from pystrich.code128 import Code128Encoder
  6. from PIL import Image
  7. import openpyxl
  8. import os
  9. temppath="template/考生信息表-模板.xlsx"
  10. student_num=10000
  11. imagepath = "output/image"
  12. tempimages=[]
  13. import random
  14. def main():
  15. #读取所有图片
  16. tempimage=os.listdir("template/tempimage")
  17. for images in tempimage:
  18. tempimages.append("template/tempimage"+"/"+images)
  19. if not os.path.exists(imagepath):
  20. os.makedirs(imagepath)
  21. student_template_file = openpyxl.load_workbook(temppath)
  22. student_sheet = student_template_file.active
  23. start_row = 2
  24. start_code_prefix=19000000
  25. for idx in range(student_num):
  26. student_sheet.cell(start_row, 1,start_code_prefix)
  27. """
  28. 生成图片
  29. """
  30. generateImage(start_code_prefix)
  31. student_sheet.cell(start_row, 2, "学生_"+str(idx))
  32. student_sheet.cell(start_row, 3, "省艺术培训协会")
  33. student_sheet.cell(start_row, 4, 1)
  34. student_sheet.cell(start_row, 5, "第二考场")
  35. student_sheet.cell(start_row, 6, "四川")
  36. student_sheet.cell(start_row, 7, "四川音乐学院")
  37. start_code_prefix=start_code_prefix+1
  38. start_row=start_row+1
  39. #student_template_file.save("output/student.xlsx")
  40. def generateImage(student_code):
  41. encoder = Code128Encoder(str(student_code))
  42. encoder.save("temp.png")
  43. codeimg=Image.open("temp.png")
  44. codeimg=codeimg.transpose(Image.ROTATE_90)
  45. coverimage=Image.open(tempimages[0])
  46. coverimage.paste(codeimg,(100,1500))
  47. coverimage.save(imagepath+"/"+str(student_code)+".jpg")
  48. if __name__=="__main__":
  49. main()