예제 #1
0
파일: loapp.py 프로젝트: sonnysk76/easydev
 def exportPDF(self, doc, path_save, options):
     """
         Export to PDF
         http://wiki.services.openoffice.org/wiki/API/Tutorials/PDF_export
     """
     close = False
     if isinstance(doc, str):
         close = True
         doc = self.openDoc(doc, (('Hidden', True), ))
     if path_save:
         if comun.isdir(path_save):
             path_save = comun.replace_name_ext(path_save, doc.getURL(),
                                                EXT_PDF)
     else:
         path_save = comun.replace_ext(doc.getURL(), EXT_PDF)
     path_save = comun.path_to_url(path_save)
     try:
         filter_name = '{}_pdf_Export'.format(self.getTypeDoc(doc))
         if options:
             filter_data = comun.set_properties(options)
             filter_options = (
                 ('FilterName', filter_name),
                 ('FilterData', filter_data),
             )
         else:
             filter_options = (('FilterName', filter_name), )
         media_descriptor = comun.set_properties(filter_options)
         doc.storeToURL(path_save, media_descriptor)
     except:
         log.error('PDF', exc_info=True)
     if close:
         doc.dispose()
     if comun.exists(path_save):
         return comun.path_to_os(path_save)
     return ''
예제 #2
0
 def exportPDF(self, doc, path_save, options):
     """
         Export to PDF
         http://wiki.services.openoffice.org/wiki/API/Tutorials/PDF_export
     """
     close = False
     if isinstance(doc, str):
         close = True
         doc = self.openDoc(doc, (('Hidden', True),))
     if path_save:
         if comun.isdir(path_save):
             path_save = comun.replace_name_ext(path_save, doc.getURL(), EXT_PDF)
     else:
         path_save = comun.replace_ext(doc.getURL(), EXT_PDF)
     path_save = comun.path_to_url(path_save)
     try:
         filter_name = '{}_pdf_Export'.format(self.getTypeDoc(doc))
         if options:
             filter_data = comun.set_properties(options)
             filter_options = (
                 ('FilterName', filter_name),
                 ('FilterData', filter_data),
             )
         else:
             filter_options = (('FilterName', filter_name),)
         media_descriptor = comun.set_properties(filter_options)
         doc.storeToURL(path_save, media_descriptor)
     except:
         log.error('PDF', exc_info=True)
     if close:
         doc.dispose()
     if comun.exists(path_save):
         return comun.path_to_os(path_save)
     return ''
예제 #3
0
def send_mail(server, message):
    sender = server.User
    receivers = message.To.split(',') + message.Cc.split(
        ',') + message.Bcc.split(',')

    email = MIMEMultipart()
    email['From'] = sender
    email['To'] = message.To
    email['Cc'] = message.Cc
    email['Subject'] = message.Subject
    body = message.Body.replace('\\n', '<br />').replace('\n', '<br />')
    email.attach(MIMEText(body, 'html'))

    for f in message.Files:
        path = comun.path_to_os(f)
        if not comun.exists(path):
            continue
        part = MIMEBase('application', 'octet-stream')
        part.set_payload(open(path, 'rb').read())
        encoders.encode_base64(part)
        part.add_header('Content-Disposition',
                        "attachment; filename={}".format(comun.basename(path)))
        email.attach(part)
    try:
        smtp = smtplib.SMTP(server.Name, server.Port, timeout=TIMEOUT)
        if server.Ssl:
            smtp.ehlo()
            smtp.starttls()
            smtp.ehlo()
        log.info('Connect server...')
        smtp.login(server.User, server.Password)
        log.info('Send mail...')
        smtp.sendmail(sender, receivers, email.as_string())
        log.info('Log out server...')
        smtp.quit()
        if server.PathSave and message.Save:
            save_message(server.PathSave, email)
        log.info('Close...')
        return True
    except SMTPAuthenticationError as e:
        err = str(e)
        if '534' in err and 'gmail' in server.Server:
            msg = 'Need activate cant access other app in your account GMail'
            log.debug(msg)
            return False
        elif '535' in err:
            msg = 'User or password are invalid'
            log.debug(msg)
            return False
    except SMTPException as e:
        log.debug(e)
        return False
    except Exception as e:
        log.debug(e)
        return False
예제 #4
0
def send_mail(server, message):
    sender = server.User
    receivers = message.To.split(',') + message.Cc.split(',') + message.Bcc.split(',')

    email = MIMEMultipart()
    email['From'] = sender
    email['To'] = message.To
    email['Cc'] = message.Cc
    email['Subject'] = message.Subject
    body = message.Body.replace('\\n', '<br />').replace('\n', '<br />')
    email.attach(MIMEText(body, 'html'))

    for f in message.Files:
        path = comun.path_to_os(f)
        if not comun.exists(path):
            continue
        part = MIMEBase('application', 'octet-stream')
        part.set_payload(open(path, 'rb').read())
        encoders.encode_base64(part)
        part.add_header(
            'Content-Disposition',
            "attachment; filename={}".format(comun.basename(path)))
        email.attach(part)
    try:
        smtp = smtplib.SMTP(server.Name, server.Port, timeout=TIMEOUT)
        if server.Ssl:
            smtp.ehlo()
            smtp.starttls()
            smtp.ehlo()
        log.info('Connect server...')
        smtp.login(server.User, server.Password)
        log.info('Send mail...')
        smtp.sendmail(sender, receivers, email.as_string())
        log.info('Log out server...')
        smtp.quit()
        if server.PathSave and message.Save:
            save_message(server.PathSave, email)
        log.info('Close...')
        return True
    except SMTPAuthenticationError as e:
        err = str(e)
        if '534' in err and 'gmail' in server.Server:
            msg = 'Need activate cant access other app in your account GMail'
            log.debug(msg)
            return False
        elif '535' in err:
            msg = 'User or password are invalid'
            log.debug(msg)
            return False
    except SMTPException as e:
        log.debug(e)
        return False
    except Exception as e:
        log.debug(e)
        return False
예제 #5
0
파일: dialog.py 프로젝트: sonnysk76/easydev
 def createDialog(self, data):
     """
         Create dialog from URL.
         path in OS or URI Specification vnd.sun.star.script
     """
     dp = self._create_instance('com.sun.star.awt.DialogProvider', True)
     if isinstance(data, Macro):
         if not data.Library:
             data.Library = 'Standard'
         data.Location = 'application'
         path = 'vnd.sun.star.script:{}.{}?location={}'.format(
             data.Library, data.Dialog, data.Location)
     elif comun.exists(data):
         path = comun.path_to_url(data)
     return dp.createDialog(path)
예제 #6
0
 def createDialog(self, data):
     """
         Create dialog from URL.
         path in OS or URI Specification vnd.sun.star.script
     """
     dp = self._create_instance('com.sun.star.awt.DialogProvider', True)
     if isinstance(data, Macro):
         if not data.Library:
             data.Library = 'Standard'
         data.Location = 'application'
         path = 'vnd.sun.star.script:{}.{}?location={}'.format(
             data.Library, data.Dialog, data.Location)
     elif comun.exists(data):
         path = comun.path_to_url(data)
     return dp.createDialog(path)