mirror of
				https://github.com/python-escpos/python-escpos
				synced 2025-10-23 09:30:00 +00:00 
			
		
		
		
	Merge remote-tracking branch 'faulab/fix-pc1252'
This commit is contained in:
		
							
								
								
									
										10
									
								
								CHANGELOG
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								CHANGELOG
									
									
									
									
									
								
							| @@ -26,12 +26,18 @@ CHANGELOG | ||||
| * 2015-04-21 - Version 1.0.5 | ||||
| - Merge pull request #45 from Krispy2009/master | ||||
|   . Raising the right error when wrong charcode is used | ||||
|   . Sent by Krispy2009@gmail.com | ||||
|   . Sent by Kristi <Krispy2009@gmail.com> | ||||
|  | ||||
| * 2015-07-06 - Version 1.0.6 | ||||
| - Merge pull request #53 from ldos/master | ||||
|   . Extended params for serial printers | ||||
|   . Sent by cafeteria.ldosalzira@gmail.com | ||||
|   . Sent by ldos <cafeteria.ldosalzira@gmail.com> | ||||
|  | ||||
| * 2015-08-22 - Version 1.0.7 | ||||
| - Issue #57: Fixed transparent images | ||||
|  | ||||
| * 2015-10-27 - Version 1.0.8 | ||||
| - Merge pull request #59 from zouppen/master | ||||
|   . Support for images vertically longer than 256 pixels | ||||
|   . Sent by Joel Lehtonen <joel.lehtonen@koodilehto.fi> | ||||
| - Updated README | ||||
|   | ||||
							
								
								
									
										62
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										62
									
								
								README
									
									
									
									
									
								
							| @@ -4,16 +4,7 @@ ESCPOS | ||||
| Python library to manipulate ESC/POS Printers. | ||||
|  | ||||
| ------------------------------------------------------------------ | ||||
| 1. Dependencies | ||||
|  | ||||
| In order to start getting access to your printer, you must ensure | ||||
| you have previously installed the following python modules: | ||||
|  | ||||
|   * pyusb (python-usb) | ||||
|   * PIL (Python Image Library) | ||||
|  | ||||
| ------------------------------------------------------------------ | ||||
| 2. Description | ||||
| 1. Description | ||||
|  | ||||
| Python ESC/POS is a library which lets the user have access to all | ||||
| those printers handled by ESC/POS commands, as defined by Epson, | ||||
| @@ -33,60 +24,13 @@ paper, carrier return, printer reset and others concerned to the | ||||
| carriage alignment. | ||||
|  | ||||
| ------------------------------------------------------------------ | ||||
| 3. Define your printer | ||||
|  | ||||
| Before start create your Python ESC/POS printer instance, you must | ||||
| see at your system for the printer parameters. This is done with | ||||
| the 'lsusb' command. | ||||
|  | ||||
| First run the command to look for the "Vendor ID" and "Product ID", | ||||
| then write down the values, these values are displayed just before | ||||
| the name of the device with the following format: | ||||
|  | ||||
|   xxxx:xxxx | ||||
|  | ||||
| Example: | ||||
|   Bus 002 Device 001: ID 1a2b:1a2b Device name | ||||
|  | ||||
| Write down the the values in question, then issue the following | ||||
| command so you can get the "Interface" number and "End Point" | ||||
|  | ||||
|   lsusb -vvv -d xxxx:xxxx | grep iInterface | ||||
|   lsusb -vvv -d xxxx:xxxx | grep bEndpointAddress | grep OUT | ||||
|  | ||||
| The first command will yields the "Interface" number that must | ||||
| be handy to have and the second yields the "Output Endpoint" | ||||
| address. | ||||
|  | ||||
| By default the "Interface" number is "0" and the "Output Endpoint" | ||||
| address is "0x82",  if you have other values then you can define | ||||
| with your instance. | ||||
|  | ||||
| ------------------------------------------------------------------ | ||||
| 4. Define your instance | ||||
|  | ||||
| The following example shows how to initialize the Epson TM-TI88IV | ||||
| *** NOTE: Always finish the sequence with Epson.cut() otherwise | ||||
|           you will endup with weird chars being printed. | ||||
|  | ||||
|   from escpos import * | ||||
|  | ||||
|   """ Seiko Epson Corp. Receipt Printer M129 Definitions (EPSON TM-T88IV) """ | ||||
|   Epson = escpos.Escpos(0x04b8,0x0202) | ||||
|   Epson.text("Hello World") | ||||
|   Epson.image("logo.gif") | ||||
|   Epson.barcode | ||||
|   Epson.barcode('1324354657687','EAN13',64,2,'','') | ||||
|   Epson.cut() | ||||
|  | ||||
| ------------------------------------------------------------------ | ||||
| 5. Links | ||||
| 2. Documentation | ||||
|  | ||||
| Please visit project documentation at: | ||||
| https://github.com/manpaz/python-escpos/wiki | ||||
|  | ||||
| ------------------------------------------------------------------ | ||||
| 6. Donations | ||||
| 3. Donations | ||||
|  | ||||
| There are some different prints I'd like to acquire, but unfortunately | ||||
| not all, even used, are cheaper and easy to get. | ||||
|   | ||||
| @@ -42,7 +42,7 @@ CHARCODE_PC865  = '\x1b\x74\x05' # Nordic | ||||
| CHARCODE_WEU    = '\x1b\x74\x06' # Simplified Kanji, Hirakana | ||||
| CHARCODE_GREEK  = '\x1b\x74\x07' # Simplified Kanji | ||||
| CHARCODE_HEBREW = '\x1b\x74\x08' # Simplified Kanji | ||||
| CHARCODE_PC1252 = '\x1b\x74\x11' # Western European Windows Code Set | ||||
| CHARCODE_PC1252 = '\x1b\x74\x10' # Western European Windows Code Set | ||||
| CHARCODE_PC866  = '\x1b\x74\x12' # Cirillic #2 | ||||
| CHARCODE_PC852  = '\x1b\x74\x13' # Latin 2 | ||||
| CHARCODE_PC858  = '\x1b\x74\x14' # Euro | ||||
|   | ||||
| @@ -45,7 +45,7 @@ class Escpos: | ||||
|         buffer = "" | ||||
|  | ||||
|         self._raw(S_RASTER_N) | ||||
|         buffer = "%02X%02X%02X%02X" % (((size[0]/size[1])/8), 0, size[1], 0) | ||||
|         buffer = "%02X%02X%02X%02X" % (((size[0]/size[1])/8), 0, size[1]&0xff, size[1]>>8) | ||||
|         self._raw(binascii.unhexlify(buffer)) | ||||
|         buffer = "" | ||||
|  | ||||
| @@ -72,7 +72,7 @@ class Escpos: | ||||
|  | ||||
|         if im.size[0] > 512: | ||||
|             print  ("WARNING: Image is wider than 512 and could be truncated at print time ") | ||||
|         if im.size[1] > 255: | ||||
|         if im.size[1] > 0xffff: | ||||
|             raise ImageSizeError() | ||||
|  | ||||
|         im_border = self._check_image_size(im.size[0]) | ||||
|   | ||||
| @@ -41,11 +41,19 @@ class Usb(Escpos): | ||||
|         if self.device is None: | ||||
|             print("Cable isn't plugged in") | ||||
|  | ||||
|         if self.device.is_kernel_driver_active(0): | ||||
|         check_driver = None | ||||
|  | ||||
|         try: | ||||
|             check_driver = self.device.is_kernel_driver_active(0) | ||||
|         except NotImplementedError: | ||||
|             pass | ||||
|  | ||||
|         if check_driver is None or check_driver: | ||||
|             try: | ||||
|                 self.device.detach_kernel_driver(0) | ||||
|             except usb.core.USBError as e: | ||||
|                 print("Could not detatch kernel driver: %s" % str(e)) | ||||
|                 if check_driver is not None: | ||||
|                     print("Could not detatch kernel driver: %s" % str(e)) | ||||
|  | ||||
|         try: | ||||
|             self.device.set_configuration() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Christoph Heuel
					Christoph Heuel