コード例 #1
0
def thermalPrinter(base64code):
    
    try:
        raw_str     = str(base64code)
        raw_base    = base64.b64decode(raw_str)
        data        = bytes(raw_base)
        nameprinter = win32print.GetDefaultPrinter()
        
        hPrinter = win32print.OpenPrinter(nameprinter)
        win32print.StartDocPrinter(hPrinter, 1, ("Print data otros pagos", None, "RAW"))

        try:
            win32print.StartPagePrinter(hPrinter)
            win32print.WritePrinter(hPrinter, data)
            win32print.EndPagePrinter(hPrinter)
            win32print.EndDocPrinter(hPrinter)
            win32print.ClosePrinter(hPrinter)

        except Exception as e:

            return jsonify({
                "code":500,
                "message":str(e.message)
            })
    except Exception as e:
        return jsonify({
            "code":500,
            "message":str(e.message)
        })
    return jsonify({
        "code":200,
        "message":"printer!!!"
    })
コード例 #2
0
    def printer1(self, img):  #调用打印机,请事先把默认打印机,纸张格式等参数从电脑上调好
        print('start print ' + img)
        printer_name = win32print.GetDefaultPrinter()
        #
        # raw_data could equally be raw PCL/PS read from
        #  some print-to-file operation
        #
        if sys.version_info >= (3, ):
            raw_data = bytes(a, "utf-8")
        else:
            raw_data = "This is a test"

        hPrinter = win32print.OpenPrinter(printer_name)
        try:
            hJob = win32print.StartDocPrinter(hPrinter, 1, (img, None, "RAW"))
            print('here1' + img)
            try:
                win32print.StartPagePrinter(hPrinter)
                win32print.WritePrinter(hPrinter, raw_data)
                win32print.EndPagePrinter(hPrinter)
                print('here2')
            finally:
                win32print.EndDocPrinter(hPrinter)
                print('here3')
        finally:
            win32print.ClosePrinter(hPrinter)
            print('here4')
コード例 #3
0
            def info():
                texto_a_imprimir = self.texto.get("1.0", "end")
                if self.ruta != "":
                    direccion = self.ruta.split("/")[-1]
                    nombre_archivo = tempfile.mktemp("_{}".format(direccion))
                else:
                    nombre_archivo = tempfile.mktemp(".txt")

                fichero = open(nombre_archivo, "w")
                fichero.write(texto_a_imprimir)

                if sys.version_info >= (3, ):
                    raw_data = bytes(nombre_archivo, "utf-8")
                else:
                    raw_data = nombre_archivo

                hPrinter = win32print.OpenPrinter(
                    combo_lista_impr.selection_get())
                try:
                    hJob = win32print.StartDocPrinter(
                        hPrinter, 1, (nombre_archivo, None, "RAW"))
                    try:
                        win32api.ShellExecute(0, "print", nombre_archivo, None,
                                              ".", 0)
                        win32print.StartPagePrinter(hPrinter)
                        win32print.WritePrinter(hPrinter, raw_data)
                        win32print.EndPagePrinter(hPrinter)
                    finally:
                        win32print.EndDocPrinter(hPrinter)
                finally:
                    win32print.ClosePrinter(hPrinter)

                fichero.close()
コード例 #4
0
ファイル: printer.py プロジェクト: DanishShah/SmartPrint
def print_document(filename, printer_name):
    print(printer_name)
    # printer_name = win32print.GetDefaultPrinter()
    if sys.version_info >= (3, ):
        fp = open("./static/UPLOADFOLDER/" + filename, "rb")
        raw_data = bytes("This is a test", "utf-8")
    else:
        fp = open("./static/UPLOADFOLDER/" + filename, "r")
        raw_data = "This is a test"

    data = fp.read()
    print(printer_name)

    hPrinter = win32print.OpenPrinter(printer_name)
    try:
        hJob = win32print.StartDocPrinter(hPrinter, 1, (filename, None, "RAW"))
        try:
            jobInfo = win32print.GetJob(hPrinter, hJob, 1)
            win32print.SetJob(hPrinter, hJob, 1, jobInfo,
                              win32print.JOB_CONTROL_SENT_TO_PRINTER)
            win32print.StartPagePrinter(hPrinter)
            win32print.WritePrinter(hPrinter, data)
            win32print.EndPagePrinter(hPrinter)
        finally:
            win32print.EndDocPrinter(hPrinter)
    finally:
        win32print.ClosePrinter(hPrinter)

    # os.startfile("H:/Projects/College/LanPrint/static/UPLOADFOLDER/"+filename, "print")
    return Response("Printing Document", status=200, mimetype='text/plain')
コード例 #5
0
def do(filename):
    filename = filename.read()
    # word wrap the log, so that it completely is on page
    formatted_log = '\r\n'.join(textwrap.wrap(filename, width=75, replace_whitespace=False))
    if platform.system() == 'Windows':  # if we are on windows, print via this section
        import sys
        import win32print  # as this module is only available under windows, import it here to prevent errors
        printer_name = win32print.GetDefaultPrinter()
        #
        # raw_data could equally be raw PCL/PS read from
        #  some print-to-file operation
        #
        if sys.version_info >= (3,):
            raw_data = bytes(formatted_log)
        else:
            raw_data = formatted_log

        h_printer = win32print.OpenPrinter(printer_name)
        try:
            _ = win32print.StartDocPrinter(h_printer, 1, ("Log File Printout", None, "RAW"))
            try:
                win32print.StartPagePrinter(h_printer)
                win32print.WritePrinter(h_printer, raw_data)
                win32print.EndPagePrinter(h_printer)
            finally:
                win32print.EndDocPrinter(h_printer)
        finally:
            win32print.ClosePrinter(h_printer)

    else:  # if we are on a unix-like, print via this section
        import subprocess
        lpr = subprocess.Popen("/usr/bin/lpr", stdin=subprocess.PIPE)
        lpr.stdin.write(formatted_log)
コード例 #6
0
ファイル: windows_printing.py プロジェクト: scholer/rsenv
def print_raw_win32print(content, printer_name, job_description):
    """ Start a print job and send raw data to the printer.

    Args:
        content: The raw data to print.
        printer_name: The printer's name.
        job_description: A description of the job.

    Returns:
        None

    References:
        * http://timgolden.me.uk/python/win32_how_do_i/print.html
        * http://timgolden.me.uk/pywin32-docs/win32print.html
            Even Tim Golden recommends just calling `print <filename> /d:<printer>` on the shell.
        * https://docs.microsoft.com/en-us/windows/win32/printdocs/using-the-printing-functions
            (For C++ applications).
        * http://www.icodeguru.com/WebServer/Python-Programming-on-Win32/ch10.htm
    """
    import win32print
    p = win32print.OpenPrinter(printer_name)
    job = win32print.StartDocPrinter(p, 1, (job_description, None, "RAW"))
    win32print.StartPagePrinter(p)
    win32print.WritePrinter(p, content)
    win32print.EndPagePrinter(p)
    win32print.EndDocPrinter(p)
    win32print.ClosePrinter(p)
コード例 #7
0
ファイル: BPL_utils.py プロジェクト: csully220/label_printer
def SendToBP33(fn_bpl, req_confirm = True):

    printers = win32print.EnumPrinters(2)
    for p in printers:
        if p[3] == 'BBP33':
            printer_name = p[2]
            #print('Found printer ' + printer_name)

    if (printer_name):
        cont = 'y'
        if(req_confirm):
            cont = input('Use ' + printer_name + ' to print labels? [y/n]\n')
        if (cont == 'y'):
            f_bpl = open(fn_bpl, "rb")
            hPrinter = win32print.OpenPrinter(printer_name)
            try:
              hJob = win32print.StartDocPrinter (hPrinter, 1, ("Cable labels", None, "RAW"))
              try:
                win32print.StartPagePrinter (hPrinter)
                win32print.WritePrinter (hPrinter, f_bpl.read())
                win32print.EndPagePrinter (hPrinter)
              finally:
                win32print.EndDocPrinter (hPrinter)
            finally:
              win32print.ClosePrinter (hPrinter)
            f_bpl.close()
        else:
コード例 #8
0
ファイル: printer.py プロジェクト: wahyup/python-escpos
 def open(self, job_name="python-escpos"):
     if self.printer_name is None:
         raise Exception("Printer not found")
     self.hPrinter = win32print.OpenPrinter(self.printer_name)
     self.current_job = win32print.StartDocPrinter(
         self.hPrinter, 1, (job_name, None, "RAW"))
     win32print.StartPagePrinter(self.hPrinter)
コード例 #9
0
def printer(raw_data):
    hPrinter = win32print.OpenPrinter(printer_name)
    hJob = win32print.StartDocPrinter(hPrinter, 1,
                                      ("test of raw data", None, "RAW"))
    win32print.StartPagePrinter(hPrinter)
    win32print.WritePrinter(hPrinter, raw_data)
    win32print.EndPagePrinter(hPrinter)
    win32print.EndDocPrinter(hPrinter)
    win32print.ClosePrinter(hPrinter)
コード例 #10
0
ファイル: plugin.py プロジェクト: yairvillarp/inkcut
    def open(self):
        p = win32print.OpenPrinter(self.transport.config.printer)
        self.job = win32print.StartDocPrinter(p, 1,
                                              ("Inkcut job", None, "RAW"))
        win32print.StartPagePrinter(p)
        self.printer = p

        #: Sync
        self.transport.connected = True
        self.transport.protocol.connection_made()
コード例 #11
0
def index():
    printer_data = request.form['printer_data']
    p = win32print.OpenPrinter(PRINTER_NAME)
    job = win32print.StartDocPrinter(p, 1, ("DOTMATRIX", None, "RAW"))
    win32print.StartPagePrinter(p)
    win32print.WritePrinter(p, printer_data.encode())
    win32print.EndPagePrinter(p)

    out = {'status': 'OK'}
    return jsonify(out)
コード例 #12
0
def winPrint(text, name):
    import win32print  #is this how I multiplatform?
    pname = win32print.GetDefaultPrinter()
    printer = win32print.OpenPrinter(pname)
    job = win32print.StartDocPrinter(printer, 1, (name, None, "RAW"))
    win32print.StartPagePrinter(printer)
    win32print.WritePrinter(printer, text)
    win32print.EndPagePrinter(printer)
    win32print.EndDocPrinter(printer)
    win32print.ClosePrinter(printer)
コード例 #13
0
 def printRaw(self, printer, data, title):
     hPrinter = win32print.OpenPrinter(printer)
     try:
         win32print.StartDocPrinter(hPrinter, 1, (title, None, "RAW"))
         try:
             win32print.StartPagePrinter(hPrinter)
             win32print.WritePrinter(hPrinter, base64.b64decode(data))
             win32print.EndPagePrinter(hPrinter)
         finally:
             win32print.EndDocPrinter(hPrinter)
     finally:
         win32print.ClosePrinter(hPrinter)
     return 0
コード例 #14
0
def printer_job(printer_name, printer_file):
    hPrinter = win32print.OpenPrinter(printer_name)
    try:
      hJob = win32print.StartDocPrinter(hPrinter, 1, ("test of raw data", None, "RAW"))
      try:
        win32print.StartPagePrinter(hPrinter)
        # win32print.WritePrinter (hPrinter, raw_data)
        win32print.WritePrinter(hPrinter, printer_file)
        win32print.EndPagePrinter(hPrinter)
      finally:
        win32print.EndDocPrinter(hPrinter)
    finally:
      win32print.ClosePrinter(hPrinter)
コード例 #15
0
 def printTab(self, printer):
     """
     打印标签
     :param printer: 打印机名称
     :return: None
     """
     hPrinter = win32print.OpenPrinter(printer)
     command = self._getCommend()
     try:
         hJob = win32print.StartDocPrinter(hPrinter, 1,
                                           ('Label', None, 'raw'))
         try:
             win32print.StartPagePrinter(hPrinter)
             win32print.WritePrinter(hPrinter, command)
             win32print.EndPagePrinter(hPrinter)
             win32print.StartPagePrinter(hPrinter)
             win32print.WritePrinter(hPrinter, '^EG'.encode('utf-8'))
             win32print.EndPagePrinter(hPrinter)
         finally:
             win32print.EndDocPrinter(hPrinter)
     finally:
         win32print.ClosePrinter(hPrinter)
コード例 #16
0
 def _output_win(self, commands):
     if self.queue == 'zebra_python_unittest':
         return
     hPrinter = win32print.OpenPrinter(self.queue)
     try:
         hJob = win32print.StartDocPrinter(hPrinter, 1,
                                           ('Label', None, 'RAW'))
         try:
             win32print.StartPagePrinter(hPrinter)
             win32print.WritePrinter(hPrinter, commands)
             win32print.EndPagePrinter(hPrinter)
         finally:
             win32print.EndDocPrinter(hPrinter)
     finally:
         win32print.ClosePrinter(hPrinter)
コード例 #17
0
def send_document(filename):
    # Try to get printer. If it fails, print out exact error.
    try:
        p = win32print.OpenPrinter(get_online_printer())
        try:
            #open printer, print, close out printer
            win32print.StartDocPrinter(p, 1, ("Printer Test", None, "RAW"))
            win32print.StartPagePrinter(p)
            win32print.WritePrinter(p, filename)
            win32print.EndPagePrinter(p)
        except Exception as e:
            print("Print Error: ", e)
        win32print.ClosePrinter(p)
    except Exception as e:
        print("Could not find printer: ", e)
コード例 #18
0
ファイル: SearchGoods.py プロジェクト: iyueer/Yueer_PSS
def Printer_Process(raw_data):
    printer_name = win32print.GetDefaultPrinter()
    try:
        raw_data = raw_data.encode('gb2312');
    except:
        raw_data = raw_data;
    hPrinter = win32print.OpenPrinter(printer_name)
    try:
        hJob = win32print.StartDocPrinter(hPrinter, 1, ("Sell Receipt", None, "RAW"))
        try:
            win32print.StartPagePrinter(hPrinter)
            win32print.WritePrinter(hPrinter, raw_data)
            win32print.EndPagePrinter(hPrinter)
        finally:
            win32print.EndDocPrinter(hPrinter)
    finally:
        win32print.ClosePrinter(hPrinter)
コード例 #19
0
def printContent(raw_data):
    try:
        printer_name = win32print.GetDefaultPrinter ()
        hPrinter = win32print.OpenPrinter(printer_name)
        try:
            hJob = win32print.StartDocPrinter (hPrinter, 1, ("test of raw data", None, "RAW"))
            try:
                win32print.StartPagePrinter (hPrinter)
                win32print.WritePrinter (hPrinter, raw_data.encode("gbk"))
                win32print.EndPagePrinter (hPrinter)
            finally:
                win32print.EndDocPrinter (hPrinter)
        finally:
            win32print.ClosePrinter (hPrinter)
    except Exception as e: 
        logger.error("printContent error "+e)
    return True
コード例 #20
0
def print_receipt(transactionID, printer_name, jsonObject):
    basedir = jsonObject["RCPT_DIR"]
    if (printer_name == ""):
        printer_name = win32print.GetDefaultPrinter()

    if (os.name != "posix"):
        hPrinter = win32print.OpenPrinter(printer_name)
        f2 = open(os.path.join(basedir, transaction_number), "r")
        text_data = f2.read()
        f2.close()
        # Open a doc, open a page, wirte the page and close page and doc
        hJob = win32print.StartDocPrinter(
            hPrinter, 1, ("Startup Day Receipt", None, "TEXT"))
        win32print.StartPagePrinter(hPrinter)
        win32print.WritePrinter(hPrinter, text_data)
        win32print.EndPagePrinter(hPrinter)
        win32print.EndDocPrinter(hPrinter)
        win32print.ClosePrinter(hPrinter)
コード例 #21
0
def print_job(zpl):
    printer = win32print.OpenPrinter('ZDesigner GX420d')
    job = win32print.StartDocPrinter(printer, 1, ('test of raw data', None, "RAW"))

    print(zpl)

    # string= '''
    # ^XA
    # ^FO0,24^A0N,120,96^FB720,1,0,C,0^FDStart^FS
    # ^FO0,180^BQN,2,10,Q,7^FS
    # ^XZ
    # '''

    raw_data = bytes(zpl, 'utf-8')

    win32print.StartPagePrinter(printer)
    win32print.WritePrinter(printer, raw_data)
    win32print.EndPagePrinter(printer)
コード例 #22
0
def SpoolPrint(NamePrint, StringBytes):  
    # NamePrint -- Имя принтера
    # StringBytes -- Строка байтов
    # Можно открывать файл как показанно ниже
    # printer_name = win32print.GetDefaultPrinter ()        # Имя принтера по умолчанию в системе 
    # open_file = open('epson_nozzle_check.spl', 'rb')      # Открываем файл 
    # raw_data = open_file.read()                           # Копируем данные в буфер
    # open_file.close()                                     # Закрываем файл

    hPrinter = win32print.OpenPrinter (NamePrint)
    try:
        hJob = win32print.StartDocPrinter (hPrinter, 1, ("Print RAW Data", None, "RAW"))
        try:
            win32print.StartPagePrinter (hPrinter)
            win32print.WritePrinter (hPrinter, StringBytes)
            win32print.EndPagePrinter (hPrinter)
        finally:
            win32print.EndDocPrinter (hPrinter)
    finally:
        win32print.ClosePrinter (hPrinter)
コード例 #23
0
def test_raw(printer='MyPSPrinter',
             filename=r'G:/test.txt',
             text=None):
    '''send plain text to a file'''
    if text is None:
        text_data = "This is a test. This is only a test."
    else:
        text_data = text
    job_info = ("Raw File Print", filename, 'RAW')
    h_printer = win32print.OpenPrinter(printer)
    try:
        h_job = win32print.StartDocPrinter(h_printer, 1, job_info)
        try:
            win32print.StartPagePrinter(h_printer)
            win32print.WritePrinter(h_printer, text_data.encode())
            win32print.EndPagePrinter(h_printer)
        finally:
            win32print.EndDocPrinter(h_printer)
    finally:
        win32print.ClosePrinter(h_printer)
コード例 #24
0
def print_windows(details):
    try:
        import win32print
        printer = win32print.OpenPrinter(details['printer_name'])
        try:
            print_job = win32print.StartDocPrinter(
                printer, 1, (details['description'], None, "RAW"))
            try:
                win32print.StartPagePrinter(printer)
                win32print.WritePrinter(printer,
                                        details['print_code'].encode('utf-8'))
                win32print.EndPagePrinter(printer)
                r = requests.get(
                    f'https://{HOST}/gateway/print_end'
                    f'/{details["print_id"]}/{details["print_secret"]}')
            finally:
                win32print.EndDocPrinter(printer)
        finally:
            win32print.ClosePrinter(printer)
    except ImportError:
        pass
コード例 #25
0
ファイル: zebra.py プロジェクト: SunPaz/shard-station
    def send(self, quantity=1):
        """ Replace label tags with values """
        populated_label_zpl = self.replace_tags(self.__content,
                                                self.REPLACE_LIST)

        printed_quantity = 0
        while printed_quantity < quantity:
            if self.interface == 'tcp':
                print('Sending label to : ' + str(self.ip_address) + ':' +
                      str(self.port) + ' ...')
                with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
                    s.connect((self.ip_address, self.port))
                    s.send(populated_label_zpl.encode())
            elif self.interface == 'usb':
                print("Sending label through USB")

                if sys.version_info >= (3, ):
                    raw_data = bytes(populated_label_zpl, "utf-8")
                else:
                    raw_data = populated_label_zpl

                hPrinter = win32print.OpenPrinter(self.name)
                try:
                    hJob = win32print.StartDocPrinter(
                        hPrinter, 1, ("Shard Label", None, "RAW"))
                    try:
                        win32print.StartPagePrinter(hPrinter)
                        win32print.WritePrinter(hPrinter, raw_data)
                        win32print.EndPagePrinter(hPrinter)
                    finally:
                        win32print.EndDocPrinter(hPrinter)
                finally:
                    win32print.ClosePrinter(hPrinter)
            else:
                print("Interface not defined")

            printed_quantity = printed_quantity + 1

        print('Sent')
コード例 #26
0
    def on_bt_print_clicked(self):
        """
        Slot documentation goes here.
        """     
        a = "^XA^FX #^CF0,60^FO20,30^FDMILKPLAN^FS^CF0,30^FO620,55^FDRnD_CODES^FS^FO20,85^GB750,1,3^FS^FX #"
        b = "^CFA,28^FO50,120^FD"+"AITHSH KOPHS:"+self.line_1.text()+"^FS"
        c ="^FO50,160^FD"+"ENTOLH: "+self.line_2.text()+"^FS"
        d = "^FO50,200^FD"+"TOMEAS: "+self.line_3.text()+"^FS"
        e = "^FO50,240^FD"+"DELIVERY DATE:"+self.line_5.text()+"^FS"
        e1 = "^FO50,280^FD"+"NAME:"+self.line_6.text()+"^FS"
        e2 = "^FO50,320^FD"+"DELIVERY PLACE:"+self.line_7.text()+"^FS"
        f = "^CFA,25^FO20,450^FDCOMMENTS:^FS^FX Fourth section (the two boxes on the bottom)."
        g = "^FO20,480^GB750,100,5^FS^CF0,40^FO50,510^FD"+self.data_paratirisis.text()+"^FS^XZ"

        message = a+b+c+d+e+e1+e2+f+g
#        hitzebra = win32print.OpenPrinter("\\\\Polyzoudis-pc\\Ετικέτες")
#        hitzebra = win32print.SetDefaultPrinter()
        hitzebra = win32print.OpenPrinter(self.name)
        filename = "2222.txt"
        s = bytes(message, "utf-16")
        print(type(s))
        print(s)
        print(hitzebra)
        posot=int(self.data_posothta.text())
        print(posot) 
        try:
            hJob = win32print.StartDocPrinter(hitzebra, 1, ('PrintJobName', None, 'RAW'))
            try:
#                win32api.ShellExecute(0, "print", filename, None, ".", 0)
             for i in range(posot):
                win32print.StartPagePrinter(hitzebra)
                win32print.WritePrinter(hitzebra, s)  # Instead of raw text is there a way to print PDF File ?
                win32print.EndPagePrinter(hitzebra)
                 
            finally:
                win32print.EndDocPrinter(hitzebra)
        finally:
#            win32print.ClosePrinter("\\\\Polyzoudis-pc\\Ετικέτες")
             pass
コード例 #27
0
def printCode():
    c = generateCode()
    printer_name = win32print.GetDefaultPrinter()
    print(printer_name)
    hPrinter = win32print.OpenPrinter(printer_name)
    # print(hPrinter)

    if sys.version_info >= (3,):
        raw_data = bytes(c, "utf-8")
        # print('$$$$$$', c)
    else:
        raw_data = c
        # print('$$$$$$', c)
    try:
        hJob = win32print.StartDocPrinter(hPrinter, 1, (c, None, "RAW"))
        # print('$$$$$$', c)
        try:
            win32print.StartPagePrinter(hPrinter)
            win32print.WritePrinter(hPrinter, raw_data)
            win32print.EndPagePrinter(hPrinter)
        finally:
            win32print.EndDocPrinter(hPrinter)
    finally:
        win32print.ClosePrinter(hPrinter)
コード例 #28
0
def printlabelonwindows(printer, labelmodelfile, charSep, parameters):
    contenu = ""
    with open(labelmodelfile) as fichierEtiq:
        for line in fichierEtiq:
            contenu += line + "\r\n"

    for paramName, value in parameters:

        if contenu.find(charSep + paramName.lower() + charSep) != -1:
            if (value is not None):
                contenu = contenu.replace(
                    charSep + paramName.lower() + charSep,
                    str(value).replace("é", "\\82").replace("à",
                                                            "\\85").replace(
                                                                "î", "\\8C"))
            else:
                contenu = contenu.replace(
                    charSep + paramName.lower() + charSep, "")
    #print(sys.version_info)

    if sys.version_info >= (3, ):
        raw_data = bytes(contenu, "utf-8")
    else:
        raw_data = contenu

    hPrinter = win32print.OpenPrinter(printer)
    try:
        hJob = win32print.StartDocPrinter(hPrinter, 1, ("print", None, "RAW"))
        try:
            win32print.StartPagePrinter(hPrinter)
            win32print.WritePrinter(hPrinter, raw_data)
            win32print.EndPagePrinter(hPrinter)
        finally:
            win32print.EndDocPrinter(hPrinter)
    finally:
        win32print.ClosePrinter(hPrinter)
コード例 #29
0
ファイル: printer.py プロジェクト: stargliderdev/gabo
#!/usr/bin/python
# -*- coding: utf-8 -*-


# from: http://timgolden.me.uk/python/win32_how_do_i/print.html
import os, sys
import win32print
printer_name = win32print.GetDefaultPrinter ()
print(printer_name)
#
# raw_data could equally be raw PCL/PS read from
#  some print-to-file operation
#
if sys.version_info >= (3,):
  raw_data = bytes ("This is a test", "utf-8")
else:
  raw_data = "This is a test"

hPrinter = win32print.OpenPrinter (printer_name)
try:
  hJob = win32print.StartDocPrinter (hPrinter, 1, ("2test of raw data to office", None, "RAW"))
  try:
    win32print.StartPagePrinter (hPrinter)
    win32print.WritePrinter (hPrinter, raw_data)
    win32print.EndPagePrinter (hPrinter)
  finally:
    win32print.EndDocPrinter (hPrinter)
finally:
  win32print.ClosePrinter (hPrinter)
コード例 #30
0
 def Print_Querysell(self, evt):
     dbreader = shelve.open('config.dat', 'r')
     self.Name_Print = dbreader["config"]["Name"]
     self.Address_Print = dbreader["config"]["Address"]
     self.Tel_Print = dbreader["config"]["Tel"]
     self.Comments_Print = dbreader["config"]["Comments"]
     # self.Welcome_Print=dbreader["config"]["Welcome"]
     self.Addr_Print = dbreader["config"]["Addr"]
     self.TelPhone_Print = dbreader["config"]["TelPhone"]
     dbreader.close()
     dbreader2 = shelve.open("PrintList.dat", 'r')
     printer_name = win32print.GetDefaultPrinter()
     hPrinter = win32print.OpenPrinter(printer_name)
     try:
         hJob = win32print.StartDocPrinter(hPrinter, 1,
                                           ("Sell Receipt", None, "RAW"))
         if (dbreader2 != {}):
             try:
                 win32print.StartPagePrinter(hPrinter)
                 win32print.WritePrinter(hPrinter,
                                         self.FormatContent(u"\n欢迎光临\n"))
                 win32print.WritePrinter(
                     hPrinter, self.FormatContent(self.Name_Print))
                 win32print.WritePrinter(hPrinter,
                                         self.FormatContent("\n\n"))
                 win32print.WritePrinter(hPrinter,
                                         self.FormatContent(u"时  间:"))
                 win32print.WritePrinter(
                     hPrinter,
                     self.FormatContent("%s" % SearchGoods.GetDetailTime()))
                 win32print.WritePrinter(hPrinter, self.FormatContent("\n"))
                 win32print.WritePrinter(
                     hPrinter,
                     self.FormatContent("*******************************"))
                 win32print.WritePrinter(hPrinter, self.FormatContent("\n"))
                 win32print.WritePrinter(
                     hPrinter, self.FormatContent(u"商品名称    数量    单价\n"))
                 for item in dbreader2.items():
                     win32print.WritePrinter(
                         hPrinter, self.FormatContent(item[1]['Name']))
                     win32print.WritePrinter(
                         hPrinter, self.FormatContent("         "))
                     win32print.WritePrinter(
                         hPrinter, self.FormatContent(item[1]['amount']))
                     win32print.WritePrinter(hPrinter,
                                             self.FormatContent("       "))
                     win32print.WritePrinter(
                         hPrinter, self.FormatContent(item[1]["Perprice"]))
                     win32print.WritePrinter(hPrinter,
                                             self.FormatContent("\n"))
                 win32print.WritePrinter(hPrinter, self.FormatContent("\n"))
                 win32print.WritePrinter(
                     hPrinter,
                     self.FormatContent("*******************************"))
                 win32print.WritePrinter(hPrinter, self.FormatContent("\n"))
                 win32print.WritePrinter(hPrinter,
                                         self.FormatContent(u"总 金 额(¥): "))
                 win32print.WritePrinter(
                     hPrinter, self.FormatContent(self.ReturnPrices()[0]))
                 win32print.WritePrinter(hPrinter, self.FormatContent("\n"))
                 win32print.WritePrinter(hPrinter,
                                         self.FormatContent(u"优    惠(¥): "))
                 win32print.WritePrinter(hPrinter, self.FormatContent("-"))
                 win32print.WritePrinter(
                     hPrinter, self.FormatContent(self.ReturnPrices()[1]))
                 win32print.WritePrinter(hPrinter, self.FormatContent("\n"))
                 win32print.WritePrinter(hPrinter,
                                         self.FormatContent(u"最终金额(¥): "))
                 win32print.WritePrinter(
                     hPrinter, self.FormatContent(self.ReturnPrices()[2]))
                 win32print.WritePrinter(hPrinter,
                                         self.FormatContent("\n\n"))
                 win32print.WritePrinter(
                     hPrinter,
                     self.FormatContent("*******************************"))
                 win32print.WritePrinter(hPrinter, self.FormatContent("\n"))
                 win32print.WritePrinter(hPrinter,
                                         self.FormatContent(u"电  话:"))
                 win32print.WritePrinter(hPrinter,
                                         self.FormatContent(self.Tel_Print))
                 win32print.WritePrinter(hPrinter, self.FormatContent("\n"))
                 win32print.WritePrinter(hPrinter,
                                         self.FormatContent(u"地  址:"))
                 win32print.WritePrinter(
                     hPrinter, self.FormatContent(self.Address_Print))
                 win32print.WritePrinter(hPrinter, self.FormatContent("\n"))
                 win32print.WritePrinter(
                     hPrinter, self.FormatContent(self.Comments_Print))
                 win32print.WritePrinter(hPrinter, self.FormatContent("\n"))
                 win32print.WritePrinter(
                     hPrinter, self.FormatContent(u"\n谢谢惠顾 欢迎下次光临!\n"))
                 win32print.WritePrinter(hPrinter,
                                         self.FormatContent("\n\n"))
                 win32print.EndPagePrinter(hPrinter)
                 #删除整个数据字典
                 dbwriter = shelve.open('PrintList.dat',
                                        'w',
                                        writeback=True)
                 dbwriter.clear()
                 dbwriter.close()
                 #重置界面元素项
                 self.Print_Teardown()
                 SearchGoods.ReminderMessageBox(u"打印成功!")
             except:
                 SearchGoods.ReminderMessageBox(u"打印失败!")
             finally:
                 win32print.EndDocPrinter(hPrinter)
         else:
             SearchGoods.ReminderMessageBox(u"打印失败!")
     except:
         SearchGoods.ReminderMessageBox(
             u"获取打印机信息失败,请确保打印机正常连接,正常工作\n可参考本软件菜单帮助->打印机设置")
     finally:
         dbreader2.close()
         win32print.ClosePrinter(hPrinter)