Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7856473
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 2, 20262026-06-02T20:43:33+00:00 2026-06-02T20:43:33+00:00

How can i connect and send data to a Ethernet receipt printer Epson-T88V through

  • 0

How can i connect and send data to a Ethernet receipt printer Epson-T88V through python2.7, i have set the ipaddress of the Ethernet printer manually and the utility software communication is also successful.
How do i detect and connect to these printers and send data to print. Is there and module for Ethernet connection in python.
Using more than one Ethernet printer and separate data to be printed simultaneously from a single system, i am using windows xp and python 2.7
I have added the printer as my default printer, how can i access this TCP/IP printer
hope i am clear
Thanks.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-02T20:43:35+00:00Added an answer on June 2, 2026 at 8:43 pm
    import usb
    from PIL import Image
    import time
    import os, sys
    import win32print
    from constants import *
    from exceptions import *
    class Escpos:
        """ ESC/POS Printer object """
        handle    = None
        device    = None
    
        def __init__(self,interface=0, in_ep=0x100, out_ep=0x01) :
            self.interface = interface
            self.in_ep     = in_ep
            self.out_ep    = out_ep
            if sys.version_info >= (3,):
                raw_data = bytes ("This is a test\n", "utf-8")
            else:
                raw_data = "This is Shiva's test\n\n\n\n\n\n\n\n\n\n"
    
            self.hPrinter = win32print.OpenPrinter ("Auto EPSON TM-T88V ReceiptE4 on SYSTEM")
            self.handle = win32print.OpenPrinter ("EPSON TM-T88V")
        def _raw(self, msg):
            try:
                self.hJob = win32print.StartDocPrinter (self.hPrinter, 1, ("test of raw data", None, "RAW"))
                self.hJob = win32print.StartDocPrinter (self.handle, 1, ("test of raw data", None, "RAW"))
                try:
                    win32print.WritePrinter(self.handle, msg)
                    win32print.WritePrinter(self.hPrinter, msg)
                    win32print.EndDocPrinter (self.handle)
                    win32print.EndDocPrinter (self.hPrinter)
                finally:
                    print self.hJob
            finally:
                print self.hJob
    
        def _check_image_size(self, size):
            """Check and fix the size of the image to 32 bits"""
            if size % 32 == 0:
                return (0, 0)
            else:
                image_border = 32 - (size % 32)
                if (image_border % 2) == 0:
                    return (image_border / 2, image_border / 2)
                else:
                    return (image_border / 2, (image_border / 2) + 1)
    
    
        def _print_image(self, line, size):
            i = 0
            cont = 0
            buffer = ""
    
            self._raw(S_RASTER_N)
            buffer = "%02X%02X%02X%02X" % (((size[0]/size[1])/8), 0, size[1], 0)
            self._raw(buffer.decode('hex'))
            buffer = ""
    
            while i < len(line):
                hex_string = int(line[i:i+8],2)
                buffer += "%02X" % hex_string
                i += 8
                cont += 1
                if cont % 4 == 0:
                    self._raw(buffer.decode("hex"))
                    buffer = ""
                    cont = 0
    
    
        def image(self, img):
            """Parse image and then print it"""
            pixels   = []
            pix_line = ""
            im_left  = ""
            im_right = ""
            switch   = 0
            img_size = [ 0, 0 ]
    
            im_open = Image.open(img)
            im = im_open.convert("RGB")
    
            if im.size[0] > 512:
                print  "WARNING: Image is wider than 512 and could be truncated at print time "
            if im.size[1] > 255:
                raise ImageSizeError()
    
            im_border = self._check_image_size(im.size[0])
            for i in range(im_border[0]):
                im_left += "0"
            for i in range(im_border[1]):
                im_right += "0"
    
            for y in range(im.size[1]):
                img_size[1] += 1
                pix_line += im_left
                img_size[0] += im_border[0]
                for x in range(im.size[0]):
                    img_size[0] += 1
                    RGB = im.getpixel((x, y))
                    im_color = (RGB[0] + RGB[1] + RGB[2])
                    im_pattern = "1X0"
                    pattern_len = len(im_pattern)
                    switch = (switch - 1 ) * (-1)
                    for x in range(pattern_len):
                        if im_color <= (255 * 3 / pattern_len * (x+1)):
                            if im_pattern[x] == "X":
                                pix_line += "%d" % switch
                            else:
                                pix_line += im_pattern[x]
                            break
                        elif im_color > (255 * 3 / pattern_len * pattern_len) and im_color <= (255 * 3):
                            pix_line += im_pattern[-1]
                            break 
                pix_line += im_right
                img_size[0] += im_border[1]
    
            self._print_image(pix_line, img_size)
    
    
        def barcode(self, code, bc, width, height, pos, font):
            """ Print Barcode """
            # Align Bar Code()
            self._raw(TXT_ALIGN_CT)
            # Height
            if height >=2 or height <=6:
                self._raw(BARCODE_HEIGHT)
            else:
                raise BarcodeSizeError()
            # Width
            if width >= 1 or width <=255:
                self._raw(BARCODE_WIDTH)
            else:
                raise BarcodeSizeError()
            # Font
            if font.upper() == "B":
                self._raw(BARCODE_FONT_B)
            else: # DEFAULT FONT: A
                self._raw(BARCODE_FONT_A)
            # Position
            if pos.upper() == "OFF":
                self._raw(BARCODE_TXT_OFF)
            elif pos.upper() == "BOTH":
                self._raw(BARCODE_TXT_BTH)
            elif pos.upper() == "ABOVE":
                self._raw(BARCODE_TXT_ABV)
            else:  # DEFAULT POSITION: BELOW 
                self._raw(BARCODE_TXT_BLW)
            # Type 
            if bc.upper() == "UPC-A":
                self._raw(BARCODE_UPC_A)
            elif bc.upper() == "UPC-E":
                self._raw(BARCODE_UPC_E)
            elif bc.upper() == "EAN13":
                self._raw(BARCODE_EAN13)
            elif bc.upper() == "EAN8":
                self._raw(BARCODE_EAN8)
            elif bc.upper() == "CODE39":
                self._raw(BARCODE_CODE39)
            elif bc.upper() == "ITF":
                self._raw(BARCODE_ITF)
            elif bc.upper() == "NW7":
                self._raw(BARCODE_NW7)
            else:
                raise BarcodeTypeError()
            # Print Code
            if code:
                self._raw(code)
            else:
                raise exception.BarcodeCodeError()
    
    
        def text(self, txt):
            """ Print alpha-numeric text """
            if txt:
                self._raw(txt)
            else:
                raise TextError()
    
    
        def set(self, align='left', font='a', type='normal', width=1, height=1):
            """ Set text properties """
            # Align
            if align.upper() == "CENTER":
                self._raw(TXT_ALIGN_CT)
            elif align.upper() == "RIGHT":
                self._raw(TXT_ALIGN_RT)
            elif align.upper() == "LEFT":
                self._raw(TXT_ALIGN_LT)
            # Font
            if font.upper() == "B":
                self._raw(TXT_FONT_B)
            else:  # DEFAULT FONT: A
                self._raw(TXT_FONT_A)
            # Type
            if type.upper() == "B":
                self._raw(TXT_BOLD_ON)
                self._raw(TXT_UNDERL_OFF)
            elif type.upper() == "U":
                self._raw(TXT_BOLD_OFF)
                self._raw(TXT_UNDERL_ON)
            elif type.upper() == "U2":
                self._raw(TXT_BOLD_OFF)
                self._raw(TXT_UNDERL2_ON)
            elif type.upper() == "BU":
                self._raw(TXT_BOLD_ON)
                self._raw(TXT_UNDERL_ON)
            elif type.upper() == "BU2":
                self._raw(TXT_BOLD_ON)
                self._raw(TXT_UNDERL2_ON)
            elif type.upper == "NORMAL":
                self._raw(TXT_BOLD_OFF)
                self._raw(TXT_UNDERL_OFF)
            # Width
            if width == 2 and height != 2:
                self._raw(TXT_NORMAL)
                self._raw(TXT_2WIDTH)
            elif height == 2 and width != 2:
                self._raw(TXT_NORMAL)
                self._raw(TXT_2HEIGHT)
            elif height == 2 and width == 2:
                self._raw(TXT_2WIDTH)
                self._raw(TXT_2HEIGHT)
            else: # DEFAULT SIZE: NORMAL
                self._raw(TXT_NORMAL)
    
    
        def cut(self, mode=''):
            """ Cut paper """
            # Fix the size between last line and cut
            # TODO: handle this with a line feed
            print "The Cut mode is",mode
            self._raw("\n\n\n\n\n\n")
            if mode.upper() == "PART":
                print "The Cut mode PartCut is true"
                self._raw(PAPER_PART_CUT)
            else: # DEFAULT MODE: FULL CUT
                self._raw(PAPER_FULL_CUT)
    
    
        def cashdraw(self, pin):
            """ Send pulse to kick the cash drawer """
            if pin == 2:
                self._raw(CD_KICK_2)
            elif pin == 5:
                self._raw(CD_KICK_5)
            else:
                raise CashDrawerError()
    
    
        def hw(self, hw):
            """ Hardware operations """
            if hw.upper() == "INIT":
                self._raw(HW_INIT)
            elif hw.upper() == "SELECT":
                self._raw(HW_SELECT)
            elif hw.upper() == "RESET":
                self._raw(HW_RESET)
            else: # DEFAULT: DOES NOTHING
                pass
    
    
        def control(self, ctl):
            """ Feed control sequences """
            if ctl.upper() == "LF":
                self._raw(CTL_LF)
            elif ctl.upper() == "FF":
                self._raw(CTL_FF)
            elif ctl.upper() == "CR":
                self._raw(CTL_CR)
            elif ctl.upper() == "HT":
                self._raw(CTL_HT)
            elif ctl.upper() == "VT":
                self._raw(CTL_VT)
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

How can I send data through a GTK callback? I've Googled, and with the
I can connect manually by doing: M-x sql-postgres and type the User, Database, Host,
I can connect to server and get json data. it is in this format:
I have a remote server that has win2003 installed I can connect to the
I'm experimenting w/java sockets. I can connect to a socket and send/receive bytes of
I want to send the data I get in onLocationChanged() via tcp/ip. I can
The question: How do I create a python application that can connect and send
Essentially I have built a socket server that multiple clients can connect to and
I have a black-box device with a modem attached (which I can send commands
Can't see why this is happening, but when I use Bluetooth to send data

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.