Python 保存Log txt信息,並轉成pdf,支持中文

# coding=UTF-8
    import  os
    from reportlab.pdfgen.canvas import Canvas
    from reportlab.pdfbase import pdfmetrics
    from reportlab.pdfbase.ttfonts import TTFont

    pdfmetrics.registerFont(TTFont('msyh', 'msyh.ttf'))

    def LogMessage( msg, bisLogMsg=True):
        savingmsg = ''
        savingmsg = savingmsg + QtCore.QDate.currentDate().toString("yyyy-MM-dd")
        savingmsg = savingmsg + ' ' + QtCore.QTime.currentTime().toString("HH:mm:ss")
        savingmsg = savingmsg + ' ' + msg
        if bisLogMsg:
            savingLogMsg(savingmsg)
        else:
            savingResultMsg(savingmsg)

    def savingLogMsg(self, logmsg):
        if not os.path.exists('./log'):
            os.makedirs('./log')
        self.savingtxtmsg = open('./log/autotlog.txt', 'a')
        self.savingtxtmsg.write(logmsg)
        self.savingtxtmsg.write('\n')
        self.savingtxtmsg.close()
    def savingResultMsg(resultmsg):
        if not os.path.exists('./log'):
            os.makedirs('./log')
        savingtxtmsg = open('./log/result.txt', 'a')
        savingtxtmsg.write(resultmsg)
        savingtxtmsg.write('\n')
        savingtxtmsg.close()
        TxtToPdf('./log/result.txt','./log/result.pdf')

    def TxtToPdf(strSourceTxt,strTargetPdf):
        ptr = open(strSourceTxt, "r")  # text file I need to convert
        lineas = ptr.readlines()
        ptr.close()

        numeroLinea = 0
        p = Canvas(strTargetPdf)
        while numeroLinea < len(lineas):
            i = 750
            for linea in lineas[numeroLinea:numeroLinea + 60]:
                if 'fail' in linea:
                    p.setFont('msyh', 10)
                    p.setFillColorRGB(0, 0, 0.77)
                else:
                    p.setFont('msyh', 8)
                    p.setFillColorRGB(0, 0, 0)
                p.drawString(15, i, linea.strip())
                numeroLinea += 1
                i -= 12
            p.showPage()

        p.save()
LogMessage('Save System State: pass', False)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章