@@ -39,8 +39,8 @@ def index(request):
39
39
def copyright (request ):
40
40
return render (request , 'qr_app/copyright.html' , {});
41
41
42
- def get_temp_name ():
43
- return '/tmp/' + next (tempfile ._get_candidate_names ()) + '.png'
42
+ def get_temp_name (extension = '.png' ):
43
+ return '/tmp/' + next (tempfile ._get_candidate_names ()) + extension
44
44
45
45
46
46
def save_file (f ):
@@ -120,6 +120,8 @@ def get_your_qr_page(request, qr_secret):
120
120
if ri is not None :
121
121
return render (request , 'qr_app/your-qr-page.html' , context = {
122
122
'qr_image' : reverse ('get_qr_from_secret' , args = [qr_secret ]),
123
+ 'qr_image_svg' : reverse ('get_qr_from_secret_svg' , args = [qr_secret ]),
124
+ 'qr_image_eps' : reverse ('get_qr_from_secret_eps' , args = [qr_secret ]),
123
125
'qr_url' : ri .to_url ,
124
126
})
125
127
else :
@@ -149,3 +151,37 @@ def get_qr_from_secret(request, qr_secret):
149
151
return HttpResponse (f .read (), content_type = "image/png" )
150
152
else :
151
153
return HttpResponseNotFound ('<h1>QR code not found</h1>' )
154
+
155
+
156
+ def get_qr_from_secret_svg (request , qr_secret ):
157
+ ri = get_ri_from_secret (qr_secret )
158
+ if ri is not None :
159
+ qr_data_utf8 = ri .qr_data_utf8
160
+ qr = pyqrcode .create (
161
+ qr_data_utf8 , mode = 'alphanumeric' ,
162
+ error = ri .errorCorrectionLevel , encoding = 'UTF-8' )
163
+
164
+ qrfile = get_temp_name ('.svg' )
165
+ qr .svg (qrfile , scale = 5 )
166
+
167
+ with open (qrfile , "rb" ) as f :
168
+ return HttpResponse (f .read (), content_type = "image/svg+xml" )
169
+ else :
170
+ return HttpResponseNotFound ('<h1>QR code not found</h1>' )
171
+
172
+
173
+ def get_qr_from_secret_eps (request , qr_secret ):
174
+ ri = get_ri_from_secret (qr_secret )
175
+ if ri is not None :
176
+ qr_data_utf8 = ri .qr_data_utf8
177
+ qr = pyqrcode .create (
178
+ qr_data_utf8 , mode = 'alphanumeric' ,
179
+ error = ri .errorCorrectionLevel , encoding = 'UTF-8' )
180
+
181
+ qrfile = get_temp_name ('.eps' )
182
+ qr .eps (qrfile , scale = 5 )
183
+
184
+ with open (qrfile , "rb" ) as f :
185
+ return HttpResponse (f .read (), content_type = "image/eps" )
186
+ else :
187
+ return HttpResponseNotFound ('<h1>QR code not found</h1>' )
0 commit comments