def create(self, cr, uid, ids, data, context=None):
pool = registry(cr.dbname)
merger = PdfFileMerger()
outfiles = []
for p in pool.get(self.model).read(cr,uid,ids):
outfiles.append(self.newfilename())
sla = self.render(cr,uid,p,data.get('template') or self.template)
if self.report_type == 'scribus_sla':
os.unlink(outfiles[-1])
return (sla.read(),'sla')
command = "xvfb-run -a scribus-ng -ns -g %s -py %s -pa -o %s" % (sla.name,os.path.join(get_module_path('report_scribus'), 'scribus.py'),outfiles[-1])
_logger.info(command)
res = os.system(command)
sla.close()
if not os.path.exists(outfiles[-1]) or os.stat(outfiles[-1]).st_size == 0:
raise MissingError('There are something wrong with the template or scribus installation')
merger.append(PdfFileReader(file(outfiles[-1], 'rb')))
outfile = tempfile.NamedTemporaryFile(mode='w+b',suffix='.pdf')
merger.write(outfile.name)
for filename in outfiles:
os.unlink(filename)
outfile.seek(0)
pdf = outfile.read()
outfile.close()
return (pdf,'pdf')
评论列表
文章目录