-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
92 lines (79 loc) · 4.69 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
'''For QR code generating'''
import os
import qrcode
from qrcode.image.styledpil import StyledPilImage
from openpyxl import load_workbook
#===================================================================================================
# Forder check
#===================================================================================================
####################################################################################################
# Path want to check
####################################################################################################
directoryNow = os.path.dirname(__file__)
folderPathOutput = directoryNow + "\\Output"
folderPathInput = directoryNow + "\\Input"
dataFile = directoryNow + "\\data.xlsx"
####################################################################################################
# Check whether the folder is exist. If no, auto generate
####################################################################################################
if not os.path.isdir(folderPathOutput):
os.makedirs(folderPathOutput)
#===================================================================================================
# Excel analyze
#===================================================================================================
####################################################################################################
# Read Excel file
####################################################################################################
wb = load_workbook(dataFile)
####################################################################################################
# Get Sheet by name
####################################################################################################
sheet = wb['Sheet1']
#===================================================================================================
# QR code generate
#===================================================================================================
for i in range(2, sheet.max_row + 1):
################################################################################################
# Get excel data
################################################################################################
numData = sheet.cell(row=i, column=1).value
moteData = sheet.cell(row=i, column=2).value
linkData = sheet.cell(row=i, column=3).value
inNameData = sheet.cell(row=i, column=4).value
outNameData = sheet.cell(row=i, column=5).value
################################################################################################
# input/output file name assign
################################################################################################
inputFileName = folderPathInput + "\\" + inNameData
outputFileName = folderPathOutput + "\\" + str(outNameData) + ".jpg"
################################################################################################
# QR Code gen
#
# Some parameter to config
# 1. box_size
# Set the nunber of pixel for each QR code box
# 2. border
# Set the width of QR code border
# 3. version
# Set the QR code version
# 4. Error correction
# ERROR_CORRECT_L: Can correct the mistake less than 7%
# ERROR_CORRECT_M: Can correct the mistake less than 15% (default)
# ERROR_CORRECT_Q: Can correct the mistake less than 25%
# ERROR_CORRECT_H: Can correct the mistake less than 30%
################################################################################################
qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_H)
qr.add_data(linkData)
img = qr.make_image(image_factory=StyledPilImage, embeded_image_path=inputFileName)
################################################################################################
# Check output file is exist or not. If yes, remove it
################################################################################################
if os.path.isfile(outputFileName):
os.remove(outputFileName)
################################################################################################
# Create file
################################################################################################
img.save(outputFileName)
#===================================================================================================
# EOF
#===================================================================================================