comparison odfcast/convert.py @ 62:16352bd395fa

Allow to ignore merge errors on files Add a request param ignore_file_errors to allow skipping invalid pdf files during merge.
author Björn Ricks <bjoern.ricks@intevation.de>
date Wed, 12 Nov 2014 14:02:50 +0100
parents d8fc52aceb9c
children 5d1e486140ae
comparison
equal deleted inserted replaced
61:d8fc52aceb9c 62:16352bd395fa
196 log.debug("Merging PDF documents") 196 log.debug("Merging PDF documents")
197 197
198 merger = PdfFileMerger() 198 merger = PdfFileMerger()
199 ffiles = request.files.getlist('files') 199 ffiles = request.files.getlist('files')
200 200
201 for ffile in ffiles:
202 try:
203 merger.append(ffile)
204 except Exception, e:
205 log.exception("Error merging file %s" % ffile)
206 if self.is_ignore_file_errors():
207 continue
208 else:
209 return MergeErrorResponse(details=str(e))
210
211 outfile = tempfile.NamedTemporaryFile()
212
201 try: 213 try:
202 for ffile in ffiles:
203 merger.append(ffile)
204
205 outfile = tempfile.NamedTemporaryFile()
206
207 merger.write(outfile) 214 merger.write(outfile)
208 merger.close() 215 merger.close()
209 outfile.seek(0) 216 outfile.seek(0)
210 except PyPdfError, e: 217 except PyPdfError, e:
211 log.exception("Merge error") 218 log.exception("Merge error")
212 return MergeErrorResponse(details=str(e)) 219 return MergeErrorResponse(details=str(e))
213 220
214 log.debug("PDF documents merged") 221 log.debug("PDF documents merged")
215 return Response(outfile, mimetype=PDF_MIMETYPE) 222 return Response(outfile, mimetype=PDF_MIMETYPE)
216 223
224 def is_ignore_file_errors(self):
225 return request.args.get("ignore_file_errors", False) or \
226 request.form.get("ignore_file_errors", False)
227
217 228
218 class TemplateView(MethodView): 229 class TemplateView(MethodView):
219 230
220 template_name = "" 231 template_name = ""
221 232
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)