def pdf(self, operationName, classic=None, template_file=None): """ Restituisce una stringa contenente il report in formato PDF """ azienda = Azienda().getRecord(id=Environment.azienda) scribusVersion(self._slaTemplate) if not Environment.new_print_enjine: if self._slaTemplateObj is None: self._slaTemplateObj = SlaTpl2Sla( slaFileName=self._slaTemplate, pdfFolder=self._anagrafica._folder, report=self._anagrafica._reportType, classic=classic, template_file=template_file) param = [] for d in self.objects: d.resolveProperties() param.append(d.dictionary(complete=True)) multilinedirtywork(param) if azienda and param: azidict = azienda.dictionary(complete=True) for a, b in azidict.items(): k = "azi_" + a azidict[k] = b del azidict[a] param[0].update(azidict) if not Environment.new_print_enjine: return self._slaTemplateObj.serialize(param, self.objects) else: return Sla2Pdf(slaFileName=self._slaTemplate, pdfFolder=self._anagrafica._folder, report=self._anagrafica._reportType).createPDF( objects=param, daos=self.objects)
def pdf(self, operationName, classic=None, template_file=None): """ Restituisce una stringa contenente il report in formato PDF """ azienda = Azienda().getRecord(id=Environment.azienda) param = [] for d in self.objects: d.resolveProperties() param.append(d.dictionary(complete=True)) # multilinedirtywork(param) if azienda: azidict = azienda.dictionary(complete=True) for a, b in azidict.items(): k = "azi_" + a azidict[k] = b del azidict[a] if param: param[0].update(azidict) if template_file: scribusVersion(Environment.labelTemplatesDir + template_file) else: scribusVersion(self._slaTemplate) if not Environment.new_print_enjine: print "OLD PRINT ENGINE" self._slaTemplateObj = SlaTpl2Sla(slaFileName=self._slaTemplate, pdfFolder=self._anagrafica._folder, report=self._anagrafica._reportType, label=True).serialize( param, self.objects, classic=classic, template_file=template_file) return self._slaTemplateObj else: print "NEW PRINT ENGINE" if template_file: slafile = Environment.labelTemplatesDir + template_file else: slafile = self._slaTemplate SlaTpl2Sla_ng(slafile=None, label=True, report=self._anagrafica._reportType, objects=param, daos=self.objects, slaFileName=slafile, pdfFolder=self._anagrafica._folder, classic=classic, template_file=template_file) return Sla2Pdf_ng(slafile=self._anagrafica._folder \ + "_temppp.sla").translate()
def pdf(self, operationName, classic=None, template_file=None): """ Qui si stampa selezione """ from sqlalchemy.orm import undefer_group self._slaTemplate = None self._slaTemplateObj = None # aggiungo i dati azienda al dao in modo che si gestiscano a monte azienda = Azienda().getRecord(id=Environment.azienda) operationNameUnderscored = operationName.replace(' ', '_').lower() a = Environment.templatesDir.decode("utf-8") + operationNameUnderscored + '.sla' Environment.pg2log.info(a) if os.path.exists(Environment.templatesDir + operationNameUnderscored \ + '.sla'): self._slaTemplate = Environment.templatesDir \ + operationNameUnderscored \ + '.sla' elif "DDT" in operationName and \ os.path.exists(Environment.templatesDir + 'ddt.sla'): self._slaTemplate = Environment.templatesDir + 'ddt.sla' else: self._slaTemplate = Environment.templatesDir \ + self.defaultFileName \ + '.sla' """ Restituisce una stringa contenente il report in formato PDF """ if self.dao.__class__.__name__ in Environment.fromHtmlLits: operation = Gtk.PrintOperation() setting = Gtk.PageSetup() ps = Gtk.PaperSize.new_custom("cc", "cc", 210, 297, gtk.Unit.MM) st = Gtk.PrintSettings() s = Gtk.PageSetup() s.set_paper_size(ps) margine_fondo = float(setconf("Stampa", "singolo_margine_basso")or 4.3) s.set_bottom_margin(margine_fondo, gtk.Unit.MM) margine_sinistro = float(setconf("Stampa", "singolo_margine_sinistro")or 4.3) s.set_left_margin(margine_sinistro, gtk.Unit.MM) margine_destro = float(setconf("Stampa", "singolo_margine_destro")or 4.3) s.set_right_margin(margine_destro, gtk.Unit.MM) margine_alto = float(setconf("Stampa", "singolo_margine_alto")or 4.3) s.set_top_margin(margine_alto, gtk.Unit.MM) orientamento = str(setconf("Stampa", "singolo_ori")) if orientamento == "orizzontale": s.set_orientation(Gtk.PageOrientation.LANDSCAPE) operation.set_default_page_setup(s) operation.set_export_filename(Environment.tempDir + ".temp.pdf") p = self._gtkHtml.get_main_frame().print_full(operation,gtk.PrintOperationAction.EXPORT) g = file(Environment.tempDir + ".temp.pdf", "rb") f = g.read() g.close() return f param = [self.dao.dictionary(complete=True)] multilinedirtywork(param) if azienda: azidict = azienda.dictionary(complete=True) for a, b in azidict.items(): k = "azi_" + a azidict[k] = b del azidict[a] param[0].update(azidict) if 'operazione' in param[0] and 'causale_trasporto' in param[0]: if (param[0]["operazione"] in ["DDT vendita", "DDT acquisto"]) \ and param[0]["causale_trasporto"] != "": param[0]["operazione"] = "DDT" # controllo la versione dello sla che devo elaborare versione = scribusVersion(self._slaTemplate) Environment.pg2log.info("VERSIONE SLA: " + str(versione)) if Environment.new_print_enjine: stpl2sla = SlaTpl2Sla_ng( slafile=None, label=None, report=None, objects=param, daos=self.dao, slaFileName=self._slaTemplate, pdfFolder=self._anagrafica._folder, classic=True, template_file=None).fileElaborated() return Sla2Pdf_ng(slafile=stpl2sla).translate() else: if self._slaTemplateObj is None: self._slaTemplateObj = SlaTpl2Sla( slaFileName=self._slaTemplate, pdfFolder=self._anagrafica._folder, report=self._anagrafica._reportType, classic=True, template_file=template_file) print("DAO IN STAMPA CLASSICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA") Environment.pg2log.info("DAO IN STAMPA CLASSIC: " + str(self.dao)) return self._slaTemplateObj.serialize(param, classic=True, dao=self.dao)
def _to_pdf(dao, classic=None, template_file=None): operationName = dao.operazione operationNameUnderscored = operationName.replace(' ', '_').lower() _slaTemplate = None # aggiungo i dati azienda al dao in modo che si gestiscano a monte azienda = Azienda().getRecord(id=Environment.azienda) if os.path.exists(Environment.templatesDir + operationNameUnderscored + '.sla'): _slaTemplate = Environment.templatesDir + operationNameUnderscored + '.sla' elif "DDT" in operationName and \ os.path.exists(Environment.templatesDir + 'ddt.sla'): _slaTemplate = Environment.templatesDir + 'ddt.sla' else: _slaTemplate = Environment.templatesDir + 'documento.sla' """ Restituisce una stringa contenente il report in formato PDF """ if dao.__class__.__name__ in Environment.fromHtmlLits: from xhtml2pdf import pisa #f = self.hh g = file(Environment.tempDir + ".temp.pdf", "wb") pisa.CreatePDF(str(f), g) g.close() g = file(Environment.tempDir + ".temp.pdf", "r") f = g.read() g.close() return f param = [dao.dictionary(complete=True)] utils.multilinedirtywork(param) try: if hasattr(Environment.conf.Documenti, "jnet"): from promogest.modules.NumerazioneComplessa.jnet import \ numerazioneJnet param[0]["numero"] = numerazioneJnet(dao) except: pass if azienda: azidict = azienda.dictionary(complete=True) for a, b in azidict.items(): k = "azi_" + a azidict[k] = b del azidict[a] param[0].update(azidict) if 'operazione' in param[0] and 'causale_trasporto' in param[0]: if (param[0]["operazione"] in ["DDT vendita", "DDT acquisto"]) \ and param[0]["causale_trasporto"] != "": param[0]["operazione"] = "DDT" _anagrafica_folder = tempfile.gettempdir() + os.sep stpl2sla = SlaTpl2Sla_ng(slafile=None, label=None, report=None, objects=param, daos=dao, slaFileName=_slaTemplate, pdfFolder=_anagrafica_folder, classic=True, template_file=None).fileElaborated() return Sla2Pdf_ng(slafile=stpl2sla).translate()