comparison odfcast/convert.py @ 99:349d49bb69f4

Porting on python3
author Magnus Schieder <mschieder@intevation.de>
date Tue, 19 Jun 2018 15:07:56 +0200
parents b2f96072b8d7
children
comparison
equal deleted inserted replaced
98:b2f96072b8d7 99:349d49bb69f4
49 "details": details, 49 "details": details,
50 }), JSON_MIMETYPE 50 }), JSON_MIMETYPE
51 51
52 def html(self, title, error_code, details): 52 def html(self, title, error_code, details):
53 data = ( 53 data = (
54 u'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\n' 54 '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\n'
55 u'<title>%(code)s %(name)s</title>\n' 55 '<title>%(code)s %(name)s</title>\n'
56 u'<h1>%(name)s</h1>\n' 56 '<h1>%(name)s</h1>\n'
57 u'%(details)s\n' 57 '%(details)s\n'
58 ) % { 58 ) % {
59 "code": error_code, 59 "code": error_code,
60 "name": escape(title), 60 "name": escape(title),
61 "details": escape(details), 61 "details": escape(details),
62 } 62 }
152 t = Template(outfile, tfile, ignore_undefined_variables=True) 152 t = Template(outfile, tfile, ignore_undefined_variables=True)
153 t.render(datadict) 153 t.render(datadict)
154 outfile.close() 154 outfile.close()
155 outfile = tfile 155 outfile = tfile
156 outfile.seek(0) 156 outfile.seek(0)
157 except Exception, e: 157 except Exception as e:
158 log.exception("Template error") 158 log.exception("Template error")
159 return TemplateErrorResponse(details=str(e)) 159 return TemplateErrorResponse(details=str(e))
160 160
161 if fformat != "odt": 161 if fformat != "odt":
162 try: 162 try:
163 outfile = self.convert(outfile, fformat) 163 outfile = self.convert(outfile, fformat)
164 except Exception, e: 164 except Exception as e:
165 log.exception("Conversion error") 165 log.exception("Conversion error")
166 return ConversionErrorResponse(details=str(e)) 166 return ConversionErrorResponse(details=str(e))
167 167
168 log.debug("Document converted") 168 log.debug("Document converted")
169 return Response(outfile, mimetype=mimetype) 169 return Response(outfile, mimetype=mimetype)
208 208
209 ffiles = [] 209 ffiles = []
210 210
211 # allow files to have arbitray form names 211 # allow files to have arbitray form names
212 # order files by their form names 212 # order files by their form names
213 for key, value in sorted(request.files.iterlists(), 213 for key, value in sorted(request.files.lists(),
214 key=lambda x: x[0].lower()): 214 key=lambda x: x[0].lower()):
215 ffiles.extend(value) 215 ffiles.extend(value)
216 216
217 for ffile in ffiles: 217 for ffile in ffiles:
218 try: 218 try:
219 merger.append(ffile, import_bookmarks=False) 219 merger.append(ffile, import_bookmarks=False)
220 except Exception, e: 220 except Exception as e:
221 log.exception("Error merging file %s" % ffile) 221 log.exception("Error merging file %s" % ffile)
222 if self.is_ignore_file_errors(): 222 if self.is_ignore_file_errors():
223 continue 223 continue
224 else: 224 else:
225 return MergeErrorResponse(details=str(e)) 225 return MergeErrorResponse(details=str(e))
228 228
229 try: 229 try:
230 merger.write(outfile) 230 merger.write(outfile)
231 merger.close() 231 merger.close()
232 outfile.seek(0) 232 outfile.seek(0)
233 except PyPdfError, e: 233 except PyPdfError as e:
234 log.exception("Merge error") 234 log.exception("Merge error")
235 return MergeErrorResponse(details=str(e)) 235 return MergeErrorResponse(details=str(e))
236 236
237 log.debug("PDF documents merged") 237 log.debug("PDF documents merged")
238 return Response(outfile, mimetype=PDF_MIMETYPE) 238 return Response(outfile, mimetype=PDF_MIMETYPE)
266 266
267 with tempfile.TemporaryFile() as outfile: 267 with tempfile.TemporaryFile() as outfile:
268 merger = PdfFileMerger(strict=False) 268 merger = PdfFileMerger(strict=False)
269 try: 269 try:
270 merger.append(ffile, import_bookmarks=False) 270 merger.append(ffile, import_bookmarks=False)
271 except Exception, e: 271 except Exception as e:
272 log.exception("Error testing merger.append of %s" % ffile) 272 log.exception("Error testing merger.append of %s" % ffile)
273 return MergeErrorResponse(details=str(e), http_error_code=422) 273 return MergeErrorResponse(details=str(e), http_error_code=422)
274 274
275 try: 275 try:
276 merger.write(outfile) 276 merger.write(outfile)
277 except Exception, e: 277 except Exception as e:
278 log.exception("Error testing merger.write of merged %s" % ffile) 278 log.exception("Error testing merger.write of merged %s" % ffile)
279 return MergeErrorResponse(details=str(e), http_error_code=422) 279 return MergeErrorResponse(details=str(e), http_error_code=422)
280 280
281 merger.close() 281 merger.close()
282 282
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)