├── .gitignore ├── .vscode └── settings.json ├── data ├── profile │ ├── NT-5890K.yml │ ├── TH230Plus.yml │ ├── TEP-200M.yml │ ├── TUP500.yml │ ├── TM-T20II-42col.yml │ ├── RP-F10-58mm.yml │ ├── TM-U220B.yml │ ├── TSP600.yml │ ├── TM-P80-42col.yml │ ├── TM-U220.yml │ ├── T-1.yml │ ├── TM-P80.yml │ ├── TM-T88IV-SA.yml │ ├── simple.yml │ ├── TM-T88IV.yml │ ├── AF-240.yml │ ├── TM-T88III.yml │ ├── Sunmi-V2.yml │ ├── safe.yml │ ├── OCD-300.yml │ ├── OCD-100.yml │ ├── TM-T88V.yml │ ├── TM-T20II.yml │ ├── RP-F10-80mm.yml │ ├── ITPP047.yml │ ├── RP326.yml │ ├── ZJ-5870.yml │ ├── SRP-S300.yml │ ├── SP2000.yml │ ├── TH230.yml │ ├── CT-S651.yml │ ├── TM-L90.yml │ ├── P822D.yml │ ├── NT-80-V-UL.yml │ ├── POS-5890.yml │ ├── mcPrint.yml │ ├── KR-306.yml │ ├── default.yml │ └── TM-T88II.yml └── encoding.yml ├── .github └── workflows │ ├── black.yml │ └── python-app.yml ├── README.md ├── doc └── add-your-printer.md ├── scripts └── collate.py ├── LICENSE.md └── dist └── capabilities.yml /.gitignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | *.swo 3 | *.swn 4 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "python.formatting.provider": "black" 3 | } -------------------------------------------------------------------------------- /data/profile/NT-5890K.yml: -------------------------------------------------------------------------------- 1 | --- 2 | NT-5890K: 3 | name: NT-5890K 4 | vendor: Netum 5 | inherits: POS-5890 6 | notes: "" 7 | features: 8 | bitImageColumn: true 9 | -------------------------------------------------------------------------------- /data/profile/TH230Plus.yml: -------------------------------------------------------------------------------- 1 | --- 2 | TH230Plus: 3 | name: TH230+ 4 | vendor: Wincor Nixdorf 5 | notes: > 6 | Profile for TH230+. Use bitImageColumn to print properly. 7 | TH230+ supports native qr codes and PDF417 codes 8 | inherits: TH230 9 | features: 10 | qrCode: true 11 | pdf417Code: true 12 | -------------------------------------------------------------------------------- /data/profile/TEP-200M.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # More info on this printer is posted at 3 | # https://github.com/mike42/escpos-php/issues/6 4 | # https://www.dreamits.net/product/e-pos-thermal-printer-tep-220mc/ 5 | TEP-200M: 6 | name: TEP200M Series 7 | vendor: EPOS 8 | notes: "" 9 | inherits: default 10 | media: 11 | dpi: 203 12 | ... 13 | -------------------------------------------------------------------------------- /data/profile/TUP500.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # More info on this printer is posted at 3 | # http://www.starasia.com/ProductDetail.asp?ID=138 4 | TUP500: 5 | name: TUP500 Series 6 | vendor: Star Micronics 7 | inherits: SP2000 8 | notes: Star TUP500 thermal printer series with ESC/POS emulation enabled 9 | media: 10 | width: 11 | mm: 80 12 | dpi: 203 13 | ... 14 | -------------------------------------------------------------------------------- /.github/workflows/black.yml: -------------------------------------------------------------------------------- 1 | name: Lint (Black code style) 2 | 3 | on: 4 | push: 5 | branches: [ "master" ] 6 | pull_request: 7 | branches: [ "master" ] 8 | 9 | jobs: 10 | black-code-style: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v3 14 | - uses: psf/black@stable 15 | with: 16 | version: "23.12.0" 17 | -------------------------------------------------------------------------------- /data/profile/TM-T20II-42col.yml: -------------------------------------------------------------------------------- 1 | --- 2 | TM-T20II-42col: 3 | name: TM-T20II (42 column mode) 4 | vendor: Epson 5 | inherits: TM-T20II 6 | notes: Epson TM-T20II profile (42 column mode) 7 | media: 8 | width: 9 | mm: 68.3 10 | pixels: 546 11 | fonts: 12 | 0: 13 | name: Font A 14 | columns: 42 15 | 1: 16 | name: Font B 17 | columns: 60 18 | ... 19 | -------------------------------------------------------------------------------- /data/profile/RP-F10-58mm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | RP-F10-58mm: 3 | name: RP-F10 4 | vendor: Seiko 5 | notes: > 6 | Seiko RP-F10 series with 58mm paper 7 | inherits: RP-F10-80mm 8 | fonts: 9 | 0: 10 | name: Font A 11 | columns: 36 12 | 1: 13 | name: Font B 14 | columns: 54 15 | media: 16 | dpi: 203 17 | width: 18 | mm: 54 19 | pixels: 432 20 | ... 21 | -------------------------------------------------------------------------------- /data/profile/TM-U220B.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # More info on this printer is posted at 3 | # https://files.support.epson.com/pdf/pos/bulk/tm-u220_trg_en_std_reve.pdf 4 | TM-U220B: 5 | name: TM-U220B 6 | vendor: Epson 7 | inherits: TM-U220 8 | notes: Two-color impact printer with 76mm output 9 | features: 10 | bitImageRaster: false 11 | bitImageColumn: true 12 | highDensity: false 13 | paperPartCut: true 14 | ... 15 | -------------------------------------------------------------------------------- /data/profile/TSP600.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # More info on this printer is posted at 3 | # https://www.manualslib.es/manual/496700/Star-Tsp600-Serie.html?page=12 4 | TSP600: 5 | name: TSP600 Series 6 | vendor: Star Micronics 7 | inherits: SP2000 8 | notes: Star TSP600 thermal printer series with ESC/POS emulation enabled 9 | media: 10 | width: 11 | mm: 72 12 | pixels: 576 13 | # @page 12 14 | dpi: 203 15 | ... 16 | -------------------------------------------------------------------------------- /data/profile/TM-P80-42col.yml: -------------------------------------------------------------------------------- 1 | --- 2 | TM-P80-42col: 3 | name: TM-P80 (42 column mode) 4 | vendor: Epson 5 | inherits: TM-P80 6 | notes: Portable printer (42-column mode) 7 | fonts: 8 | 0: 9 | name: Font A 10 | columns: 42 11 | 1: 12 | name: Font B 13 | columns: 60 14 | 2: 15 | name: Kanji 16 | columns: 21 17 | media: 18 | width: 19 | mm: 63.6 20 | pixels: 546 21 | ... 22 | -------------------------------------------------------------------------------- /data/profile/TM-U220.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # More info on this printer is posted at 3 | # https://files.support.epson.com/pdf/pos/bulk/tm-u220_trg_en_std_reve.pdf 4 | TM-U220: 5 | name: TM-U220 6 | vendor: Epson 7 | inherits: simple 8 | notes: Two-color impact printer with 80mm output 9 | features: 10 | bitImageRaster: false 11 | bitImageColumn: true 12 | highDensity: false 13 | colors: 14 | 0: black 15 | 1: alternate 16 | media: 17 | width: 18 | # @page 20 19 | mm: 63.4 20 | pixels: 400 21 | ... 22 | -------------------------------------------------------------------------------- /data/profile/T-1.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # More info on this printer is posted at 3 | # https://www.manualslib.com/manual/1051268/Metapace-T-1.html?page=20#manual 4 | T-1: 5 | name: T-1 6 | vendor: Metapace 7 | inherits: default 8 | notes: Metapace T-1 Thermal Printer Rev. 1.00 9 | media: 10 | width: 11 | mm: 80 12 | pixels: 504 13 | dpi: 180 14 | codePages: 15 | 0: CP437 16 | # Katakana 17 | 1: KATAKANA 18 | 2: CP850 19 | 3: CP860 20 | 4: CP863 21 | 5: CP865 22 | 19: CP858 23 | 255: Unknown 24 | ... 25 | -------------------------------------------------------------------------------- /data/profile/TM-P80.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # More info on this printer is posted at 3 | # https://files.support.epson.com/pdf/pos/bulk/tm-p80_trg_en_revc.pdf 4 | TM-P80: 5 | name: TM-P80 6 | vendor: Epson 7 | inherits: default 8 | notes: Portable printer (48-column mode) 9 | fonts: 10 | 0: 11 | name: Font A 12 | columns: 42 13 | 1: 14 | name: Font B 15 | columns: 56 16 | 2: 17 | name: Kanji 18 | columns: 24 19 | media: 20 | width: 21 | mm: 72 22 | pixels: 576 23 | # @page 91 24 | dpi: 203 25 | ... 26 | -------------------------------------------------------------------------------- /data/profile/TM-T88IV-SA.yml: -------------------------------------------------------------------------------- 1 | --- 2 | TM-T88IV-SA: 3 | name: TM-T88IV South Asia 4 | vendor: "Epson" 5 | inherits: TM-T88IV 6 | notes: > 7 | Epson TM-T88IV profile (South Asia models) 8 | fonts: 9 | 0: 10 | name: Font A 11 | columns: 42 12 | 1: 13 | name: Font B 14 | columns: 56 15 | codePages: 16 | 0: CP437 17 | # Thai Character Code 42 18 | 20: Unknown 19 | # Thai Character Code 11 20 | 21: CP874 21 | # Thai Character Code 18 22 | 26: Unknown 23 | 30: TCVN-3-1 24 | 31: TCVN-3-2 25 | ... 26 | -------------------------------------------------------------------------------- /data/profile/simple.yml: -------------------------------------------------------------------------------- 1 | --- 2 | simple: 3 | name: Simple 4 | vendor: Generic 5 | inherits: default 6 | notes: > 7 | A profile for use in printers with unknown or poor compatibility. This 8 | profile indicates that a small number of features are supported, so that 9 | commands are not sent a printer that is unlikely to understand them. 10 | features: 11 | barcodeA: false 12 | barcodeB: false 13 | bitImageColumn: false 14 | graphics: false 15 | qrCode: false 16 | pdf417Code: false 17 | paperFullCut: false 18 | paperPartCut: false 19 | codePages: 20 | 0: CP437 21 | ... 22 | -------------------------------------------------------------------------------- /data/profile/TM-T88IV.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # More info on this printer is posted at 3 | # https://files.support.epson.com/pdf/pos/bulk/tm-t88iv_eng_trg_revc_02.pdf 4 | TM-T88IV: 5 | name: TM-T88IV 6 | vendor: "Epson" 7 | inherits: default 8 | notes: > 9 | Epson TM-T88IV profile 10 | media: 11 | width: 12 | mm: 80 13 | pixels: 512 14 | # @page 24 15 | dpi: 180 16 | fonts: 17 | 0: 18 | name: Font A 19 | columns: 42 20 | 1: 21 | name: Font B 22 | columns: 56 23 | codePages: 24 | 0: CP437 25 | 1: CP932 26 | 2: CP850 27 | 3: CP860 28 | 4: CP863 29 | 5: CP865 30 | 16: CP1252 31 | 17: CP866 32 | 18: CP852 33 | 19: CP858 34 | 255: Unknown 35 | ... 36 | -------------------------------------------------------------------------------- /data/profile/AF-240.yml: -------------------------------------------------------------------------------- 1 | --- 2 | AF-240: 3 | name: AF-240 Customer Display 4 | vendor: Oxhoo 5 | inherits: simple 6 | features: 7 | bitImageRaster: false 8 | bitImageColumn: false 9 | graphics: false 10 | highDensity: false 11 | pulseStandard: false 12 | fonts: 13 | 0: 14 | name: Font A 15 | columns: 20 16 | media: 17 | width: 18 | # Approximate measurement 19 | mm: 120 20 | # 5x7 pixels per char, by 20 columns. 21 | pixels: 100 22 | notes: > 23 | This is a two-line, ESC/POS-aware customer display from Oxhoo. The ESC/POS 24 | command mode can be activated persistently by sending: 25 | 26 | echo -ne "\n\x02\x05\x43\x31\x03" > /dev/ttyUSB0 27 | codePages: 28 | 0: OXHOO-EUROPEAN 29 | ... 30 | -------------------------------------------------------------------------------- /data/profile/TM-T88III.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # More info on this printer is posted at 3 | # https://download.epson-biz.com/modules/pos/index.php?page=single_doc&cid=1352&pcat=3&pid=21&ml_lang=de 4 | TM-T88III: 5 | name: TM-T88III 6 | vendor: "Epson" 7 | inherits: default 8 | notes: > 9 | Epson TM-T88III profile. This printer has similar feature support to the 10 | TM-T88II. The code page mapping is documented in the 11 | "TM-T88II/T88III Technical Reference Guide". 12 | media: 13 | width: 14 | mm: 80 15 | pixels: 512 16 | # @page 55 17 | dpi: 180 18 | fonts: 19 | 0: 20 | name: Font A 21 | columns: 42 22 | 1: 23 | name: Font B 24 | columns: 56 25 | codePages: 26 | 0: CP437 27 | 1: CP932 28 | 2: CP850 29 | 3: CP860 30 | 4: CP863 31 | 5: CP865 32 | 6: CP1251 33 | 16: CP1252 34 | 17: CP866 35 | 18: CP862 36 | 19: CP858 37 | 255: Unknown 38 | ... 39 | -------------------------------------------------------------------------------- /data/profile/Sunmi-V2.yml: -------------------------------------------------------------------------------- 1 | --- 2 | Sunmi-V2: 3 | name: Sunmi V2 4 | vendor: Sunmi 5 | notes: > 6 | Sunmi mini-POS Android device with a built-in Virtual Bluetooth 7 | thermal printer. 8 | inherits: default 9 | features: 10 | # column mode doesn't work reliably on this device 11 | bitImageColumn: false 12 | bitImageRaster: true 13 | # not tested, status unknown 14 | graphics: false 15 | # has no paper cutter 16 | paperFullCut: false 17 | paperPartCut: false 18 | colors: 19 | 0: black 20 | fonts: 21 | 0: 22 | name: Font A 23 | columns: 32 24 | 1: 25 | name: Font B 26 | columns: 42 27 | media: 28 | width: 29 | mm: 57.5 30 | pixels: 384 31 | codePages: 32 | 0: CP437 33 | 2: CP850 34 | 3: CP860 35 | 4: CP863 36 | 5: CP865 37 | 13: CP857 38 | 14: CP737 39 | 15: ISO_8859-7 40 | 16: CP1252 41 | 17: CP866 42 | 18: CP852 43 | 19: CP858 44 | # Thai Character Code 11 45 | 21: CP874 46 | 33: CP775 47 | 34: CP855 48 | 36: CP862 49 | 37: CP864 50 | 254: CP855 51 | ... 52 | -------------------------------------------------------------------------------- /data/profile/safe.yml: -------------------------------------------------------------------------------- 1 | --- 2 | safe: 3 | name: Safe 4 | vendor: Generic 5 | notes: > 6 | Default "safe" ESC/POS profile, suitable for standards-compliant or 7 | Epson-branded printers. This profile is similar to the "generic" profile, 8 | but has a lot less codepages to avoid encoding errors. 9 | features: 10 | barcodeA: true 11 | barcodeB: true 12 | bitImageRaster: true 13 | bitImageColumn: true 14 | graphics: true 15 | starCommands: false 16 | qrCode: true 17 | pdf417Code: true 18 | highDensity: true 19 | pulseStandard: true 20 | pulseBel: false 21 | paperFullCut: true 22 | paperPartCut: true 23 | colors: 24 | 0: black 25 | fonts: 26 | 0: 27 | name: Font A 28 | columns: 42 29 | 1: 30 | name: Font B 31 | columns: 56 32 | media: 33 | width: 34 | mm: Unknown 35 | pixels: Unknown 36 | codePages: 37 | 0: CP437 38 | 1: CP932 39 | 2: CP850 40 | 3: CP860 41 | 4: CP863 42 | 5: CP865 43 | 16: CP1252 44 | 17: CP866 45 | 18: CP852 46 | 19: CP858 47 | 255: Unknown 48 | ... 49 | -------------------------------------------------------------------------------- /data/profile/OCD-300.yml: -------------------------------------------------------------------------------- 1 | --- 2 | OCD-300: 3 | name: OCD-300 Customer Display 4 | vendor: Aures 5 | inherits: simple 6 | features: 7 | bitImageRaster: false 8 | bitImageColumn: false 9 | graphics: false 10 | highDensity: false 11 | pulseStandard: false 12 | fonts: 13 | 0: 14 | name: Font A 15 | columns: 20 16 | media: 17 | width: 18 | mm: 130.2 19 | # 12x32 pixels per char 20 | pixels: 240 21 | notes: > 22 | This is a two-line, ESC/POS-aware customer display from Aures. It has some 23 | graphics support via vendor-provided tools, but is otherwise text-only. 24 | codePages: 25 | 0: CP437 26 | # Katakana (for Japan) 27 | 1: CP932 28 | 2: CP850 29 | 3: CP860 30 | 4: CP863 31 | 5: CP865 32 | # Slawie 33 | 6: Unknown 34 | # Russia 35 | 7: Unknown 36 | # Greek 37 | 8: Unknown 38 | 9: CP852 39 | 10: CP862 40 | 11: CP866 41 | 12: CP1251 42 | 13: CP1254 43 | 14: CP1255 44 | 15: CP1257 45 | 16: CP1252 46 | 17: CP1253 47 | 18: CP1250 48 | 19: CP858 49 | # Arabic 50 | 20: Unknown 51 | ... 52 | -------------------------------------------------------------------------------- /data/profile/OCD-100.yml: -------------------------------------------------------------------------------- 1 | --- 2 | OCD-100: 3 | name: OCD-100 Customer Display 4 | vendor: Aures 5 | inherits: simple 6 | features: 7 | bitImageRaster: false 8 | bitImageColumn: false 9 | graphics: false 10 | highDensity: false 11 | pulseStandard: false 12 | fonts: 13 | 0: 14 | name: Font A 15 | columns: 20 16 | media: 17 | width: 18 | # 9x5.25mm per char, by 20 columns. 19 | mm: 180 20 | # 5x7 pixels per char, by 20 columns. 21 | pixels: 100 22 | notes: > 23 | This is a two-line, ESC/POS-aware customer display from Aures. It has some 24 | graphics support via custom fonts, but is otherwise text-only. 25 | This profile is also suitable for the OCD-150 pole-mounted display. 26 | codePages: 27 | 0: CP437 28 | # Katakana (for Japan) 29 | 1: CP932 30 | 2: CP850 31 | 3: CP860 32 | 4: CP863 33 | 5: CP865 34 | # Slawie 35 | 6: Unknown 36 | # Russia 37 | 7: Unknown 38 | # Greek 39 | 8: Unknown 40 | 9: CP852 41 | 10: CP862 42 | 11: CP866 43 | 12: CP1251 44 | 13: CP1254 45 | 14: CP1255 46 | 15: CP1257 47 | 16: CP1252 48 | 17: CP1253 49 | 19: CP858 50 | ... 51 | -------------------------------------------------------------------------------- /data/profile/TM-T88V.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # More info on this printer is posted at 3 | # https://files.support.epson.com/pdf/pos/bulk/tmt88v_trg_reve.pdf 4 | TM-T88V: 5 | name: TM-T88V 6 | vendor: "Epson" 7 | inherits: default 8 | notes: > 9 | Epson TM-T88V profile 10 | media: 11 | width: 12 | mm: 80 13 | pixels: 512 14 | # @page 26 15 | dpi: 180 16 | fonts: 17 | 0: 18 | name: Font A 19 | columns: 42 20 | 1: 21 | name: Font B 22 | columns: 56 23 | codePages: 24 | 0: CP437 25 | 1: CP932 26 | 2: CP850 27 | 3: CP860 28 | 4: CP863 29 | 5: CP865 30 | 11: CP851 31 | 12: CP853 32 | 13: CP857 33 | 14: CP737 34 | 15: ISO_8859-7 35 | 16: CP1252 36 | 17: CP866 37 | 18: CP852 38 | 19: CP858 39 | 30: TCVN-3-1 40 | 31: TCVN-3-2 41 | 32: CP720 42 | 33: CP775 43 | 34: CP855 44 | 35: CP861 45 | 36: CP862 46 | 37: CP864 47 | 38: CP869 48 | 39: ISO_8859-2 49 | 40: ISO_8859-15 50 | 41: CP1098 51 | 45: CP1250 52 | 46: CP1251 53 | 47: CP1253 54 | 48: CP1254 55 | 49: CP1255 56 | 50: CP1256 57 | 51: CP1257 58 | 52: CP1258 59 | 53: RK1048 60 | 255: Unknown 61 | ... 62 | -------------------------------------------------------------------------------- /data/profile/TM-T20II.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # More info on this printer is posted at 3 | # https://files.support.epson.com/pdf/pos/bulk/tm-t20ii_trg_en_revd.pdf 4 | TM-T20II: 5 | name: TM-T20II 6 | vendor: Epson 7 | inherits: default 8 | notes: Epson TM-T20II profile 9 | media: 10 | width: 11 | mm: 72 12 | pixels: 576 13 | # @page 22 14 | dpi: 203 15 | fonts: 16 | 0: 17 | name: Font A 18 | columns: 48 19 | 1: 20 | name: Font B 21 | columns: 64 22 | codePages: 23 | 0: CP437 24 | 1: CP932 25 | 2: CP850 26 | 3: CP860 27 | 4: CP863 28 | 5: CP865 29 | 11: CP851 30 | 12: CP853 31 | 13: CP857 32 | 14: CP737 33 | 15: ISO_8859-7 34 | 16: CP1252 35 | 17: CP866 36 | 18: CP852 37 | 19: CP858 38 | 30: TCVN-3-1 39 | 31: TCVN-3-2 40 | 32: CP720 41 | 33: CP775 42 | 34: CP855 43 | 35: CP861 44 | 36: CP862 45 | 37: CP864 46 | 38: CP869 47 | 39: ISO_8859-2 48 | 40: ISO_8859-15 49 | 41: CP1098 50 | 44: CP1125 51 | 45: CP1250 52 | 46: CP1251 53 | 47: CP1253 54 | 48: CP1254 55 | 49: CP1255 56 | 50: CP1256 57 | 51: CP1257 58 | 52: CP1258 59 | 53: RK1048 60 | 255: Unknown 61 | ... 62 | -------------------------------------------------------------------------------- /data/profile/RP-F10-80mm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # More info on this printer is posted at 3 | # https://www.sii-ps.com/rpf10/RPF_UG_EN_04.pdf 4 | RP-F10-80mm: 5 | name: RP-F10 6 | vendor: Seiko 7 | notes: > 8 | Seiko RP-F10 series with 80mm paper 9 | inherits: default 10 | features: 11 | barcodeA: true 12 | barcodeB: true 13 | bitImageRaster: true 14 | bitImageColumn: true 15 | graphics: true 16 | starCommands: false 17 | qrCode: true 18 | pdf417Code: true 19 | highDensity: true 20 | pulseStandard: true 21 | pulseBel: false 22 | paperFullCut: true 23 | paperPartCut: true 24 | colors: 25 | 0: black 26 | fonts: 27 | 0: 28 | name: Font A 29 | columns: 48 30 | 1: 31 | name: Font B 32 | columns: 72 33 | media: 34 | width: 35 | mm: 72 36 | pixels: 576 37 | # @page 51 38 | dpi: 203 39 | codePages: 40 | 0: CP437 41 | 1: KATAKANA 42 | 2: CP850 43 | 3: CP860 44 | 4: CP863 45 | 5: CP865 46 | 13: CP857 47 | 14: CP737 48 | 16: CP1252 49 | 17: CP866 50 | 18: CP852 51 | 19: CP858 52 | 34: CP855 53 | 37: CP864 54 | 45: CP1250 55 | 46: CP1251 56 | 47: CP1253 57 | 48: CP1254 58 | # Userpage 59 | 255: Unknown 60 | ... 61 | -------------------------------------------------------------------------------- /data/profile/ITPP047.yml: -------------------------------------------------------------------------------- 1 | --- 2 | ITPP047: 3 | name: ITPP047 4 | vendor: "Munbyn" 5 | notes: > 6 | Munbyn ITPP047/ITPP102 receipt printer with cutter. 7 | 8 | This printer has all the standard features, but a 9 | somewhat reduced codepage set. This profile might work 10 | for other china printers (Meihengtong, ...), too. 11 | 12 | For technical information, go to support.munbyn.com, 13 | look for "Printer - Drivers / SDK", then download the 14 | "ITPP047 SDK", which contains the "ITPP047 Program Manual". 15 | inherits: default 16 | media: 17 | width: 18 | mm: 80 19 | pixels: 512 20 | codePages: 21 | 0: CP437 22 | # Katakana (for Japan) 23 | 1: CP932 24 | # PC850: Multilingual 25 | 2: CP850 26 | # PC860: Portuguese 27 | 3: CP860 28 | # PC863 [Canadian French] 29 | 4: CP863 30 | # PC865:Nodic 31 | 5: CP865 32 | # West Europe (actually CP1252) 33 | 6: CP1252 34 | # Greek 35 | 7: Unknown 36 | # Hebrew 37 | 8: Unknown 38 | # CP755 39 | 9: Unknown 40 | # Iran 41 | 10: Unknown 42 | # docs claim this to be CP1252, but it isn't 43 | # 16: CP1252 44 | 16: Unknown 45 | 17: CP866 46 | 18: CP852 47 | 19: CP858 48 | # Iran II 49 | 20: Unknown 50 | # Latvian 51 | 21: Unknown 52 | ... 53 | -------------------------------------------------------------------------------- /data/profile/RP326.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # More info on this printer is posted at 3 | # https://www.rongtatech.com/rp326-80mm-thermal-printer-for-receipt-printting_p68.html 4 | RP326: 5 | name: RP326 6 | vendor: Rongta 7 | inherits: default 8 | notes: "" 9 | features: 10 | graphics: false 11 | media: 12 | dpi: 203 13 | codePages: 14 | 0: CP437 15 | # Katakana 16 | 1: KATAKANA 17 | 2: CP850 18 | 3: CP860 19 | 4: CP863 20 | 5: CP865 21 | 6: CP1251 22 | 7: CP866 23 | # MIK[Cyrillic /Bulgarian] 24 | 8: Unknown 25 | # CP755 26 | 9: Unknown 27 | # Iran 28 | 10: Unknown 29 | 15: CP862 30 | 16: CP1252 31 | 17: CP1253 32 | 18: CP852 33 | 19: CP858 34 | # Iran II 35 | 20: Unknown 36 | # Latvian 37 | 21: Unknown 38 | # Arabic 39 | 22: Unknown 40 | 23: ISO_8859-1 41 | 24: CP737 42 | 25: CP1257 43 | # Thai 44 | 26: Unknown 45 | 27: CP720 46 | 28: CP855 47 | 29: CP857 48 | 30: CP1250 49 | 31: CP775 50 | 32: CP1254 51 | 33: CP1255 52 | 34: CP1256 53 | 35: CP1258 54 | 36: ISO_8859-2 55 | 37: ISO_8859-3 56 | 38: ISO_8859-4 57 | 39: ISO_8859-5 58 | 40: ISO_8859-6 59 | 41: ISO_8859-7 60 | 42: ISO_8859-8 61 | 43: ISO_8859-9 62 | 44: ISO_8859-15 63 | # Thai 64 | 45: Unknown 65 | 46: CP856 66 | 47: CP874 67 | ... 68 | -------------------------------------------------------------------------------- /data/profile/ZJ-5870.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # More info on this printer is posted at 3 | # http://www.cnfujun.com/en/init.php/product/index?id=23 4 | ZJ-5870: 5 | name: ZJ-5870 Thermal Receipt Printer 6 | vendor: ZiJiang 7 | notes: > 8 | ESC/POS Profile for ZiJiang ZJ-5870 Thermal Receipt Printer, 9 | which may be branded AGPtEK or Esky, 10 | and identifies itself as a POS-58 Thermal Printer on selftest. 11 | This profile is suitable for alphanumberic character mode, 12 | but is untested on Chinese character mode. 13 | (Change modes by holding down feed button during power-on 14 | until the mode LED turns off, then release immediately.) 15 | inherits: default 16 | features: 17 | barcodeA: false 18 | barcodeB: false 19 | bitImageRaster: true 20 | bitImageColumn: true 21 | graphics: false 22 | starCommands: false 23 | qrCode: false 24 | pdf417Code: false 25 | highDensity: false 26 | pulseStandard: true 27 | pulseBel: false 28 | paperFullCut: false 29 | paperPartCut: false 30 | colors: 31 | 0: black 32 | fonts: 33 | 0: 34 | name: Font A 35 | columns: 32 36 | media: 37 | width: 38 | mm: 48 39 | pixels: 384 40 | dpi: 203 41 | codePages: 42 | 0: CP437 43 | 1: CP932 44 | 2: CP850 45 | 3: CP860 46 | 4: CP863 47 | 5: CP865 48 | 16: CP1252 49 | 17: CP866 50 | 18: CP852 51 | ... 52 | -------------------------------------------------------------------------------- /data/profile/SRP-S300.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # More info on this printer is posted at 3 | # https://www.bixolon.com/_upload/manual/Manual_User_SRP-S320_ENG_V2.00.pdf 4 | # https://www.bixolon.com/_upload/manual/Manual_Command_Thermal_POS_Printer_ENG_V1.00[11].pdf 5 | SRP-S300: 6 | name: SRP-S300 7 | vendor: Bixolon 8 | inherits: default 9 | notes: Bixolon SRP-S300 profile 10 | media: 11 | width: 12 | mm: 80 13 | pixels: 640 14 | # @page 41 15 | dpi: 203 16 | fonts: 17 | 0: 18 | name: Font A 19 | columns: 48 20 | 1: 21 | name: Font B 22 | columns: 64 23 | 2: 24 | name: Font C 25 | columns: 64 26 | codePages: 27 | 0: CP437 28 | 1: CP932 29 | 2: CP850 30 | 3: CP860 31 | 4: CP863 32 | 5: CP865 33 | 16: CP1252 34 | 17: CP866 35 | 18: CP852 36 | 19: CP858 37 | # Thai Character Code 11 38 | 21: CP874 39 | # Thai Character Code 13 40 | 22: Unknown 41 | # Thai Character Code 14 42 | 23: Unknown 43 | # Thai Character Code 16 44 | 24: Unknown 45 | # Thai Character Code 17 46 | 25: Unknown 47 | # Thai Character Code 18 48 | 26: Unknown 49 | 30: TCVN-3-1 50 | 31: TCVN-3-2 51 | 33: CP775 52 | 34: CP855 53 | 35: CP861 54 | 36: CP862 55 | 37: CP864 56 | 38: CP869 57 | 39: ISO_8859-2 58 | 40: ISO_8859-15 59 | 41: CP1098 60 | 42: CP774 61 | 47: CP1253 62 | 49: CP1255 63 | 50: CP1256 64 | 255: Unknown 65 | ... 66 | -------------------------------------------------------------------------------- /.github/workflows/python-app.yml: -------------------------------------------------------------------------------- 1 | # This workflow will install Python dependencies, run tests and lint with a single version of Python 2 | # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python 3 | 4 | name: Python application 5 | 6 | on: 7 | push: 8 | branches: [ "master" ] 9 | pull_request: 10 | branches: [ "master" ] 11 | 12 | permissions: 13 | contents: read 14 | 15 | jobs: 16 | build: 17 | 18 | runs-on: ubuntu-latest 19 | 20 | steps: 21 | - uses: actions/checkout@v3 22 | - name: Set up Python 3.10 23 | uses: actions/setup-python@v3 24 | with: 25 | python-version: "3.10" 26 | - name: Install dependencies 27 | run: | 28 | python -m pip install --upgrade pip 29 | pip install flake8 pytest pyyaml pyaml yamllint 30 | if [ -f requirements.txt ]; then pip install -r requirements.txt; fi 31 | - name: Lint with flake8 32 | run: | 33 | # stop the build if there are Python syntax errors or undefined names 34 | flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics 35 | # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide 36 | flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics 37 | - name: Lint yml input 38 | run: | 39 | find data/ -name '*.yml' | xargs yamllint 40 | - name: Run collator script 41 | run: | 42 | python scripts/collate.py 43 | -------------------------------------------------------------------------------- /data/profile/SP2000.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # More info on this printer is posted at 3 | # https://www.manualslib.com/manual/165071/Star-Micronics-Sp2000.html?page=154#manual 4 | SP2000: 5 | name: SP2000 Series 6 | vendor: Star Micronics 7 | inherits: default 8 | notes: Star SP2000 impact printer series with ESC/POS emulation enabled 9 | features: 10 | starCommands: true 11 | media: 12 | dpi: 85 13 | codePages: 14 | # "Normal" 15 | 0: CP437 16 | 1: CP437 17 | 2: CP932 18 | 3: CP437 19 | 4: CP858 20 | 5: CP852 21 | 6: CP860 22 | 7: CP861 23 | 8: CP863 24 | 9: CP865 25 | 10: CP866 26 | 11: CP855 27 | 12: CP857 28 | 13: CP862 29 | 14: CP864 30 | 15: CP737 31 | 16: CP851 32 | 17: CP869 33 | 18: CP928 34 | 19: CP772 35 | 20: CP774 36 | 21: CP874 37 | 32: CP1252 38 | 33: CP1250 39 | 34: CP1251 40 | 64: CP3840 41 | 65: CP3841 42 | 66: CP3843 43 | 67: CP3844 44 | 68: CP3845 45 | 69: CP3846 46 | 70: CP3847 47 | 71: CP3848 48 | 72: CP1001 49 | 73: CP2001 50 | 74: CP3001 51 | 75: CP3002 52 | 76: CP3011 53 | 77: CP3012 54 | 78: CP3021 55 | 79: CP3041 56 | # Thai Character Code 42 57 | 96: Unknown 58 | # Thai Character Code 11 59 | 97: Unknown 60 | # Thai Character Code 13 61 | 98: Unknown 62 | # Thai Character Code 14 63 | 99: Unknown 64 | # Thai Character Code 16 65 | 100: Unknown 66 | # Thai Character Code 17 67 | 101: Unknown 68 | # Thai Character Code 18 69 | 102: Unknown 70 | 255: Unknown 71 | ... 72 | -------------------------------------------------------------------------------- /data/profile/TH230.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # More info on this printer is posted at 3 | # https://www.dieboldnixdorf.com/-/media/diebold/ag-downloads/poslotterysystems/manuals/peripherals/thxxx/th230_mf_operating_manual_english.pdf 4 | TH230: 5 | name: TH230 6 | vendor: Wincor Nixdorf 7 | notes: > 8 | Profile for TH230. Use bitImageColumn to print properly. 9 | inherits: default 10 | features: 11 | barcodeA: true 12 | barcodeB: true 13 | bitImageRaster: true 14 | bitImageColumn: true 15 | graphics: true 16 | starCommands: false 17 | qrCode: false 18 | pdf417Code: false 19 | highDensity: true 20 | pulseStandard: true 21 | pulseBel: false 22 | paperFullCut: true 23 | paperPartCut: true 24 | colors: 25 | 0: black 26 | fonts: 27 | 0: 28 | name: Font A 29 | columns: 44 30 | 1: 31 | name: Font B 32 | columns: 57 33 | media: 34 | width: 35 | mm: 72 36 | pixels: 576 37 | # @page 33 38 | dpi: 203 39 | codePages: 40 | 0: CP437 41 | 1: CP850 42 | 2: CP852 43 | 3: CP860 44 | 4: CP863 45 | 5: CP865 46 | 6: CP858 47 | 7: CP866 48 | 8: CP1252 49 | 9: CP862 50 | 10: CP737 51 | 11: CP874 52 | 12: CP857 53 | 16: CP1254 54 | 17: CP1250 55 | # CP28591 56 | 18: Unknown 57 | # CP28592 58 | 19: Unknown 59 | # CP28599 60 | 20: Unknown 61 | # CP28605 62 | 21: Unknown 63 | 22: CP864 64 | 23: CP720 65 | 24: CP1256 66 | # CP28596 67 | 25: Unknown 68 | 26: KATAKANA 69 | 27: CP775 70 | 28: CP1257 71 | # CP28594 72 | 29: Unknown 73 | ... 74 | -------------------------------------------------------------------------------- /data/profile/CT-S651.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # More info on this printer is posted at 3 | # https://www.citizen-systems.com/resource/support/POS/CT-S651/Official_Docs/CT-S651II_Manual_ENG.pdf 4 | CT-S651: 5 | name: CT-S651 6 | vendor: "Citizen" 7 | inherits: default 8 | notes: > 9 | Citizen CT-S651 profile. This is a two-color thermal printer, 10 | supporting paper sizes from 58mm up to 83mm 11 | features: 12 | barcodeA: true 13 | barcodeB: true 14 | bitImageRaster: true 15 | bitImageColumn: true 16 | graphics: true 17 | starCommands: false 18 | qrCode: true 19 | pdf417Code: true 20 | highDensity: true 21 | pulseStandard: true 22 | pulseBel: true 23 | paperFullCut: true 24 | paperPartCut: true 25 | colors: 26 | 0: black 27 | 1: red 28 | fonts: 29 | 0: 30 | name: Font A 31 | columns: 48 32 | 1: 33 | name: Font B 34 | columns: 64 35 | 2: 36 | name: Font C 37 | columns: 72 38 | media: 39 | width: 40 | mm: 80 41 | pixels: 640 42 | # @page 14 43 | dpi: 203 44 | codePages: 45 | 0: CP437 46 | 1: CP932 47 | 2: CP850 48 | 3: CP860 49 | 4: CP863 50 | 5: CP865 51 | 6: CP852 52 | 7: CP866 53 | 8: CP857 54 | 9: CP1252 55 | 16: CP1252 56 | 17: CP866 57 | 18: CP852 58 | 19: CP858 59 | # Thai code11 1 Pass 60 | 20: Unknown 61 | # Thai code11 3 Pass 62 | 21: Unknown 63 | # Thai code18 1 Pass 64 | 25: Unknown 65 | # Thai code18 3 Pass 66 | 26: Unknown 67 | # TCVN3 68 | 30: TCVN-3-1 69 | # TCVN3 Caps 70 | 31: TCVN-3-2 71 | 40: CP864 72 | # Space page (For user setting) 73 | 255: Unknown 74 | ... 75 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ESC/POS printer database [![Build Status](https://travis-ci.org/receipt-print-hq/escpos-printer-db.svg?branch=master)](https://travis-ci.org/receipt-print-hq/escpos-printer-db) 2 | 3 | This is a community-maintained database of thermal receipt printer capabilities. 4 | 5 | The capability data is shared by multiple open source receipt printing projects, 6 | to allow improvements in hardware support, compatibility and localization. 7 | 8 | Only features of ESC/POS printers are tracked at this stage. If you have a ZPL, 9 | DPL, or ESC/P printer, it is not in-scope for being listed in this database. 10 | 11 | ## Browse 12 | 13 | A browsable version of the printer database is hosted [here](https://mike42.me/escpos-printer-db). The single-page app that hosts this data is [also open to contributions](https://github.com/receipt-print-hq/escpos-printer-db-browser). 14 | 15 | The [data/](https://github.com/receipt-print-hq/escpos-printer-db/tree/master/data) directory in this repository contains the actual printer data, and is where you should send corrections. 16 | 17 | ## Contribute 18 | 19 | This project is open to any kind of contribution, eg. 20 | 21 | - Submitting information about your printer 22 | - Writing new profiles 23 | - Typing up legacy code pages 24 | 25 | ### Add your printer 26 | 27 | See: [How to get your printer included in the database](https://github.com/receipt-print-hq/escpos-printer-db/blob/master/doc/add-your-printer.md) 28 | 29 | ## License 30 | 31 | This data and documentation is provided under [Creative Commons Attribution 4.0](https://creativecommons.org/licenses/by/4.0/). See LICENSE.md for details. 32 | 33 | ## Participating projects 34 | 35 | - [python-escpos](https://github.com/python-escpos/python-escpos) 36 | - [escpos-php](https://github.com/mike42/escpos-php) 37 | 38 | -------------------------------------------------------------------------------- /data/profile/TM-L90.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # More info on this printer is posted at 3 | # https://www.epson-biz.com/modules/pos/index.php?page=single_doc&cid=6420&pcat=3&pid=27 4 | TM-L90: 5 | name: TM-L90 6 | vendor: "Epson" 7 | inherits: default 8 | notes: > 9 | Epson TM-L90 profile. The standard 80mm paper width version was used 10 | here. The code page mapping is documented in the "TM-L90 Technical 11 | Reference Guide". 12 | media: 13 | width: 14 | mm: 80 15 | pixels: 576 16 | # @page 128 17 | dpi: 203 18 | fonts: 19 | 0: 20 | name: Font A 21 | columns: 48 22 | 1: 23 | name: Font B 24 | columns: 64 25 | codePages: 26 | 0: CP437 27 | 1: CP932 28 | 2: CP850 29 | 3: CP860 30 | 4: CP863 31 | 5: CP865 32 | 11: CP851 33 | 12: CP853 34 | 13: CP857 35 | 14: CP737 36 | 15: ISO_8859-7 37 | 16: CP1252 38 | 17: CP866 39 | 18: CP852 40 | 19: CP858 41 | # Thai Character Code 42 42 | 20: Unknown 43 | # Thai Character Code 11 44 | 21: CP874 45 | # Thai Character Code 13 46 | 22: Unknown 47 | # Thai Character Code 14 48 | 23: Unknown 49 | # Thai Character Code 16 50 | 24: Unknown 51 | # Thai Character Code 17 52 | 25: Unknown 53 | # Thai Character Code 18 54 | 26: Unknown 55 | 30: TCVN-3-1 56 | 31: TCVN-3-2 57 | 32: CP720 58 | 33: CP775 59 | 34: CP855 60 | 35: CP861 61 | 36: CP862 62 | 37: CP864 63 | 38: CP869 64 | 39: ISO_8859-2 65 | 40: ISO_8859-15 66 | 41: CP1098 67 | 42: CP774 68 | 43: CP772 69 | 44: CP1125 70 | 45: CP1250 71 | 46: CP1251 72 | 47: CP1253 73 | 48: CP1254 74 | 49: CP1255 75 | 50: CP1256 76 | 51: CP1257 77 | 52: CP1258 78 | 53: RK1048 79 | 255: Unknown 80 | ... 81 | -------------------------------------------------------------------------------- /data/profile/P822D.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # More info on this printer is posted at 3 | # http://www.pbmpos.com/goods/911283 4 | P822D: 5 | name: P822D 6 | vendor: PBM 7 | inherits: default 8 | notes: "" 9 | features: 10 | graphics: false 11 | media: 12 | width: 13 | mm: 79.5 14 | pixels: 576 15 | codePages: 16 | 0: CP437 17 | # Katakana 18 | 1: KATAKANA 19 | 2: CP850 20 | 3: CP860 21 | 4: CP863 22 | 5: CP865 23 | # Western Europe 24 | 6: Unknown 25 | # Greek 26 | 7: Unknown 27 | # Hebrew 28 | 8: Unknown 29 | # Eastern europe 30 | 9: Unknown 31 | # Iran 32 | 10: Unknown 33 | 16: CP1252 34 | 17: CP866 35 | 18: CP852 36 | 19: CP858 37 | # Iran II 38 | 20: Unknown 39 | # latvian 40 | 21: Unknown 41 | # Arabic 42 | 22: Unknown 43 | # PT151, 1251 44 | 23: Unknown 45 | 24: CP747 46 | 25: CP1257 47 | # Vietnam 48 | 27: Unknown 49 | 28: CP864 50 | 29: CP1001 51 | # Uigur 52 | 30: Unknown 53 | # Hebrew 54 | 31: Unknown 55 | 32: CP1255 56 | 33: CP720 57 | 34: CP1256 58 | 35: CP1257 59 | # Thai 60 | 255: Unknown 61 | 50: CP437 62 | # Jatakana 63 | 51: Unknown 64 | 52: CP437 65 | 53: CP858 66 | 54: CP852 67 | 55: CP860 68 | 56: CP861 69 | 57: CP863 70 | 58: CP865 71 | 59: CP866 72 | 60: CP855 73 | 61: CP857 74 | 62: CP862 75 | 63: CP864 76 | 64: CP737 77 | 65: CP851 78 | 66: CP869 79 | 67: CP928 80 | 68: CP772 81 | 69: CP774 82 | 70: CP874 83 | 71: CP1252 84 | 72: CP1250 85 | 73: CP1251 86 | 74: CP3840 87 | 75: CP3841 88 | 76: CP3843 89 | 77: CP3844 90 | 78: CP3845 91 | 79: CP3846 92 | 80: CP3847 93 | 81: CP3848 94 | 82: CP1001 95 | 83: CP2001 96 | 84: CP3001 97 | 85: CP3002 98 | 86: CP3011 99 | 87: CP3012 100 | 88: CP3021 101 | 89: CP3041 102 | ... 103 | -------------------------------------------------------------------------------- /data/profile/NT-80-V-UL.yml: -------------------------------------------------------------------------------- 1 | --- 2 | NT-80-V-UL: 3 | name: 80-V-UL 4 | vendor: Netum 5 | inherits: default 6 | fonts: 7 | 0: 8 | name: Font A 9 | columns: 12 10 | 1: 11 | name: Font B 12 | columns: 9 13 | media: 14 | width: 15 | mm: 80 16 | pixels: 576 17 | # @page 11 18 | dpi: 203 19 | notes: > 20 | Netum 80-V-UL thermal printer series. 21 | codePages: 22 | 0: CP437 23 | # Katanaka 24 | 1: Unknown 25 | 2: CP850 26 | 3: CP860 27 | 4: CP863 28 | 5: CP865 29 | # West Europe 30 | 6: Unknown 31 | # Greek 32 | 7: Unknown 33 | # Hebrew 34 | 8: Unknown 35 | # East Europe 36 | 9: Unknown 37 | # Iran 38 | 10: Unknown 39 | 16: CP1252 40 | 17: CP866 41 | 18: CP852 42 | 19: CP858 43 | # Iran II 44 | 20: Unknown 45 | # Latvian 46 | 21: Unknown 47 | # Arabic 48 | 22: ISO_8859-6 49 | # PT151, 1251 50 | 23: Unknown 51 | 24: CP747 52 | 25: CP1257 53 | # Vietnam 54 | 27: Unknown 55 | 28: CP864 56 | # Hebrew 57 | 31: Unknown 58 | 32: CP1255 59 | 50: CP437 60 | 52: CP437 61 | 53: CP858 62 | 54: CP852 63 | 55: CP860 64 | 56: CP861 65 | 57: CP863 66 | 58: CP865 67 | 59: CP866 68 | 60: CP855 69 | 61: CP857 70 | 62: CP862 71 | 63: CP864 72 | 64: CP737 73 | 65: CP851 74 | 66: CP869 75 | 68: CP772 76 | 69: CP774 77 | 71: CP1252 78 | 72: CP1250 79 | 73: CP1251 80 | 74: CP3840 81 | 76: CP3843 82 | 77: CP3844 83 | 78: CP3845 84 | 79: CP3846 85 | 80: CP3847 86 | 81: CP3848 87 | 83: CP2001 88 | 84: CP3001 89 | 85: CP3002 90 | 86: CP3011 91 | 87: CP3012 92 | 88: CP3021 93 | 89: CP3041 94 | 90: CP1253 95 | 91: CP1254 96 | 92: CP1256 97 | 93: CP720 98 | 94: CP1258 99 | 95: CP775 100 | # Thai 2 101 | 96: Unknown 102 | # Thai 103 | 255: Unknown 104 | -------------------------------------------------------------------------------- /data/profile/POS-5890.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # More info on this printer is posted at 3 | # https://drv.oemdrivers.com/printer-pos-58-usb-drivers/58MM-user-manual.pdf 4 | POS-5890: 5 | name: POS5890 Series 6 | vendor: Zjiang 7 | inherits: simple 8 | fonts: 9 | 0: 10 | name: Font A 11 | columns: 32 12 | 1: 13 | name: Font B 14 | columns: 42 15 | media: 16 | width: 17 | mm: 57.5 18 | pixels: 384 19 | # @page 11 20 | dpi: 203 21 | notes: > 22 | POS-5890 thermal printer series, also marketed under various other names. 23 | codePages: 24 | 0: CP437 25 | 1: CP932 26 | 2: CP850 27 | 3: CP860 28 | 4: CP863 29 | 5: CP865 30 | # West Europe 31 | 6: Unknown 32 | # Greek 33 | 7: Unknown 34 | # Hebrew 35 | 8: Unknown 36 | # East Europe 37 | 9: Unknown 38 | # Iran 39 | 10: Unknown 40 | 16: CP1252 41 | 17: CP866 42 | 18: CP852 43 | 19: CP858 44 | # Iran II 45 | 20: Unknown 46 | # Latvian 47 | 21: Unknown 48 | # Arabic 49 | 22: Unknown 50 | # PT151, 1251 51 | 23: Unknown 52 | 24: CP747 53 | 25: CP1257 54 | 27: CP1258 55 | 28: CP864 56 | # Hebrew 57 | 31: Unknown 58 | 32: CP1255 59 | 50: CP437 60 | 52: CP437 61 | 53: CP858 62 | 54: CP852 63 | 55: CP860 64 | 56: CP861 65 | 57: CP863 66 | 58: CP865 67 | 59: CP866 68 | 60: CP855 69 | 61: CP857 70 | 62: CP862 71 | 63: CP864 72 | 64: CP737 73 | 65: CP851 74 | 66: CP869 75 | 68: CP772 76 | 69: CP774 77 | 71: CP1252 78 | 72: CP1250 79 | 73: CP1251 80 | 74: CP3840 81 | 76: CP3843 82 | 77: CP3844 83 | 78: CP3845 84 | 79: CP3846 85 | 80: CP3847 86 | 81: CP3848 87 | 83: CP2001 88 | 84: CP3001 89 | 85: CP3002 90 | 86: CP3011 91 | 87: CP3012 92 | 88: CP3021 93 | 89: CP3041 94 | 90: CP1253 95 | 91: CP1254 96 | 92: CP1256 97 | 93: CP720 98 | 94: CP1258 99 | 95: CP775 100 | # Thai 2 101 | 96: Unknown 102 | # Thai 103 | 255: Unknown 104 | ... 105 | -------------------------------------------------------------------------------- /data/profile/mcPrint.yml: -------------------------------------------------------------------------------- 1 | --- 2 | mcPrint: 3 | name: Star mcPrint2/mcPrint3 4 | vendor: "Star Micronics" 5 | inherits: default 6 | notes: > 7 | Star mcPrint2/mcPrint3 printers. Technical documentation is in 8 | the "StarPRNT Command specifications Rev. 2.40" document, which 9 | can be found online. 10 | features: 11 | starCommands: true 12 | codePages: 13 | # "Normal". The actual content of this page can be changed by 14 | # memory switches, so it's not really usable. 15 | 0: Unknown 16 | 1: CP437 17 | # Katakana 18 | 2: CP932 19 | 3: CP437 20 | 4: CP858 21 | 5: CP852 22 | 6: CP860 23 | # Icelandic 24 | 7: CP861 25 | # Canadian French 26 | 8: CP863 27 | # Nordic 28 | 9: CP865 29 | # Cyrillic Russian 30 | 10: CP866 31 | # Cyrillic Bulgarian 32 | 11: CP855 33 | # Turkey 34 | 12: CP857 35 | # Israel (Hebrew) 36 | 13: CP862 37 | # Arabic 38 | 14: CP864 39 | # Greek 40 | 15: CP737 41 | # Greek 42 | 16: CP851 43 | # Greek 44 | 17: CP869 45 | # Greek 46 | 18: CP928 47 | # Lithuanian 48 | 19: CP772 49 | # Lithuanian 50 | 20: CP774 51 | # Thai (disabled because Euro sign is missing) 52 | # 21: CP874 53 | 21: Unknown 54 | # Windows Latin-1 55 | 32: CP1252 56 | # Windows Latin-2 57 | 33: CP1250 58 | # Windows Cyrillic 59 | 34: CP1251 60 | # IBM Russian 61 | 64: CP3840 62 | # Gost 63 | 65: CP3841 64 | # Polish 65 | 66: CP3843 66 | # CS2 67 | 67: CP3844 68 | # Hungarian 69 | 68: CP3845 70 | # Turkish 71 | 69: CP3846 72 | # Brazil-ABNT 73 | 70: CP3847 74 | # Brazil-ABICOMP 75 | 71: CP3848 76 | # Arabic 77 | 72: CP1001 78 | # Lithuanian-KBL 79 | 73: CP2001 80 | # Estonian-1 81 | 74: CP3001 82 | # Estonan-2 83 | 75: CP3002 84 | # Latvian-1 85 | 76: CP3011 86 | # Latvian-2 87 | 77: CP3012 88 | # Bulgarian 89 | 78: CP3021 90 | # Maltese 91 | 79: CP3041 92 | # Thai Character Code 42 93 | 96: Unknown 94 | # Thai Character Code 11 95 | 97: Unknown 96 | # Thai Character Code 13 97 | 98: Unknown 98 | # Thai Character Code 18 99 | 102: Unknown 100 | # "User setting" 101 | 255: Unknown 102 | ... 103 | -------------------------------------------------------------------------------- /data/profile/KR-306.yml: -------------------------------------------------------------------------------- 1 | --- 2 | KR-306: 3 | name: KR-306 4 | vendor: Kefar 5 | notes: > 6 | Kefar KR-306 printer with 200mm/s speed 7 | inherits: default 8 | features: 9 | barcodeA: true 10 | barcodeB: true 11 | bitImageRaster: true 12 | bitImageColumn: true 13 | graphics: false 14 | starCommands: false 15 | qrCode: true 16 | pdf417Code: true 17 | highDensity: true 18 | pulseStandard: true 19 | pulseBel: false 20 | paperFullCut: true 21 | paperPartCut: true 22 | colors: 23 | 0: black 24 | fonts: 25 | 0: 26 | name: Font A 27 | columns: 48 28 | 1: 29 | name: Font B 30 | columns: 64 31 | media: 32 | width: 33 | mm: 72 34 | pixels: 576 35 | codePages: 36 | 0: CP437 37 | # Katakana 38 | 1: KATAKANA 39 | 2: CP850 40 | 3: CP860 41 | 4: CP863 42 | 5: CP865 43 | # West Europe 44 | 6: Unknown 45 | # Greek 46 | 7: Unknown 47 | # Hebrew 48 | 8: Unknown 49 | # East Europe 50 | 9: Unknown 51 | # Iran 52 | 10: Unknown 53 | # Windows CP-1252 54 | 11: CP1252 55 | 12: CP866 56 | 13: CP852 57 | 14: CP858 58 | # IranII 59 | 15: Unknown 60 | # Latvian 61 | 16: Unknown 62 | # Arabic 63 | 17: Unknown 64 | # PT1511251 65 | 18: Unknown 66 | 19: CP747 67 | # WPC1257 68 | 20: Unknown 69 | # Thai 70 | 21: Unknown 71 | # Vietnam 72 | 22: Unknown 73 | 23: CP864 74 | # PC1001 75 | 24: Unknown 76 | # Uigur 77 | 25: Unknown 78 | # Hebrew 79 | 26: Unknown 80 | 27: CP1255 81 | 28: CP437 82 | # Katakana 83 | 29: KATAKANA 84 | 30: CP437 85 | 31: CP858 86 | 32: CP852 87 | 33: CP860 88 | 34: CP861 89 | 35: CP863 90 | 36: CP865 91 | 37: CP866 92 | 38: CP855 93 | 39: CP857 94 | 40: CP862 95 | 41: CP864 96 | 42: CP737 97 | 43: CP851 98 | 44: CP869 99 | 45: CP928 100 | 46: CP772 101 | 47: CP774 102 | 48: CP874 103 | # Windows CP-1252 104 | 49: CP1252 105 | # Windows CP-1250 106 | 50: CP1250 107 | # Windows CP-1251 108 | 51: CP1251 109 | 52: CP3840 110 | 53: CP3841 111 | 54: CP3843 112 | 55: CP3844 113 | 56: CP3845 114 | 57: CP3846 115 | 58: CP3847 116 | 59: CP3848 117 | 60: CP1001 118 | 61: CP2001 119 | 62: CP3001 120 | 63: CP3002 121 | 64: CP3011 122 | 65: CP3012 123 | 66: CP3021 124 | 67: CP3041 125 | 68: CP852 126 | 69: Unknown 127 | # Windows CP-1256 (Arabic) 128 | 70: CP1256 129 | ... 130 | -------------------------------------------------------------------------------- /data/profile/default.yml: -------------------------------------------------------------------------------- 1 | --- 2 | default: 3 | name: Default 4 | vendor: Generic 5 | notes: > 6 | Default ESC/POS profile, suitable for standards-compliant or 7 | Epson-branded printers. This profile allows the use of standard 8 | ESC/POS features, and can encode a variety of code pages. 9 | features: 10 | barcodeA: true 11 | barcodeB: true 12 | bitImageRaster: true 13 | bitImageColumn: true 14 | graphics: true 15 | starCommands: false 16 | qrCode: true 17 | pdf417Code: true 18 | highDensity: true 19 | pulseStandard: true 20 | pulseBel: false 21 | paperFullCut: true 22 | paperPartCut: true 23 | colors: 24 | 0: black 25 | fonts: 26 | 0: 27 | name: Font A 28 | columns: 42 29 | 1: 30 | name: Font B 31 | columns: 56 32 | media: 33 | width: 34 | mm: Unknown 35 | pixels: Unknown 36 | dpi: Unknown 37 | codePages: 38 | 0: CP437 39 | 1: CP932 40 | 2: CP850 41 | 3: CP860 42 | 4: CP863 43 | 5: CP865 44 | # Hiragana 45 | 6: Unknown 46 | # One-pass printing Kanji characters 47 | 7: Unknown 48 | # One-pass printing Kanji characters 49 | 8: Unknown 50 | 11: CP851 51 | 12: CP853 52 | 13: CP857 53 | 14: CP737 54 | 15: ISO_8859-7 55 | 16: CP1252 56 | 17: CP866 57 | 18: CP852 58 | 19: CP858 59 | # Thai Character Code 42 60 | 20: Unknown 61 | # Thai Character Code 11 62 | 21: CP874 63 | # Thai Character Code 13 64 | 22: Unknown 65 | # Thai Character Code 14 66 | 23: Unknown 67 | # Thai Character Code 16 68 | 24: Unknown 69 | # Thai Character Code 17 70 | 25: Unknown 71 | # Thai Character Code 18 72 | 26: Unknown 73 | 30: TCVN-3-1 74 | 31: TCVN-3-2 75 | 32: CP720 76 | 33: CP775 77 | 34: CP855 78 | 35: CP861 79 | 36: CP862 80 | 37: CP864 81 | 38: CP869 82 | 39: ISO_8859-2 83 | 40: ISO_8859-15 84 | 41: CP1098 85 | 42: CP774 86 | 43: CP772 87 | 44: CP1125 88 | 45: CP1250 89 | 46: CP1251 90 | 47: CP1253 91 | 48: CP1254 92 | 49: CP1255 93 | 50: CP1256 94 | 51: CP1257 95 | 52: CP1258 96 | 53: RK1048 97 | # Devanagari 98 | 66: Unknown 99 | # Bengali 100 | 67: Unknown 101 | # Tamil 102 | 68: Unknown 103 | # Telugu 104 | 69: Unknown 105 | # Assamese 106 | 70: Unknown 107 | # Oriya 108 | 71: Unknown 109 | # Kannada 110 | 72: Unknown 111 | # Malayalam 112 | 73: Unknown 113 | # Gujarati 114 | 74: Unknown 115 | # Punjabi 116 | 75: Unknown 117 | # Marathi 118 | 82: Unknown 119 | 254: Unknown 120 | 255: Unknown 121 | ... 122 | -------------------------------------------------------------------------------- /data/profile/TM-T88II.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # More info on this printer is posted at 3 | # https://download.epson-biz.com/modules/pos/index.php?page=single_doc&cid=1352&pcat=3&pid=21&ml_lang=de 4 | TM-T88II: 5 | name: TM-T88II 6 | vendor: "Epson" 7 | inherits: default 8 | notes: > 9 | Epson TM-T88II profile. The specs where taken from a TM-T88IIP machine 10 | (I assume the P just stands for parallel port). The standart 80mm paper 11 | width version was used here. There is also a custom 58mm factory option. 12 | If you are using the custom version change media width to 50.8mm and 13 | 360px accordingly. This printer is discontinued by the Vendor and has 14 | similar feature support to the TM-T88III. The code page mapping is 15 | documented in the "TM-T88II/T88III Technical Reference Guide". 16 | fonts: 17 | 0: 18 | name: Font A 19 | columns: 42 20 | 1: 21 | name: Font B 22 | columns: 56 23 | media: 24 | width: 25 | mm: 72 26 | pixels: 512 27 | # @page 55 28 | dpi: 180 29 | codePages: 30 | 0: CP437 31 | 1: CP932 32 | 2: CP850 33 | 3: CP860 34 | 4: CP863 35 | 5: CP865 36 | # Hiragana 37 | 6: Unknown 38 | # One-pass printing Kanji characters 39 | 7: Unknown 40 | # One-pass printing Kanji characters 41 | 8: Unknown 42 | 11: Unknown 43 | 12: Unknown 44 | 13: CP857 45 | 14: CP737 46 | 15: ISO_8859-7 47 | 16: CP1252 48 | 17: CP866 49 | 18: CP852 50 | 19: Unknown 51 | # Thai Character Code 42 52 | 20: Unknown 53 | # Thai Character Code 11 54 | 21: CP874 55 | # Thai Character Code 13 56 | 22: Unknown 57 | # Thai Character Code 14 58 | 23: Unknown 59 | # Thai Character Code 16 60 | 24: Unknown 61 | # Thai Character Code 17 62 | 25: Unknown 63 | # Thai Character Code 18 64 | 26: Unknown 65 | 30: TCVN-3-1 66 | 31: TCVN-3-2 67 | 32: Unknown 68 | 33: CP775 69 | 34: CP855 70 | 35: CP861 71 | 36: CP862 72 | 37: CP864 73 | 38: CP869 74 | 39: ISO_8859-2 75 | 40: ISO_8859-15 76 | 41: Unknown 77 | 42: CP774 78 | 43: CP772 79 | 44: CP1125 80 | 45: CP1250 81 | 46: CP1251 82 | 47: CP1253 83 | 48: CP1254 84 | 49: CP1255 85 | 50: CP1256 86 | 51: CP1257 87 | 52: CP1258 88 | 53: RK1048 89 | # Devanagari 90 | 66: Unknown 91 | # Bengali 92 | 67: Unknown 93 | # Tamil 94 | 68: Unknown 95 | # Telugu 96 | 69: Unknown 97 | # Assamese 98 | 70: Unknown 99 | # Oriya 100 | 71: Unknown 101 | # Kannada 102 | 72: Unknown 103 | # Malayalam 104 | 73: Unknown 105 | # Gujarati 106 | 74: Unknown 107 | # Punjabi 108 | 75: Unknown 109 | # Marathi 110 | 82: Unknown 111 | 254: Unknown 112 | 255: Unknown 113 | ... 114 | -------------------------------------------------------------------------------- /doc/add-your-printer.md: -------------------------------------------------------------------------------- 1 | # How to get your printer included in the database 2 | 3 | We aim to list every ESC/POS printer in this database, and we need your help! 4 | 5 | ## Why is it good to have my printer listed? 6 | 7 | Data from this project is used by multiple open source projects to improve 8 | printer compatibility. 9 | 10 | If your printer is listed with accurate information, then drivers which use 11 | this data will know how to safely use features like images, QR codes, 12 | barcodes, and non-ASCII text encoding. 13 | 14 | ## Is my printer in the database already? 15 | 16 | Check [the browsable version of this database](https://mike42.me/escpos-printer-db/). 17 | 18 | Some printers are sold under several names, so look out for similar model numbers as well. 19 | 20 | ## Is my printer eligible to be listed? 21 | 22 | Any ESC/POS devices can be listed, including: 23 | 24 | - ESC/POS thermal and impact printers 25 | - Printers with ESC/POS emulation mode 26 | - Non-printing ESC/POS devices like customer displays 27 | 28 | If your printer does not understand ESC/POS, then we wont list it. 29 | 30 | ## Information to gather 31 | 32 | The minimum info that you need to make a printer profile is: 33 | 34 | - Vendor name and model number. 35 | - Link to a vendor programming guide that lists supported features if it is available online. 36 | - Paper width (58mm and 80mm are common). 37 | 38 | If you don't have documentation, then you need to print some things to try to find out what your printer supports: 39 | 40 | - Test page output listing supported character encodings. 41 | - Output of some ESC/POS commands to see what works. 42 | 43 | For testing out features, you can send [escpos-php test files](https://github.com/mike42/escpos-php/tree/master/test/integration/resources/output) 44 | to your printer and note the output for each file. 45 | 46 | Once you have this, file a [new issue](https://github.com/receipt-print-hq/escpos-printer-db/issues/new) with the information. 47 | 48 | ## How to write a printer profile 49 | 50 | Profiles are written in `yml` syntax. Start by selecting a base profile, then override a 51 | small number of options. 52 | 53 | - The `default` profile is a good base for printers with a lot of features 54 | - The `simple` profile is a good base for printers which have very few features 55 | 56 | This example is the `TM-U220` profile, which is based on the `simple` profile but notes 57 | that the printer supports two colors, and does not support high-density images. 58 | 59 | ```yaml 60 | --- 61 | TM-U220: 62 | name: TM-U220 63 | vendor: Epson 64 | inherits: simple 65 | notes: Two-color impact printer with 80mm output 66 | features: 67 | bitImageRaster: false 68 | bitImageColumn: true 69 | highDensity: false 70 | colors: 71 | 0: black 72 | 1: alternate 73 | media: 74 | width: 75 | mm: 80 76 | pixels: Unknown 77 | ... 78 | ``` 79 | 80 | As another example, the `SP2000` profile is based on the `default` profile, 81 | but lists the different code pages used by Star printers. 82 | 83 | ```yaml 84 | --- 85 | SP2000: 86 | name: SP2000 Series 87 | vendor: Star Micronics 88 | inherits: default 89 | notes: Star SP2000 impact printer series with ESC/POS emulation enabled 90 | features: 91 | starCommands: true 92 | codePages: 93 | # "Normal" 94 | 0: CP437 95 | 1: CP437 96 | 2: CP932 97 | 3: CP437 98 | # .. code page list continues ... 99 | ``` 100 | 101 | Once you have written a profile for your own printer, send us a pull request with the 102 | new file. The profile will need to pass `yamllint`, an automated build, and be reviewed 103 | by a project contributor. 104 | -------------------------------------------------------------------------------- /scripts/collate.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | """ 4 | Quick build script to assemble profiles. 5 | 6 | Lots of room to improve validation or documentation at this step, threw in 7 | some assertions to avoid passing malformed profiles to a driver. 8 | """ 9 | 10 | import json 11 | import collections 12 | import os 13 | 14 | import pyaml 15 | import yaml 16 | 17 | 18 | def load_encodings(): 19 | """ 20 | Load in all the encodings from the encoding definition file 21 | """ 22 | encoding_fn = os.path.dirname(__file__) + "/../data/encoding.yml" 23 | encodings_raw = yaml.safe_load(open(encoding_fn).read()) 24 | return encodings_raw 25 | 26 | 27 | def load_profiles(): 28 | """ 29 | Load in all the profiles from the profile folder (file-per-profile) 30 | """ 31 | profiles_raw = {} 32 | profiles_dir = os.path.dirname(__file__) + "/../data/profile/" 33 | for profile_fn in os.listdir(profiles_dir): 34 | if not profile_fn[-3:] == "yml": 35 | continue 36 | 37 | profile_dict = yaml.safe_load(open(profiles_dir + profile_fn).read()) 38 | # One item per file 39 | assert ( 40 | len(profile_dict) == 1 41 | ), f"{profile_fn}: expected one entry, got {len(profile_dict)}" 42 | 43 | # Item must match filename 44 | profile_name, profile_val = profile_dict.popitem() 45 | assert ( 46 | profile_name + ".yml" == profile_fn 47 | ), f"{profile_fn}: Expected to find profile named the same as file, got {profile_name}" 48 | 49 | profiles_raw[profile_name] = profile_val 50 | return profiles_raw 51 | 52 | 53 | def substitute_profile(profile_name, profiles_raw, encodings_raw): 54 | """ 55 | Substitute in the values for 'inherited' profiles so that values are simply 56 | repeated in the output. 57 | """ 58 | # Build stack of inheritance 59 | current_key = profile_name 60 | keys = [current_key] 61 | values = [profiles_raw[current_key]] 62 | while "inherits" in profiles_raw[current_key]: 63 | assert ( 64 | not profiles_raw[current_key]["inherits"] in keys 65 | ), "Profile {}: Circular reference calculating inheritance".format(profile_name) 66 | current_key = profiles_raw[current_key]["inherits"] 67 | keys.append(current_key) 68 | values.append(profiles_raw[current_key]) 69 | 70 | # Check for some required keys in this profile which should not be left to 71 | # inheritance to set 72 | required_keys = ["vendor", "notes", "name"] 73 | for i in required_keys: 74 | assert ( 75 | i in profiles_raw[profile_name].keys() 76 | ), f"{profile_name}: Profile key '{i}' must be defined in every profile" 77 | # Merge base profiles and sub-profiles by overriding entire keys, except for 78 | # 'features' list, which are merged item-by-item. 79 | profile = dict((k, v) for d in values[::-1] for k, v in d.items()) 80 | profile["features"] = dict( 81 | (k, v) 82 | for d in values[::-1] 83 | for k, v in (d["features"].items() if "features" in d else []) 84 | ) 85 | # copy mandatory 'width' node from inheritance if not available 86 | if "media" in profile and "width" not in profile["media"]: 87 | profile["media"] = dict( 88 | (k, v) 89 | for d in values[::-1] 90 | for k, v in (d["media"].items() if "media" in d else []) 91 | ) 92 | 93 | if "inherits" in profile: 94 | del profile["inherits"] 95 | 96 | # Sanity check for required keys exist 97 | required_keys = [ 98 | "vendor", 99 | "features", 100 | "media", 101 | "notes", 102 | "fonts", 103 | "colors", 104 | "codePages", 105 | "name", 106 | ] 107 | for i in required_keys: 108 | assert ( 109 | i in profile.keys() 110 | ), f"{profile_name}: Profile key '{i}' must be defined or inherited" 111 | 112 | # Sanity check for required features exist 113 | required_features = [ 114 | "starCommands", 115 | "highDensity", 116 | "barcodeB", 117 | "bitImageColumn", 118 | "graphics", 119 | "qrCode", 120 | "bitImageRaster", 121 | ] 122 | for i in required_features: 123 | assert ( 124 | i in profile["features"].keys() 125 | ), f"{profile_name}: Profile feature '{i}' must be defined or inherited" 126 | 127 | # Reference check over encodings 128 | for i in profile["codePages"].values(): 129 | assert ( 130 | i in encodings_raw.keys() 131 | ), f"{profile_name}: Profile claims to support fictional encoding '{i}'" 132 | 133 | return profile 134 | 135 | 136 | def filter_encodings(encodings_raw, profiles_subsituted): 137 | """ 138 | Filter down encodings list, adding unset names and excluding unused 139 | encodings. 140 | """ 141 | # Give everything a name if not set 142 | for name, encoding in encodings_raw.items(): 143 | if "name" not in encoding: 144 | encoding["name"] = name 145 | 146 | # Strip out un-used code pages 147 | unused = encodings_raw.keys() 148 | for profile in profiles_subsituted.values(): 149 | used = profile["codePages"].values() 150 | unused = [x for x in unused if x not in used] 151 | return {k: v for k, v in encodings_raw.items() if k not in unused} 152 | 153 | 154 | def run_collation(): 155 | """ 156 | Execute collation of all YAML files into single-file databases, in two 157 | formats. 158 | """ 159 | encodings_raw = load_encodings() 160 | profiles_raw = load_profiles() 161 | profiles_substituted = {} 162 | for profile_name in profiles_raw.keys(): 163 | profiles_substituted[profile_name] = substitute_profile( 164 | profile_name, profiles_raw, encodings_raw 165 | ) 166 | encodings_filtered = filter_encodings(encodings_raw, profiles_substituted) 167 | 168 | capabilities = {"profiles": profiles_substituted, "encodings": encodings_filtered} 169 | 170 | # Dump output in format that is safe for human consumption in reasonable quantities 171 | json_capabilities = json.dumps( 172 | capabilities, sort_keys=True, indent=4, separators=(",", ": ") 173 | ) 174 | with open( 175 | os.path.dirname(__file__) + "/../dist/capabilities.json", "wb+" 176 | ) as json_f: 177 | json_f.write(json_capabilities.encode("utf-8")) 178 | 179 | # Convert it to YAML, preserving the same order 180 | ordered_dict = json.loads( 181 | json_capabilities, object_pairs_hook=collections.OrderedDict 182 | ) 183 | yml_capabilities = pyaml.dumps( 184 | ordered_dict, string_val_style='"', explicit_start=True 185 | ) 186 | with open(os.path.dirname(__file__) + "/../dist/capabilities.yml", "wb+") as yml_f: 187 | yml_f.write(yml_capabilities.encode("utf-8")) 188 | 189 | 190 | if __name__ == "__main__": 191 | run_collation() 192 | -------------------------------------------------------------------------------- /data/encoding.yml: -------------------------------------------------------------------------------- 1 | # encoding.yml: This file maps known code pages and other character encodings 2 | # to a method of encoding. 3 | # 4 | # Its purpose is to account for the use of different code page names and 5 | # implementations, so that drivers have a common data set to use for converting 6 | # UTF-8 text into something that a printer is likely to understand. 7 | # 8 | # Where multiple encoders are listed, any of them can be used to give identical 9 | # results. 10 | 11 | --- 12 | CP037: 13 | iconv: CP037 14 | python_encode: cp037 15 | 16 | CP038: 17 | iconv: CP038 18 | 19 | CP273: 20 | iconv: CP273 21 | python_encode: cp273 22 | 23 | CP274: 24 | iconv: CP274 25 | 26 | CP275: 27 | iconv: CP275 28 | 29 | CP278: 30 | iconv: CP278 31 | 32 | CP280: 33 | iconv: CP280 34 | 35 | CP281: 36 | iconv: CP281 37 | 38 | CP282: 39 | iconv: CP282 40 | 41 | CP284: 42 | iconv: CP284 43 | 44 | CP285: 45 | iconv: CP285 46 | 47 | CP290: 48 | iconv: CP290 49 | 50 | CP297: 51 | iconv: CP297 52 | 53 | CP367: 54 | iconv: CP367 55 | 56 | CP420: 57 | iconv: CP420 58 | 59 | CP423: 60 | iconv: CP423 61 | 62 | CP424: 63 | iconv: CP424 64 | python_encode: cp424 65 | 66 | CP437: 67 | iconv: CP437 68 | python_encode: cp437 69 | 70 | CP500: 71 | iconv: CP500 72 | python_encode: cp500 73 | 74 | CP720: 75 | python_encode: cp720 76 | 77 | CP737: 78 | iconv: CP737 79 | python_encode: cp737 80 | 81 | CP747: {} 82 | 83 | CP770: 84 | iconv: CP770 85 | 86 | CP771: 87 | iconv: CP771 88 | 89 | CP772: 90 | iconv: CP772 91 | 92 | CP773: 93 | iconv: CP773 94 | 95 | CP774: 96 | iconv: CP774 97 | 98 | CP775: 99 | iconv: CP775 100 | python_encode: cp775 101 | 102 | CP803: 103 | iconv: CP803 104 | 105 | CP813: 106 | iconv: CP813 107 | 108 | CP819: 109 | iconv: CP819 110 | 111 | CP850: 112 | iconv: CP850 113 | python_encode: cp850 114 | 115 | CP851: 116 | name: "Greek CP851" 117 | notes: "Not used, due to inconsistencies between implementations." 118 | 119 | CP852: 120 | iconv: CP852 121 | python_encode: cp852 122 | 123 | CP853: {} 124 | 125 | CP855: 126 | iconv: CP855 127 | python_encode: cp855 128 | 129 | CP856: 130 | iconv: CP856 131 | python_encode: cp856 132 | 133 | CP857: 134 | iconv: CP857 135 | python_encode: cp857 136 | 137 | CP858: 138 | python_encode: cp858 139 | 140 | CP860: 141 | iconv: CP860 142 | python_encode: cp860 143 | 144 | CP861: 145 | iconv: CP861 146 | python_encode: cp861 147 | 148 | CP862: 149 | iconv: CP862 150 | python_encode: cp862 151 | 152 | CP863: 153 | iconv: CP863 154 | python_encode: cp863 155 | 156 | CP864: 157 | iconv: CP864 158 | python_encode: cp864 159 | 160 | CP865: 161 | iconv: CP865 162 | python_encode: cp865 163 | 164 | CP866: 165 | iconv: CP866 166 | python_encode: cp866 167 | 168 | CP866NAV: 169 | iconv: CP866NAV 170 | 171 | CP868: 172 | iconv: CP868 173 | 174 | CP869: 175 | iconv: CP869 176 | python_encode: cp869 177 | 178 | CP870: 179 | iconv: CP870 180 | 181 | CP871: 182 | iconv: CP871 183 | 184 | CP874: 185 | iconv: CP874 186 | python_encode: cp874 187 | 188 | CP875: 189 | iconv: CP875 190 | python_encode: cp875 191 | 192 | CP880: 193 | iconv: CP880 194 | 195 | CP891: 196 | iconv: CP891 197 | 198 | CP901: 199 | iconv: CP901 200 | 201 | CP902: 202 | iconv: CP902 203 | 204 | CP903: 205 | iconv: CP903 206 | 207 | CP904: 208 | iconv: CP904 209 | 210 | CP905: 211 | iconv: CP905 212 | 213 | CP912: 214 | iconv: CP912 215 | 216 | CP915: 217 | iconv: CP915 218 | 219 | CP916: 220 | iconv: CP916 221 | 222 | CP918: 223 | iconv: CP918 224 | 225 | CP920: 226 | iconv: CP920 227 | 228 | CP921: 229 | iconv: CP921 230 | 231 | CP922: 232 | iconv: CP922 233 | 234 | CP928: {} 235 | 236 | CP930: 237 | iconv: CP930 238 | 239 | CP932: 240 | iconv: CP932 241 | python_encode: cp932 242 | 243 | CP933: 244 | iconv: CP933 245 | 246 | CP935: 247 | iconv: CP935 248 | 249 | CP936: 250 | iconv: CP936 251 | 252 | CP937: 253 | iconv: CP937 254 | 255 | CP939: 256 | iconv: CP939 257 | 258 | CP949: 259 | iconv: CP949 260 | python_encode: cp949 261 | 262 | CP950: 263 | iconv: CP950 264 | python_encode: cp950 265 | 266 | CP1001: 267 | name: Unimplemented Star-specific CP1001 268 | 269 | CP1004: 270 | iconv: CP1004 271 | 272 | CP1006: 273 | python_encode: cp1006 274 | 275 | CP1008: 276 | iconv: CP1008 277 | 278 | CP1025: 279 | iconv: CP1025 280 | 281 | CP1026: 282 | iconv: CP1026 283 | python_encode: cp1026 284 | 285 | CP1046: 286 | iconv: CP1046 287 | 288 | CP1047: 289 | iconv: CP1047 290 | 291 | CP1070: 292 | iconv: CP1070 293 | 294 | CP1079: 295 | iconv: CP1079 296 | 297 | CP1081: 298 | iconv: CP1081 299 | 300 | CP1084: 301 | iconv: CP1084 302 | 303 | CP1089: 304 | iconv: CP1089 305 | 306 | CP1097: 307 | iconv: CP1097 308 | 309 | CP1098: {} 310 | 311 | CP1112: 312 | iconv: CP1112 313 | 314 | CP1122: 315 | iconv: CP1122 316 | 317 | CP1123: 318 | iconv: CP1123 319 | 320 | CP1124: 321 | iconv: CP1124 322 | 323 | CP1125: 324 | iconv: CP1125 325 | python_encode: cp1125 326 | 327 | CP1129: 328 | iconv: CP1129 329 | 330 | CP1130: 331 | iconv: CP1130 332 | 333 | CP1132: 334 | iconv: CP1132 335 | 336 | CP1133: 337 | iconv: CP1133 338 | 339 | CP1137: 340 | iconv: CP1137 341 | 342 | CP1140: 343 | iconv: CP1140 344 | python_encode: cp1140 345 | 346 | CP1141: 347 | iconv: CP1141 348 | 349 | CP1142: 350 | iconv: CP1142 351 | 352 | CP1143: 353 | iconv: CP1143 354 | 355 | CP1144: 356 | iconv: CP1144 357 | 358 | CP1145: 359 | iconv: CP1145 360 | 361 | CP1146: 362 | iconv: CP1146 363 | 364 | CP1147: 365 | iconv: CP1147 366 | 367 | CP1148: 368 | iconv: CP1148 369 | 370 | CP1149: 371 | iconv: CP1149 372 | 373 | CP1153: 374 | iconv: CP1153 375 | 376 | CP1154: 377 | iconv: CP1154 378 | 379 | CP1155: 380 | iconv: CP1155 381 | 382 | CP1156: 383 | iconv: CP1156 384 | 385 | CP1157: 386 | iconv: CP1157 387 | 388 | CP1158: 389 | iconv: CP1158 390 | 391 | CP1160: 392 | iconv: CP1160 393 | 394 | CP1161: 395 | iconv: CP1161 396 | 397 | CP1162: 398 | iconv: CP1162 399 | 400 | CP1163: 401 | iconv: CP1163 402 | 403 | CP1164: 404 | iconv: CP1164 405 | 406 | CP1166: 407 | iconv: CP1166 408 | 409 | CP1167: 410 | iconv: CP1167 411 | 412 | CP1250: 413 | iconv: CP1250 414 | python_encode: cp1250 415 | 416 | CP1251: 417 | iconv: CP1251 418 | python_encode: cp1251 419 | 420 | CP1252: 421 | iconv: CP1252 422 | python_encode: cp1252 423 | 424 | CP1253: 425 | iconv: CP1253 426 | python_encode: cp1253 427 | 428 | CP1254: 429 | iconv: CP1254 430 | python_encode: cp1254 431 | 432 | CP1255: 433 | iconv: CP1255 434 | python_encode: cp1255 435 | 436 | CP1256: 437 | iconv: CP1256 438 | python_encode: cp1256 439 | 440 | CP1257: 441 | iconv: CP1257 442 | python_encode: cp1257 443 | 444 | CP1258: 445 | iconv: CP1258 446 | python_encode: cp1258 447 | 448 | CP1282: 449 | iconv: CP1282 450 | 451 | CP1361: 452 | iconv: CP1361 453 | 454 | CP1364: 455 | iconv: CP1364 456 | 457 | CP1371: 458 | iconv: CP1371 459 | 460 | CP1388: 461 | iconv: CP1388 462 | 463 | CP1390: 464 | iconv: CP1390 465 | 466 | CP1399: 467 | iconv: CP1399 468 | 469 | CP2001: 470 | name: Unimplemented Star-specific CP2001 471 | 472 | CP3001: 473 | name: Unimplemented Star-specific CP3001 474 | 475 | CP3002: 476 | name: Unimplemented Star-specific CP3002 477 | 478 | CP3011: 479 | name: "CP3011 Latvian" 480 | data: 481 | - "ÇüéâäàåçêëèïîìÄÅ" 482 | - "ÉæÆôöòûùÿÖÜ¢£¥₧ƒ" 483 | - "áíóúñѪº¿⌐¬½¼¡«»" 484 | - "░▒▓│┤Ā╢ņ╕╣║╗╝╜╛┐" 485 | - "└┴┬├─┼ā╟╚╔╩╦╠═╬╧" 486 | - "Š╤čČ╘╒ģĪī┘┌█▄ūŪ▀" 487 | - "αßΓπΣσµτΦΘΩδ∞φε∩" 488 | - "ĒēĢķĶļĻžŽ∙·√Ņš■ " 489 | 490 | CP3012: 491 | name: "CP3012 Cyrillic" 492 | data: 493 | - "АБВГДЕЖЗИЙКЛМНОП" 494 | - "РСТУФХЦЧШЩЪЫЬЭЮЯ" 495 | - "абвгдежзийклмноп" 496 | - "░▒▓│┤Ā╢ņ╕╣║╗╝Ō╛┐" 497 | - "└┴┬├─┼ā╟╚╔╩╦╠═╬╧" 498 | - "Š╤čČ╘╒ģĪī┘┌█▄ūŪ▀" 499 | - "рстуфхцчшщъыьэюя" 500 | - "ĒēĢķĶļĻžŽ∙·√Ņš■ " 501 | 502 | CP3021: 503 | name: Unimplemented Star-specific CP3021 504 | 505 | CP3041: 506 | name: Unimplemented Star-specific CP3041 507 | 508 | CP3840: 509 | name: Unimplemented Star-specific CP3840 510 | 511 | CP3841: 512 | name: Unimplemented Star-specific CP3841 513 | 514 | CP3843: 515 | name: Unimplemented Star-specific CP3843 516 | 517 | CP3844: 518 | name: Unimplemented Star-specific CP3844 519 | 520 | CP3845: 521 | name: Unimplemented Star-specific CP3845 522 | 523 | CP3847: 524 | name: Unimplemented Star-specific CP3847 525 | 526 | CP3846: 527 | name: Unimplemented Star-specific CP3846 528 | 529 | CP3848: 530 | name: Unimplemented Star-specific CP3848 531 | 532 | CP4517: 533 | iconv: CP4517 534 | 535 | CP4899: 536 | iconv: CP4899 537 | 538 | CP4909: 539 | iconv: CP4909 540 | 541 | CP4971: 542 | iconv: CP4971 543 | 544 | CP5347: 545 | iconv: CP5347 546 | 547 | CP9030: 548 | iconv: CP9030 549 | 550 | CP9066: 551 | iconv: CP9066 552 | 553 | CP9448: 554 | iconv: CP9448 555 | 556 | CP10007: 557 | iconv: CP10007 558 | 559 | CP12712: 560 | iconv: CP12712 561 | 562 | CP16804: 563 | iconv: CP16804 564 | 565 | ISO_8859-1: 566 | iconv: "ISO_8859-1" 567 | python_encode: "latin_1" 568 | 569 | ISO_8859-2: 570 | iconv: "ISO_8859-2" 571 | python_encode: "iso8859_2" 572 | 573 | ISO_8859-3: 574 | iconv: "ISO_8859-3" 575 | python_encode: "iso8859_3" 576 | 577 | ISO_8859-4: 578 | iconv: "ISO_8859-4" 579 | python_encode: "iso8859_4" 580 | 581 | ISO_8859-5: 582 | iconv: "ISO_8859-5" 583 | python_encode: "iso8859_5" 584 | 585 | ISO_8859-6: 586 | iconv: "ISO_8859-6" 587 | python_encode: "iso8859_6" 588 | 589 | ISO_8859-7: 590 | iconv: "ISO_8859-7" 591 | python_encode: "iso8859_7" 592 | 593 | ISO_8859-8: 594 | iconv: "ISO_8859-8" 595 | python_encode: "iso8859_8" 596 | 597 | ISO_8859-9: 598 | iconv: "ISO_8859-9" 599 | python_encode: "iso8859_9" 600 | 601 | ISO_8859-10: 602 | iconv: "ISO_8859-10" 603 | python_encode: "iso8859-10" 604 | 605 | ISO_8859-11: 606 | iconv: "ISO_8859-11" 607 | python_encode: "iso8859-11" 608 | 609 | ISO_8859-13: 610 | iconv: "ISO_8859-13" 611 | python_encode: "iso8859-13" 612 | 613 | ISO_8859-14: 614 | iconv: "ISO_8859-14" 615 | python_encode: "iso8859-14" 616 | 617 | ISO_8859-15: 618 | iconv: "ISO_8859-15" 619 | python_encode: "iso8859-15" 620 | 621 | ISO_8859-16: 622 | iconv: "ISO_8859-16" 623 | python_encode: "iso8859_16" 624 | 625 | RK1048: 626 | iconv: RK1048 627 | 628 | TCVN-3-1: 629 | name: "Vietnamese TCVN-3 1" 630 | data: 631 | - " " 632 | - " " 633 | - " ăâêôơưđ " 634 | - " àảãáạ ằẳẵắ " 635 | - " ặầẩẫấậè ẻẽ" 636 | - "éẹềểễếệìỉ ĩíịò" 637 | - " ỏõóọồổỗốộờởỡớợù" 638 | - " ủũúụừửữứựỳỷỹýỵ " 639 | 640 | TCVN-3-2: 641 | name: "Vietnamese TCVN-3 1" 642 | data: 643 | - " " 644 | - " " 645 | - " Ă РÊÔƠƯ " 646 | - " ÀẢÃÁẠ ẰẲẴẮ " 647 | - " ẶẦẨẪẤẬÈ ẺẼ" 648 | - "ÉẸỀỂỄẾỆÌỈ ĨÍỊÒ" 649 | - " ỎÕÓỌỒỔỖỐỘỜỞỠỚỢÙ" 650 | - " ỦŨÚỤỪỬỮỨỰỲỶỸÝỴ " 651 | 652 | OXHOO-EUROPEAN: 653 | name: Oxhoo-specific European 654 | data: 655 | - "ÇüéâäàåçêëèïîìÄÅ" 656 | - "ÉæÆôöòûùÿÖÜñѪº¿" 657 | - "áíóú¢£¥₧ƒ¡ÃãÕõØø" 658 | - "·¨°`´½¼×÷≤≥«»≠√¯" 659 | - "⌠⌡∞◤↵↑↓→←┌┐└┘•®©" 660 | # Some unidentified chars 661 | - "™†§¶Γ◢Θ " 662 | - "ß ε " 663 | - "τ " 664 | 665 | KATAKANA: 666 | name: Katakana (codepage 1) 667 | data: 668 | - "▁▂▃▄▅▆▇█▏▎▍▌▋▊▉┼" 669 | - "┴┬┤├¯─│▕┌┐└┘╭╮╰╯" 670 | - " 。「」、・ヲァィゥェォャュョッ" 671 | - "ーアイウエオカキクケコサシスセソ" 672 | - "タチツテトナニヌネノハヒフヘホマ" 673 | - "ミムメモヤユヨラリルレロワン゙゚" 674 | - "═╞╪╡◢◣◥◤♠♥♦♣●○╱╲" 675 | - "╳円年月日時分秒〒市区町村人▓\u00A0" 676 | 677 | Unknown: 678 | name: Unknown 679 | notes: Code page that has not yet been identified. 680 | ... 681 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Attribution 4.0 International 2 | 3 | ======================================================================= 4 | 5 | Creative Commons Corporation ("Creative Commons") is not a law firm and 6 | does not provide legal services or legal advice. Distribution of 7 | Creative Commons public licenses does not create a lawyer-client or 8 | other relationship. Creative Commons makes its licenses and related 9 | information available on an "as-is" basis. Creative Commons gives no 10 | warranties regarding its licenses, any material licensed under their 11 | terms and conditions, or any related information. Creative Commons 12 | disclaims all liability for damages resulting from their use to the 13 | fullest extent possible. 14 | 15 | Using Creative Commons Public Licenses 16 | 17 | Creative Commons public licenses provide a standard set of terms and 18 | conditions that creators and other rights holders may use to share 19 | original works of authorship and other material subject to copyright 20 | and certain other rights specified in the public license below. The 21 | following considerations are for informational purposes only, are not 22 | exhaustive, and do not form part of our licenses. 23 | 24 | Considerations for licensors: Our public licenses are 25 | intended for use by those authorized to give the public 26 | permission to use material in ways otherwise restricted by 27 | copyright and certain other rights. Our licenses are 28 | irrevocable. Licensors should read and understand the terms 29 | and conditions of the license they choose before applying it. 30 | Licensors should also secure all rights necessary before 31 | applying our licenses so that the public can reuse the 32 | material as expected. Licensors should clearly mark any 33 | material not subject to the license. This includes other CC- 34 | licensed material, or material used under an exception or 35 | limitation to copyright. More considerations for licensors: 36 | wiki.creativecommons.org/Considerations_for_licensors 37 | 38 | Considerations for the public: By using one of our public 39 | licenses, a licensor grants the public permission to use the 40 | licensed material under specified terms and conditions. If 41 | the licensor's permission is not necessary for any reason--for 42 | example, because of any applicable exception or limitation to 43 | copyright--then that use is not regulated by the license. Our 44 | licenses grant only permissions under copyright and certain 45 | other rights that a licensor has authority to grant. Use of 46 | the licensed material may still be restricted for other 47 | reasons, including because others have copyright or other 48 | rights in the material. A licensor may make special requests, 49 | such as asking that all changes be marked or described. 50 | Although not required by our licenses, you are encouraged to 51 | respect those requests where reasonable. More_considerations 52 | for the public: 53 | wiki.creativecommons.org/Considerations_for_licensees 54 | 55 | ======================================================================= 56 | 57 | Creative Commons Attribution 4.0 International Public License 58 | 59 | By exercising the Licensed Rights (defined below), You accept and agree 60 | to be bound by the terms and conditions of this Creative Commons 61 | Attribution 4.0 International Public License ("Public License"). To the 62 | extent this Public License may be interpreted as a contract, You are 63 | granted the Licensed Rights in consideration of Your acceptance of 64 | these terms and conditions, and the Licensor grants You such rights in 65 | consideration of benefits the Licensor receives from making the 66 | Licensed Material available under these terms and conditions. 67 | 68 | 69 | Section 1 -- Definitions. 70 | 71 | a. Adapted Material means material subject to Copyright and Similar 72 | Rights that is derived from or based upon the Licensed Material 73 | and in which the Licensed Material is translated, altered, 74 | arranged, transformed, or otherwise modified in a manner requiring 75 | permission under the Copyright and Similar Rights held by the 76 | Licensor. For purposes of this Public License, where the Licensed 77 | Material is a musical work, performance, or sound recording, 78 | Adapted Material is always produced where the Licensed Material is 79 | synched in timed relation with a moving image. 80 | 81 | b. Adapter's License means the license You apply to Your Copyright 82 | and Similar Rights in Your contributions to Adapted Material in 83 | accordance with the terms and conditions of this Public License. 84 | 85 | c. Copyright and Similar Rights means copyright and/or similar rights 86 | closely related to copyright including, without limitation, 87 | performance, broadcast, sound recording, and Sui Generis Database 88 | Rights, without regard to how the rights are labeled or 89 | categorized. For purposes of this Public License, the rights 90 | specified in Section 2(b)(1)-(2) are not Copyright and Similar 91 | Rights. 92 | 93 | d. Effective Technological Measures means those measures that, in the 94 | absence of proper authority, may not be circumvented under laws 95 | fulfilling obligations under Article 11 of the WIPO Copyright 96 | Treaty adopted on December 20, 1996, and/or similar international 97 | agreements. 98 | 99 | e. Exceptions and Limitations means fair use, fair dealing, and/or 100 | any other exception or limitation to Copyright and Similar Rights 101 | that applies to Your use of the Licensed Material. 102 | 103 | f. Licensed Material means the artistic or literary work, database, 104 | or other material to which the Licensor applied this Public 105 | License. 106 | 107 | g. Licensed Rights means the rights granted to You subject to the 108 | terms and conditions of this Public License, which are limited to 109 | all Copyright and Similar Rights that apply to Your use of the 110 | Licensed Material and that the Licensor has authority to license. 111 | 112 | h. Licensor means the individual(s) or entity(ies) granting rights 113 | under this Public License. 114 | 115 | i. Share means to provide material to the public by any means or 116 | process that requires permission under the Licensed Rights, such 117 | as reproduction, public display, public performance, distribution, 118 | dissemination, communication, or importation, and to make material 119 | available to the public including in ways that members of the 120 | public may access the material from a place and at a time 121 | individually chosen by them. 122 | 123 | j. Sui Generis Database Rights means rights other than copyright 124 | resulting from Directive 96/9/EC of the European Parliament and of 125 | the Council of 11 March 1996 on the legal protection of databases, 126 | as amended and/or succeeded, as well as other essentially 127 | equivalent rights anywhere in the world. 128 | 129 | k. You means the individual or entity exercising the Licensed Rights 130 | under this Public License. Your has a corresponding meaning. 131 | 132 | 133 | Section 2 -- Scope. 134 | 135 | a. License grant. 136 | 137 | 1. Subject to the terms and conditions of this Public License, 138 | the Licensor hereby grants You a worldwide, royalty-free, 139 | non-sublicensable, non-exclusive, irrevocable license to 140 | exercise the Licensed Rights in the Licensed Material to: 141 | 142 | a. reproduce and Share the Licensed Material, in whole or 143 | in part; and 144 | 145 | b. produce, reproduce, and Share Adapted Material. 146 | 147 | 2. Exceptions and Limitations. For the avoidance of doubt, where 148 | Exceptions and Limitations apply to Your use, this Public 149 | License does not apply, and You do not need to comply with 150 | its terms and conditions. 151 | 152 | 3. Term. The term of this Public License is specified in Section 153 | 6(a). 154 | 155 | 4. Media and formats; technical modifications allowed. The 156 | Licensor authorizes You to exercise the Licensed Rights in 157 | all media and formats whether now known or hereafter created, 158 | and to make technical modifications necessary to do so. The 159 | Licensor waives and/or agrees not to assert any right or 160 | authority to forbid You from making technical modifications 161 | necessary to exercise the Licensed Rights, including 162 | technical modifications necessary to circumvent Effective 163 | Technological Measures. For purposes of this Public License, 164 | simply making modifications authorized by this Section 2(a) 165 | (4) never produces Adapted Material. 166 | 167 | 5. Downstream recipients. 168 | 169 | a. Offer from the Licensor -- Licensed Material. Every 170 | recipient of the Licensed Material automatically 171 | receives an offer from the Licensor to exercise the 172 | Licensed Rights under the terms and conditions of this 173 | Public License. 174 | 175 | b. No downstream restrictions. You may not offer or impose 176 | any additional or different terms or conditions on, or 177 | apply any Effective Technological Measures to, the 178 | Licensed Material if doing so restricts exercise of the 179 | Licensed Rights by any recipient of the Licensed 180 | Material. 181 | 182 | 6. No endorsement. Nothing in this Public License constitutes or 183 | may be construed as permission to assert or imply that You 184 | are, or that Your use of the Licensed Material is, connected 185 | with, or sponsored, endorsed, or granted official status by, 186 | the Licensor or others designated to receive attribution as 187 | provided in Section 3(a)(1)(A)(i). 188 | 189 | b. Other rights. 190 | 191 | 1. Moral rights, such as the right of integrity, are not 192 | licensed under this Public License, nor are publicity, 193 | privacy, and/or other similar personality rights; however, to 194 | the extent possible, the Licensor waives and/or agrees not to 195 | assert any such rights held by the Licensor to the limited 196 | extent necessary to allow You to exercise the Licensed 197 | Rights, but not otherwise. 198 | 199 | 2. Patent and trademark rights are not licensed under this 200 | Public License. 201 | 202 | 3. To the extent possible, the Licensor waives any right to 203 | collect royalties from You for the exercise of the Licensed 204 | Rights, whether directly or through a collecting society 205 | under any voluntary or waivable statutory or compulsory 206 | licensing scheme. In all other cases the Licensor expressly 207 | reserves any right to collect such royalties. 208 | 209 | 210 | Section 3 -- License Conditions. 211 | 212 | Your exercise of the Licensed Rights is expressly made subject to the 213 | following conditions. 214 | 215 | a. Attribution. 216 | 217 | 1. If You Share the Licensed Material (including in modified 218 | form), You must: 219 | 220 | a. retain the following if it is supplied by the Licensor 221 | with the Licensed Material: 222 | 223 | i. identification of the creator(s) of the Licensed 224 | Material and any others designated to receive 225 | attribution, in any reasonable manner requested by 226 | the Licensor (including by pseudonym if 227 | designated); 228 | 229 | ii. a copyright notice; 230 | 231 | iii. a notice that refers to this Public License; 232 | 233 | iv. a notice that refers to the disclaimer of 234 | warranties; 235 | 236 | v. a URI or hyperlink to the Licensed Material to the 237 | extent reasonably practicable; 238 | 239 | b. indicate if You modified the Licensed Material and 240 | retain an indication of any previous modifications; and 241 | 242 | c. indicate the Licensed Material is licensed under this 243 | Public License, and include the text of, or the URI or 244 | hyperlink to, this Public License. 245 | 246 | 2. You may satisfy the conditions in Section 3(a)(1) in any 247 | reasonable manner based on the medium, means, and context in 248 | which You Share the Licensed Material. For example, it may be 249 | reasonable to satisfy the conditions by providing a URI or 250 | hyperlink to a resource that includes the required 251 | information. 252 | 253 | 3. If requested by the Licensor, You must remove any of the 254 | information required by Section 3(a)(1)(A) to the extent 255 | reasonably practicable. 256 | 257 | 4. If You Share Adapted Material You produce, the Adapter's 258 | License You apply must not prevent recipients of the Adapted 259 | Material from complying with this Public License. 260 | 261 | 262 | Section 4 -- Sui Generis Database Rights. 263 | 264 | Where the Licensed Rights include Sui Generis Database Rights that 265 | apply to Your use of the Licensed Material: 266 | 267 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right 268 | to extract, reuse, reproduce, and Share all or a substantial 269 | portion of the contents of the database; 270 | 271 | b. if You include all or a substantial portion of the database 272 | contents in a database in which You have Sui Generis Database 273 | Rights, then the database in which You have Sui Generis Database 274 | Rights (but not its individual contents) is Adapted Material; and 275 | 276 | c. You must comply with the conditions in Section 3(a) if You Share 277 | all or a substantial portion of the contents of the database. 278 | 279 | For the avoidance of doubt, this Section 4 supplements and does not 280 | replace Your obligations under this Public License where the Licensed 281 | Rights include other Copyright and Similar Rights. 282 | 283 | 284 | Section 5 -- Disclaimer of Warranties and Limitation of Liability. 285 | 286 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE 287 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS 288 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF 289 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, 290 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, 291 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR 292 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, 293 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT 294 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT 295 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. 296 | 297 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE 298 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, 299 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, 300 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, 301 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR 302 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN 303 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR 304 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR 305 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. 306 | 307 | c. The disclaimer of warranties and limitation of liability provided 308 | above shall be interpreted in a manner that, to the extent 309 | possible, most closely approximates an absolute disclaimer and 310 | waiver of all liability. 311 | 312 | 313 | Section 6 -- Term and Termination. 314 | 315 | a. This Public License applies for the term of the Copyright and 316 | Similar Rights licensed here. However, if You fail to comply with 317 | this Public License, then Your rights under this Public License 318 | terminate automatically. 319 | 320 | b. Where Your right to use the Licensed Material has terminated under 321 | Section 6(a), it reinstates: 322 | 323 | 1. automatically as of the date the violation is cured, provided 324 | it is cured within 30 days of Your discovery of the 325 | violation; or 326 | 327 | 2. upon express reinstatement by the Licensor. 328 | 329 | For the avoidance of doubt, this Section 6(b) does not affect any 330 | right the Licensor may have to seek remedies for Your violations 331 | of this Public License. 332 | 333 | c. For the avoidance of doubt, the Licensor may also offer the 334 | Licensed Material under separate terms or conditions or stop 335 | distributing the Licensed Material at any time; however, doing so 336 | will not terminate this Public License. 337 | 338 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public 339 | License. 340 | 341 | 342 | Section 7 -- Other Terms and Conditions. 343 | 344 | a. The Licensor shall not be bound by any additional or different 345 | terms or conditions communicated by You unless expressly agreed. 346 | 347 | b. Any arrangements, understandings, or agreements regarding the 348 | Licensed Material not stated herein are separate from and 349 | independent of the terms and conditions of this Public License. 350 | 351 | 352 | Section 8 -- Interpretation. 353 | 354 | a. For the avoidance of doubt, this Public License does not, and 355 | shall not be interpreted to, reduce, limit, restrict, or impose 356 | conditions on any use of the Licensed Material that could lawfully 357 | be made without permission under this Public License. 358 | 359 | b. To the extent possible, if any provision of this Public License is 360 | deemed unenforceable, it shall be automatically reformed to the 361 | minimum extent necessary to make it enforceable. If the provision 362 | cannot be reformed, it shall be severed from this Public License 363 | without affecting the enforceability of the remaining terms and 364 | conditions. 365 | 366 | c. No term or condition of this Public License will be waived and no 367 | failure to comply consented to unless expressly agreed to by the 368 | Licensor. 369 | 370 | d. Nothing in this Public License constitutes or may be interpreted 371 | as a limitation upon, or waiver of, any privileges and immunities 372 | that apply to the Licensor or You, including from the legal 373 | processes of any jurisdiction or authority. 374 | 375 | 376 | ======================================================================= 377 | 378 | Creative Commons is not a party to its public 379 | licenses. Notwithstanding, Creative Commons may elect to apply one of 380 | its public licenses to material it publishes and in those instances 381 | will be considered the “Licensor.” The text of the Creative Commons 382 | public licenses is dedicated to the public domain under the CC0 Public 383 | Domain Dedication. Except for the limited purpose of indicating that 384 | material is shared under a Creative Commons public license or as 385 | otherwise permitted by the Creative Commons policies published at 386 | creativecommons.org/policies, Creative Commons does not authorize the 387 | use of the trademark "Creative Commons" or any other trademark or logo 388 | of Creative Commons without its prior written consent including, 389 | without limitation, in connection with any unauthorized modifications 390 | to any of its public licenses or any other arrangements, 391 | understandings, or agreements concerning use of licensed material. For 392 | the avoidance of doubt, this paragraph does not form part of the 393 | public licenses. 394 | 395 | Creative Commons may be contacted at creativecommons.org. 396 | -------------------------------------------------------------------------------- /dist/capabilities.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | encodings: 4 | 5 | CP1001: 6 | name: "Unimplemented Star-specific CP1001" 7 | 8 | CP1098: 9 | name: "CP1098" 10 | 11 | CP1125: 12 | iconv: "CP1125" 13 | name: "CP1125" 14 | python_encode: "cp1125" 15 | 16 | CP1250: 17 | iconv: "CP1250" 18 | name: "CP1250" 19 | python_encode: "cp1250" 20 | 21 | CP1251: 22 | iconv: "CP1251" 23 | name: "CP1251" 24 | python_encode: "cp1251" 25 | 26 | CP1252: 27 | iconv: "CP1252" 28 | name: "CP1252" 29 | python_encode: "cp1252" 30 | 31 | CP1253: 32 | iconv: "CP1253" 33 | name: "CP1253" 34 | python_encode: "cp1253" 35 | 36 | CP1254: 37 | iconv: "CP1254" 38 | name: "CP1254" 39 | python_encode: "cp1254" 40 | 41 | CP1255: 42 | iconv: "CP1255" 43 | name: "CP1255" 44 | python_encode: "cp1255" 45 | 46 | CP1256: 47 | iconv: "CP1256" 48 | name: "CP1256" 49 | python_encode: "cp1256" 50 | 51 | CP1257: 52 | iconv: "CP1257" 53 | name: "CP1257" 54 | python_encode: "cp1257" 55 | 56 | CP1258: 57 | iconv: "CP1258" 58 | name: "CP1258" 59 | python_encode: "cp1258" 60 | 61 | CP2001: 62 | name: "Unimplemented Star-specific CP2001" 63 | 64 | CP3001: 65 | name: "Unimplemented Star-specific CP3001" 66 | 67 | CP3002: 68 | name: "Unimplemented Star-specific CP3002" 69 | 70 | CP3011: 71 | data: 72 | - "ÇüéâäàåçêëèïîìÄÅ" 73 | - "ÉæÆôöòûùÿÖÜ¢£¥₧ƒ" 74 | - "áíóúñѪº¿⌐¬½¼¡«»" 75 | - "░▒▓│┤Ā╢ņ╕╣║╗╝╜╛┐" 76 | - "└┴┬├─┼ā╟╚╔╩╦╠═╬╧" 77 | - "Š╤čČ╘╒ģĪī┘┌█▄ūŪ▀" 78 | - "αßΓπΣσµτΦΘΩδ∞φε∩" 79 | - "ĒēĢķĶļĻžŽ∙·√Ņš■ " 80 | name: "CP3011 Latvian" 81 | 82 | CP3012: 83 | data: 84 | - "АБВГДЕЖЗИЙКЛМНОП" 85 | - "РСТУФХЦЧШЩЪЫЬЭЮЯ" 86 | - "абвгдежзийклмноп" 87 | - "░▒▓│┤Ā╢ņ╕╣║╗╝Ō╛┐" 88 | - "└┴┬├─┼ā╟╚╔╩╦╠═╬╧" 89 | - "Š╤čČ╘╒ģĪī┘┌█▄ūŪ▀" 90 | - "рстуфхцчшщъыьэюя" 91 | - "ĒēĢķĶļĻžŽ∙·√Ņš■ " 92 | name: "CP3012 Cyrillic" 93 | 94 | CP3021: 95 | name: "Unimplemented Star-specific CP3021" 96 | 97 | CP3041: 98 | name: "Unimplemented Star-specific CP3041" 99 | 100 | CP3840: 101 | name: "Unimplemented Star-specific CP3840" 102 | 103 | CP3841: 104 | name: "Unimplemented Star-specific CP3841" 105 | 106 | CP3843: 107 | name: "Unimplemented Star-specific CP3843" 108 | 109 | CP3844: 110 | name: "Unimplemented Star-specific CP3844" 111 | 112 | CP3845: 113 | name: "Unimplemented Star-specific CP3845" 114 | 115 | CP3846: 116 | name: "Unimplemented Star-specific CP3846" 117 | 118 | CP3847: 119 | name: "Unimplemented Star-specific CP3847" 120 | 121 | CP3848: 122 | name: "Unimplemented Star-specific CP3848" 123 | 124 | CP437: 125 | iconv: "CP437" 126 | name: "CP437" 127 | python_encode: "cp437" 128 | 129 | CP720: 130 | name: "CP720" 131 | python_encode: "cp720" 132 | 133 | CP737: 134 | iconv: "CP737" 135 | name: "CP737" 136 | python_encode: "cp737" 137 | 138 | CP747: 139 | name: "CP747" 140 | 141 | CP772: 142 | iconv: "CP772" 143 | name: "CP772" 144 | 145 | CP774: 146 | iconv: "CP774" 147 | name: "CP774" 148 | 149 | CP775: 150 | iconv: "CP775" 151 | name: "CP775" 152 | python_encode: "cp775" 153 | 154 | CP850: 155 | iconv: "CP850" 156 | name: "CP850" 157 | python_encode: "cp850" 158 | 159 | CP851: 160 | name: "Greek CP851" 161 | notes: "Not used, due to inconsistencies between implementations." 162 | 163 | CP852: 164 | iconv: "CP852" 165 | name: "CP852" 166 | python_encode: "cp852" 167 | 168 | CP853: 169 | name: "CP853" 170 | 171 | CP855: 172 | iconv: "CP855" 173 | name: "CP855" 174 | python_encode: "cp855" 175 | 176 | CP856: 177 | iconv: "CP856" 178 | name: "CP856" 179 | python_encode: "cp856" 180 | 181 | CP857: 182 | iconv: "CP857" 183 | name: "CP857" 184 | python_encode: "cp857" 185 | 186 | CP858: 187 | name: "CP858" 188 | python_encode: "cp858" 189 | 190 | CP860: 191 | iconv: "CP860" 192 | name: "CP860" 193 | python_encode: "cp860" 194 | 195 | CP861: 196 | iconv: "CP861" 197 | name: "CP861" 198 | python_encode: "cp861" 199 | 200 | CP862: 201 | iconv: "CP862" 202 | name: "CP862" 203 | python_encode: "cp862" 204 | 205 | CP863: 206 | iconv: "CP863" 207 | name: "CP863" 208 | python_encode: "cp863" 209 | 210 | CP864: 211 | iconv: "CP864" 212 | name: "CP864" 213 | python_encode: "cp864" 214 | 215 | CP865: 216 | iconv: "CP865" 217 | name: "CP865" 218 | python_encode: "cp865" 219 | 220 | CP866: 221 | iconv: "CP866" 222 | name: "CP866" 223 | python_encode: "cp866" 224 | 225 | CP869: 226 | iconv: "CP869" 227 | name: "CP869" 228 | python_encode: "cp869" 229 | 230 | CP874: 231 | iconv: "CP874" 232 | name: "CP874" 233 | python_encode: "cp874" 234 | 235 | CP928: 236 | name: "CP928" 237 | 238 | CP932: 239 | iconv: "CP932" 240 | name: "CP932" 241 | python_encode: "cp932" 242 | 243 | ISO_8859-1: 244 | iconv: "ISO_8859-1" 245 | name: "ISO_8859-1" 246 | python_encode: "latin_1" 247 | 248 | ISO_8859-15: 249 | iconv: "ISO_8859-15" 250 | name: "ISO_8859-15" 251 | python_encode: "iso8859-15" 252 | 253 | ISO_8859-2: 254 | iconv: "ISO_8859-2" 255 | name: "ISO_8859-2" 256 | python_encode: "iso8859_2" 257 | 258 | ISO_8859-3: 259 | iconv: "ISO_8859-3" 260 | name: "ISO_8859-3" 261 | python_encode: "iso8859_3" 262 | 263 | ISO_8859-4: 264 | iconv: "ISO_8859-4" 265 | name: "ISO_8859-4" 266 | python_encode: "iso8859_4" 267 | 268 | ISO_8859-5: 269 | iconv: "ISO_8859-5" 270 | name: "ISO_8859-5" 271 | python_encode: "iso8859_5" 272 | 273 | ISO_8859-6: 274 | iconv: "ISO_8859-6" 275 | name: "ISO_8859-6" 276 | python_encode: "iso8859_6" 277 | 278 | ISO_8859-7: 279 | iconv: "ISO_8859-7" 280 | name: "ISO_8859-7" 281 | python_encode: "iso8859_7" 282 | 283 | ISO_8859-8: 284 | iconv: "ISO_8859-8" 285 | name: "ISO_8859-8" 286 | python_encode: "iso8859_8" 287 | 288 | ISO_8859-9: 289 | iconv: "ISO_8859-9" 290 | name: "ISO_8859-9" 291 | python_encode: "iso8859_9" 292 | 293 | KATAKANA: 294 | data: 295 | - "▁▂▃▄▅▆▇█▏▎▍▌▋▊▉┼" 296 | - "┴┬┤├¯─│▕┌┐└┘╭╮╰╯" 297 | - " 。「」、・ヲァィゥェォャュョッ" 298 | - "ーアイウエオカキクケコサシスセソ" 299 | - "タチツテトナニヌネノハヒフヘホマ" 300 | - "ミムメモヤユヨラリルレロワン゙゚" 301 | - "═╞╪╡◢◣◥◤♠♥♦♣●○╱╲" 302 | - "╳円年月日時分秒〒市区町村人▓ " 303 | name: "Katakana (codepage 1)" 304 | 305 | OXHOO-EUROPEAN: 306 | data: 307 | - "ÇüéâäàåçêëèïîìÄÅ" 308 | - "ÉæÆôöòûùÿÖÜñѪº¿" 309 | - "áíóú¢£¥₧ƒ¡ÃãÕõØø" 310 | - "·¨°`´½¼×÷≤≥«»≠√¯" 311 | - "⌠⌡∞◤↵↑↓→←┌┐└┘•®©" 312 | - "™†§¶Γ◢Θ " 313 | - "ß ε " 314 | - "τ " 315 | name: "Oxhoo-specific European" 316 | 317 | RK1048: 318 | iconv: "RK1048" 319 | name: "RK1048" 320 | 321 | TCVN-3-1: 322 | data: 323 | - " " 324 | - " " 325 | - " ăâêôơưđ " 326 | - " àảãáạ ằẳẵắ " 327 | - " ặầẩẫấậè ẻẽ" 328 | - "éẹềểễếệìỉ ĩíịò" 329 | - " ỏõóọồổỗốộờởỡớợù" 330 | - " ủũúụừửữứựỳỷỹýỵ " 331 | name: "Vietnamese TCVN-3 1" 332 | 333 | TCVN-3-2: 334 | data: 335 | - " " 336 | - " " 337 | - " Ă РÊÔƠƯ " 338 | - " ÀẢÃÁẠ ẰẲẴẮ " 339 | - " ẶẦẨẪẤẬÈ ẺẼ" 340 | - "ÉẸỀỂỄẾỆÌỈ ĨÍỊÒ" 341 | - " ỎÕÓỌỒỔỖỐỘỜỞỠỚỢÙ" 342 | - " ỦŨÚỤỪỬỮỨỰỲỶỸÝỴ " 343 | name: "Vietnamese TCVN-3 1" 344 | 345 | Unknown: 346 | name: "Unknown" 347 | notes: "Code page that has not yet been identified." 348 | 349 | profiles: 350 | 351 | AF-240: 352 | codePages: 353 | 0: "OXHOO-EUROPEAN" 354 | colors: 355 | 0: "black" 356 | features: 357 | barcodeA: no 358 | barcodeB: no 359 | bitImageColumn: no 360 | bitImageRaster: no 361 | graphics: no 362 | highDensity: no 363 | paperFullCut: no 364 | paperPartCut: no 365 | pdf417Code: no 366 | pulseBel: no 367 | pulseStandard: no 368 | qrCode: no 369 | starCommands: no 370 | fonts: 371 | 0: 372 | columns: 20 373 | name: "Font A" 374 | media: 375 | width: 376 | mm: 120 377 | pixels: 100 378 | name: "AF-240 Customer Display" 379 | notes: "This is a two-line, ESC/POS-aware customer display from Oxhoo. The ESC/POS\ 380 | \ command mode can be activated persistently by sending:\n\n echo -ne \"\\\ 381 | n\\x02\\x05\\x43\\x31\\x03\" > /dev/ttyUSB0\n" 382 | vendor: "Oxhoo" 383 | 384 | CT-S651: 385 | 386 | codePages: 387 | 0: "CP437" 388 | 1: "CP932" 389 | 16: "CP1252" 390 | 17: "CP866" 391 | 18: "CP852" 392 | 19: "CP858" 393 | 2: "CP850" 394 | 20: "Unknown" 395 | 21: "Unknown" 396 | 25: "Unknown" 397 | 255: "Unknown" 398 | 26: "Unknown" 399 | 3: "CP860" 400 | 30: "TCVN-3-1" 401 | 31: "TCVN-3-2" 402 | 4: "CP863" 403 | 40: "CP864" 404 | 5: "CP865" 405 | 6: "CP852" 406 | 7: "CP866" 407 | 8: "CP857" 408 | 9: "CP1252" 409 | 410 | colors: 411 | 0: "black" 412 | 1: "red" 413 | 414 | features: 415 | barcodeA: yes 416 | barcodeB: yes 417 | bitImageColumn: yes 418 | bitImageRaster: yes 419 | graphics: yes 420 | highDensity: yes 421 | paperFullCut: yes 422 | paperPartCut: yes 423 | pdf417Code: yes 424 | pulseBel: yes 425 | pulseStandard: yes 426 | qrCode: yes 427 | starCommands: no 428 | 429 | fonts: 430 | 0: 431 | columns: 48 432 | name: "Font A" 433 | 1: 434 | columns: 64 435 | name: "Font B" 436 | 2: 437 | columns: 72 438 | name: "Font C" 439 | 440 | media: 441 | dpi: 203 442 | width: 443 | mm: 80 444 | pixels: 640 445 | 446 | name: "CT-S651" 447 | 448 | notes: "Citizen CT-S651 profile. This is a two-color thermal printer, supporting\ 449 | \ paper sizes from 58mm up to 83mm\n" 450 | 451 | vendor: "Citizen" 452 | 453 | ITPP047: 454 | 455 | codePages: 456 | 0: "CP437" 457 | 1: "CP932" 458 | 10: "Unknown" 459 | 16: "Unknown" 460 | 17: "CP866" 461 | 18: "CP852" 462 | 19: "CP858" 463 | 2: "CP850" 464 | 20: "Unknown" 465 | 21: "Unknown" 466 | 3: "CP860" 467 | 4: "CP863" 468 | 5: "CP865" 469 | 6: "CP1252" 470 | 7: "Unknown" 471 | 8: "Unknown" 472 | 9: "Unknown" 473 | 474 | colors: 475 | 0: "black" 476 | 477 | features: 478 | barcodeA: yes 479 | barcodeB: yes 480 | bitImageColumn: yes 481 | bitImageRaster: yes 482 | graphics: yes 483 | highDensity: yes 484 | paperFullCut: yes 485 | paperPartCut: yes 486 | pdf417Code: yes 487 | pulseBel: no 488 | pulseStandard: yes 489 | qrCode: yes 490 | starCommands: no 491 | 492 | fonts: 493 | 0: 494 | columns: 42 495 | name: "Font A" 496 | 1: 497 | columns: 56 498 | name: "Font B" 499 | 500 | media: 501 | width: 502 | mm: 80 503 | pixels: 512 504 | 505 | name: "ITPP047" 506 | 507 | notes: "Munbyn ITPP047/ITPP102 receipt printer with cutter.\nThis printer has\ 508 | \ all the standard features, but a somewhat reduced codepage set. This profile\ 509 | \ might work for other china printers (Meihengtong, ...), too.\nFor technical\ 510 | \ information, go to support.munbyn.com, look for \"Printer - Drivers / SDK\"\ 511 | , then download the \"ITPP047 SDK\", which contains the \"ITPP047 Program Manual\"\ 512 | .\n" 513 | 514 | vendor: "Munbyn" 515 | 516 | KR-306: 517 | 518 | codePages: 519 | 520 | 0: "CP437" 521 | 522 | 1: "KATAKANA" 523 | 524 | 10: "Unknown" 525 | 526 | 11: "CP1252" 527 | 528 | 12: "CP866" 529 | 530 | 13: "CP852" 531 | 532 | 14: "CP858" 533 | 534 | 15: "Unknown" 535 | 536 | 16: "Unknown" 537 | 538 | 17: "Unknown" 539 | 540 | 18: "Unknown" 541 | 542 | 19: "CP747" 543 | 544 | 2: "CP850" 545 | 546 | 20: "Unknown" 547 | 548 | 21: "Unknown" 549 | 550 | 22: "Unknown" 551 | 552 | 23: "CP864" 553 | 554 | 24: "Unknown" 555 | 556 | 25: "Unknown" 557 | 558 | 26: "Unknown" 559 | 560 | 27: "CP1255" 561 | 562 | 28: "CP437" 563 | 564 | 29: "KATAKANA" 565 | 566 | 3: "CP860" 567 | 568 | 30: "CP437" 569 | 570 | 31: "CP858" 571 | 572 | 32: "CP852" 573 | 574 | 33: "CP860" 575 | 576 | 34: "CP861" 577 | 578 | 35: "CP863" 579 | 580 | 36: "CP865" 581 | 582 | 37: "CP866" 583 | 584 | 38: "CP855" 585 | 586 | 39: "CP857" 587 | 588 | 4: "CP863" 589 | 590 | 40: "CP862" 591 | 592 | 41: "CP864" 593 | 594 | 42: "CP737" 595 | 596 | 43: "CP851" 597 | 598 | 44: "CP869" 599 | 600 | 45: "CP928" 601 | 602 | 46: "CP772" 603 | 604 | 47: "CP774" 605 | 606 | 48: "CP874" 607 | 608 | 49: "CP1252" 609 | 610 | 5: "CP865" 611 | 612 | 50: "CP1250" 613 | 614 | 51: "CP1251" 615 | 616 | 52: "CP3840" 617 | 618 | 53: "CP3841" 619 | 620 | 54: "CP3843" 621 | 622 | 55: "CP3844" 623 | 624 | 56: "CP3845" 625 | 626 | 57: "CP3846" 627 | 628 | 58: "CP3847" 629 | 630 | 59: "CP3848" 631 | 632 | 6: "Unknown" 633 | 634 | 60: "CP1001" 635 | 636 | 61: "CP2001" 637 | 638 | 62: "CP3001" 639 | 640 | 63: "CP3002" 641 | 642 | 64: "CP3011" 643 | 644 | 65: "CP3012" 645 | 646 | 66: "CP3021" 647 | 648 | 67: "CP3041" 649 | 650 | 68: "CP852" 651 | 652 | 69: "Unknown" 653 | 654 | 7: "Unknown" 655 | 656 | 70: "CP1256" 657 | 658 | 8: "Unknown" 659 | 660 | 9: "Unknown" 661 | 662 | colors: 663 | 0: "black" 664 | 665 | features: 666 | barcodeA: yes 667 | barcodeB: yes 668 | bitImageColumn: yes 669 | bitImageRaster: yes 670 | graphics: no 671 | highDensity: yes 672 | paperFullCut: yes 673 | paperPartCut: yes 674 | pdf417Code: yes 675 | pulseBel: no 676 | pulseStandard: yes 677 | qrCode: yes 678 | starCommands: no 679 | 680 | fonts: 681 | 0: 682 | columns: 48 683 | name: "Font A" 684 | 1: 685 | columns: 64 686 | name: "Font B" 687 | 688 | media: 689 | width: 690 | mm: 72 691 | pixels: 576 692 | 693 | name: "KR-306" 694 | 695 | notes: "Kefar KR-306 printer with 200mm/s speed\n" 696 | 697 | vendor: "Kefar" 698 | 699 | NT-5890K: 700 | 701 | codePages: 702 | 703 | 0: "CP437" 704 | 705 | 1: "CP932" 706 | 707 | 10: "Unknown" 708 | 709 | 16: "CP1252" 710 | 711 | 17: "CP866" 712 | 713 | 18: "CP852" 714 | 715 | 19: "CP858" 716 | 717 | 2: "CP850" 718 | 719 | 20: "Unknown" 720 | 721 | 21: "Unknown" 722 | 723 | 22: "Unknown" 724 | 725 | 23: "Unknown" 726 | 727 | 24: "CP747" 728 | 729 | 25: "CP1257" 730 | 731 | 255: "Unknown" 732 | 733 | 27: "CP1258" 734 | 735 | 28: "CP864" 736 | 737 | 3: "CP860" 738 | 739 | 31: "Unknown" 740 | 741 | 32: "CP1255" 742 | 743 | 4: "CP863" 744 | 745 | 5: "CP865" 746 | 747 | 50: "CP437" 748 | 749 | 52: "CP437" 750 | 751 | 53: "CP858" 752 | 753 | 54: "CP852" 754 | 755 | 55: "CP860" 756 | 757 | 56: "CP861" 758 | 759 | 57: "CP863" 760 | 761 | 58: "CP865" 762 | 763 | 59: "CP866" 764 | 765 | 6: "Unknown" 766 | 767 | 60: "CP855" 768 | 769 | 61: "CP857" 770 | 771 | 62: "CP862" 772 | 773 | 63: "CP864" 774 | 775 | 64: "CP737" 776 | 777 | 65: "CP851" 778 | 779 | 66: "CP869" 780 | 781 | 68: "CP772" 782 | 783 | 69: "CP774" 784 | 785 | 7: "Unknown" 786 | 787 | 71: "CP1252" 788 | 789 | 72: "CP1250" 790 | 791 | 73: "CP1251" 792 | 793 | 74: "CP3840" 794 | 795 | 76: "CP3843" 796 | 797 | 77: "CP3844" 798 | 799 | 78: "CP3845" 800 | 801 | 79: "CP3846" 802 | 803 | 8: "Unknown" 804 | 805 | 80: "CP3847" 806 | 807 | 81: "CP3848" 808 | 809 | 83: "CP2001" 810 | 811 | 84: "CP3001" 812 | 813 | 85: "CP3002" 814 | 815 | 86: "CP3011" 816 | 817 | 87: "CP3012" 818 | 819 | 88: "CP3021" 820 | 821 | 89: "CP3041" 822 | 823 | 9: "Unknown" 824 | 825 | 90: "CP1253" 826 | 827 | 91: "CP1254" 828 | 829 | 92: "CP1256" 830 | 831 | 93: "CP720" 832 | 833 | 94: "CP1258" 834 | 835 | 95: "CP775" 836 | 837 | 96: "Unknown" 838 | 839 | colors: 840 | 0: "black" 841 | 842 | features: 843 | barcodeA: no 844 | barcodeB: no 845 | bitImageColumn: yes 846 | bitImageRaster: yes 847 | graphics: no 848 | highDensity: yes 849 | paperFullCut: no 850 | paperPartCut: no 851 | pdf417Code: no 852 | pulseBel: no 853 | pulseStandard: yes 854 | qrCode: no 855 | starCommands: no 856 | 857 | fonts: 858 | 0: 859 | columns: 32 860 | name: "Font A" 861 | 1: 862 | columns: 42 863 | name: "Font B" 864 | 865 | media: 866 | dpi: 203 867 | width: 868 | mm: 57.5 869 | pixels: 384 870 | 871 | name: "NT-5890K" 872 | 873 | notes: "" 874 | 875 | vendor: "Netum" 876 | 877 | NT-80-V-UL: 878 | 879 | codePages: 880 | 881 | 0: "CP437" 882 | 883 | 1: "Unknown" 884 | 885 | 10: "Unknown" 886 | 887 | 16: "CP1252" 888 | 889 | 17: "CP866" 890 | 891 | 18: "CP852" 892 | 893 | 19: "CP858" 894 | 895 | 2: "CP850" 896 | 897 | 20: "Unknown" 898 | 899 | 21: "Unknown" 900 | 901 | 22: "ISO_8859-6" 902 | 903 | 23: "Unknown" 904 | 905 | 24: "CP747" 906 | 907 | 25: "CP1257" 908 | 909 | 255: "Unknown" 910 | 911 | 27: "Unknown" 912 | 913 | 28: "CP864" 914 | 915 | 3: "CP860" 916 | 917 | 31: "Unknown" 918 | 919 | 32: "CP1255" 920 | 921 | 4: "CP863" 922 | 923 | 5: "CP865" 924 | 925 | 50: "CP437" 926 | 927 | 52: "CP437" 928 | 929 | 53: "CP858" 930 | 931 | 54: "CP852" 932 | 933 | 55: "CP860" 934 | 935 | 56: "CP861" 936 | 937 | 57: "CP863" 938 | 939 | 58: "CP865" 940 | 941 | 59: "CP866" 942 | 943 | 6: "Unknown" 944 | 945 | 60: "CP855" 946 | 947 | 61: "CP857" 948 | 949 | 62: "CP862" 950 | 951 | 63: "CP864" 952 | 953 | 64: "CP737" 954 | 955 | 65: "CP851" 956 | 957 | 66: "CP869" 958 | 959 | 68: "CP772" 960 | 961 | 69: "CP774" 962 | 963 | 7: "Unknown" 964 | 965 | 71: "CP1252" 966 | 967 | 72: "CP1250" 968 | 969 | 73: "CP1251" 970 | 971 | 74: "CP3840" 972 | 973 | 76: "CP3843" 974 | 975 | 77: "CP3844" 976 | 977 | 78: "CP3845" 978 | 979 | 79: "CP3846" 980 | 981 | 8: "Unknown" 982 | 983 | 80: "CP3847" 984 | 985 | 81: "CP3848" 986 | 987 | 83: "CP2001" 988 | 989 | 84: "CP3001" 990 | 991 | 85: "CP3002" 992 | 993 | 86: "CP3011" 994 | 995 | 87: "CP3012" 996 | 997 | 88: "CP3021" 998 | 999 | 89: "CP3041" 1000 | 1001 | 9: "Unknown" 1002 | 1003 | 90: "CP1253" 1004 | 1005 | 91: "CP1254" 1006 | 1007 | 92: "CP1256" 1008 | 1009 | 93: "CP720" 1010 | 1011 | 94: "CP1258" 1012 | 1013 | 95: "CP775" 1014 | 1015 | 96: "Unknown" 1016 | 1017 | colors: 1018 | 0: "black" 1019 | 1020 | features: 1021 | barcodeA: yes 1022 | barcodeB: yes 1023 | bitImageColumn: yes 1024 | bitImageRaster: yes 1025 | graphics: yes 1026 | highDensity: yes 1027 | paperFullCut: yes 1028 | paperPartCut: yes 1029 | pdf417Code: yes 1030 | pulseBel: no 1031 | pulseStandard: yes 1032 | qrCode: yes 1033 | starCommands: no 1034 | 1035 | fonts: 1036 | 0: 1037 | columns: 12 1038 | name: "Font A" 1039 | 1: 1040 | columns: 9 1041 | name: "Font B" 1042 | 1043 | media: 1044 | dpi: 203 1045 | width: 1046 | mm: 80 1047 | pixels: 576 1048 | 1049 | name: "80-V-UL" 1050 | 1051 | notes: "Netum 80-V-UL thermal printer series.\n" 1052 | 1053 | vendor: "Netum" 1054 | 1055 | OCD-100: 1056 | 1057 | codePages: 1058 | 0: "CP437" 1059 | 1: "CP932" 1060 | 10: "CP862" 1061 | 11: "CP866" 1062 | 12: "CP1251" 1063 | 13: "CP1254" 1064 | 14: "CP1255" 1065 | 15: "CP1257" 1066 | 16: "CP1252" 1067 | 17: "CP1253" 1068 | 19: "CP858" 1069 | 2: "CP850" 1070 | 3: "CP860" 1071 | 4: "CP863" 1072 | 5: "CP865" 1073 | 6: "Unknown" 1074 | 7: "Unknown" 1075 | 8: "Unknown" 1076 | 9: "CP852" 1077 | 1078 | colors: 1079 | 0: "black" 1080 | 1081 | features: 1082 | barcodeA: no 1083 | barcodeB: no 1084 | bitImageColumn: no 1085 | bitImageRaster: no 1086 | graphics: no 1087 | highDensity: no 1088 | paperFullCut: no 1089 | paperPartCut: no 1090 | pdf417Code: no 1091 | pulseBel: no 1092 | pulseStandard: no 1093 | qrCode: no 1094 | starCommands: no 1095 | 1096 | fonts: 1097 | 0: 1098 | columns: 20 1099 | name: "Font A" 1100 | 1101 | media: 1102 | width: 1103 | mm: 180 1104 | pixels: 100 1105 | 1106 | name: "OCD-100 Customer Display" 1107 | 1108 | notes: "This is a two-line, ESC/POS-aware customer display from Aures. It has\ 1109 | \ some graphics support via custom fonts, but is otherwise text-only. This profile\ 1110 | \ is also suitable for the OCD-150 pole-mounted display.\n" 1111 | 1112 | vendor: "Aures" 1113 | 1114 | OCD-300: 1115 | 1116 | codePages: 1117 | 0: "CP437" 1118 | 1: "CP932" 1119 | 10: "CP862" 1120 | 11: "CP866" 1121 | 12: "CP1251" 1122 | 13: "CP1254" 1123 | 14: "CP1255" 1124 | 15: "CP1257" 1125 | 16: "CP1252" 1126 | 17: "CP1253" 1127 | 18: "CP1250" 1128 | 19: "CP858" 1129 | 2: "CP850" 1130 | 20: "Unknown" 1131 | 3: "CP860" 1132 | 4: "CP863" 1133 | 5: "CP865" 1134 | 6: "Unknown" 1135 | 7: "Unknown" 1136 | 8: "Unknown" 1137 | 9: "CP852" 1138 | 1139 | colors: 1140 | 0: "black" 1141 | 1142 | features: 1143 | barcodeA: no 1144 | barcodeB: no 1145 | bitImageColumn: no 1146 | bitImageRaster: no 1147 | graphics: no 1148 | highDensity: no 1149 | paperFullCut: no 1150 | paperPartCut: no 1151 | pdf417Code: no 1152 | pulseBel: no 1153 | pulseStandard: no 1154 | qrCode: no 1155 | starCommands: no 1156 | 1157 | fonts: 1158 | 0: 1159 | columns: 20 1160 | name: "Font A" 1161 | 1162 | media: 1163 | width: 1164 | mm: 130.2 1165 | pixels: 240 1166 | 1167 | name: "OCD-300 Customer Display" 1168 | 1169 | notes: "This is a two-line, ESC/POS-aware customer display from Aures. It has\ 1170 | \ some graphics support via vendor-provided tools, but is otherwise text-only.\n" 1171 | 1172 | vendor: "Aures" 1173 | 1174 | P822D: 1175 | 1176 | codePages: 1177 | 1178 | 0: "CP437" 1179 | 1180 | 1: "KATAKANA" 1181 | 1182 | 10: "Unknown" 1183 | 1184 | 16: "CP1252" 1185 | 1186 | 17: "CP866" 1187 | 1188 | 18: "CP852" 1189 | 1190 | 19: "CP858" 1191 | 1192 | 2: "CP850" 1193 | 1194 | 20: "Unknown" 1195 | 1196 | 21: "Unknown" 1197 | 1198 | 22: "Unknown" 1199 | 1200 | 23: "Unknown" 1201 | 1202 | 24: "CP747" 1203 | 1204 | 25: "CP1257" 1205 | 1206 | 255: "Unknown" 1207 | 1208 | 27: "Unknown" 1209 | 1210 | 28: "CP864" 1211 | 1212 | 29: "CP1001" 1213 | 1214 | 3: "CP860" 1215 | 1216 | 30: "Unknown" 1217 | 1218 | 31: "Unknown" 1219 | 1220 | 32: "CP1255" 1221 | 1222 | 33: "CP720" 1223 | 1224 | 34: "CP1256" 1225 | 1226 | 35: "CP1257" 1227 | 1228 | 4: "CP863" 1229 | 1230 | 5: "CP865" 1231 | 1232 | 50: "CP437" 1233 | 1234 | 51: "Unknown" 1235 | 1236 | 52: "CP437" 1237 | 1238 | 53: "CP858" 1239 | 1240 | 54: "CP852" 1241 | 1242 | 55: "CP860" 1243 | 1244 | 56: "CP861" 1245 | 1246 | 57: "CP863" 1247 | 1248 | 58: "CP865" 1249 | 1250 | 59: "CP866" 1251 | 1252 | 6: "Unknown" 1253 | 1254 | 60: "CP855" 1255 | 1256 | 61: "CP857" 1257 | 1258 | 62: "CP862" 1259 | 1260 | 63: "CP864" 1261 | 1262 | 64: "CP737" 1263 | 1264 | 65: "CP851" 1265 | 1266 | 66: "CP869" 1267 | 1268 | 67: "CP928" 1269 | 1270 | 68: "CP772" 1271 | 1272 | 69: "CP774" 1273 | 1274 | 7: "Unknown" 1275 | 1276 | 70: "CP874" 1277 | 1278 | 71: "CP1252" 1279 | 1280 | 72: "CP1250" 1281 | 1282 | 73: "CP1251" 1283 | 1284 | 74: "CP3840" 1285 | 1286 | 75: "CP3841" 1287 | 1288 | 76: "CP3843" 1289 | 1290 | 77: "CP3844" 1291 | 1292 | 78: "CP3845" 1293 | 1294 | 79: "CP3846" 1295 | 1296 | 8: "Unknown" 1297 | 1298 | 80: "CP3847" 1299 | 1300 | 81: "CP3848" 1301 | 1302 | 82: "CP1001" 1303 | 1304 | 83: "CP2001" 1305 | 1306 | 84: "CP3001" 1307 | 1308 | 85: "CP3002" 1309 | 1310 | 86: "CP3011" 1311 | 1312 | 87: "CP3012" 1313 | 1314 | 88: "CP3021" 1315 | 1316 | 89: "CP3041" 1317 | 1318 | 9: "Unknown" 1319 | 1320 | colors: 1321 | 0: "black" 1322 | 1323 | features: 1324 | barcodeA: yes 1325 | barcodeB: yes 1326 | bitImageColumn: yes 1327 | bitImageRaster: yes 1328 | graphics: no 1329 | highDensity: yes 1330 | paperFullCut: yes 1331 | paperPartCut: yes 1332 | pdf417Code: yes 1333 | pulseBel: no 1334 | pulseStandard: yes 1335 | qrCode: yes 1336 | starCommands: no 1337 | 1338 | fonts: 1339 | 0: 1340 | columns: 42 1341 | name: "Font A" 1342 | 1: 1343 | columns: 56 1344 | name: "Font B" 1345 | 1346 | media: 1347 | width: 1348 | mm: 79.5 1349 | pixels: 576 1350 | 1351 | name: "P822D" 1352 | 1353 | notes: "" 1354 | 1355 | vendor: "PBM" 1356 | 1357 | POS-5890: 1358 | 1359 | codePages: 1360 | 1361 | 0: "CP437" 1362 | 1363 | 1: "CP932" 1364 | 1365 | 10: "Unknown" 1366 | 1367 | 16: "CP1252" 1368 | 1369 | 17: "CP866" 1370 | 1371 | 18: "CP852" 1372 | 1373 | 19: "CP858" 1374 | 1375 | 2: "CP850" 1376 | 1377 | 20: "Unknown" 1378 | 1379 | 21: "Unknown" 1380 | 1381 | 22: "Unknown" 1382 | 1383 | 23: "Unknown" 1384 | 1385 | 24: "CP747" 1386 | 1387 | 25: "CP1257" 1388 | 1389 | 255: "Unknown" 1390 | 1391 | 27: "CP1258" 1392 | 1393 | 28: "CP864" 1394 | 1395 | 3: "CP860" 1396 | 1397 | 31: "Unknown" 1398 | 1399 | 32: "CP1255" 1400 | 1401 | 4: "CP863" 1402 | 1403 | 5: "CP865" 1404 | 1405 | 50: "CP437" 1406 | 1407 | 52: "CP437" 1408 | 1409 | 53: "CP858" 1410 | 1411 | 54: "CP852" 1412 | 1413 | 55: "CP860" 1414 | 1415 | 56: "CP861" 1416 | 1417 | 57: "CP863" 1418 | 1419 | 58: "CP865" 1420 | 1421 | 59: "CP866" 1422 | 1423 | 6: "Unknown" 1424 | 1425 | 60: "CP855" 1426 | 1427 | 61: "CP857" 1428 | 1429 | 62: "CP862" 1430 | 1431 | 63: "CP864" 1432 | 1433 | 64: "CP737" 1434 | 1435 | 65: "CP851" 1436 | 1437 | 66: "CP869" 1438 | 1439 | 68: "CP772" 1440 | 1441 | 69: "CP774" 1442 | 1443 | 7: "Unknown" 1444 | 1445 | 71: "CP1252" 1446 | 1447 | 72: "CP1250" 1448 | 1449 | 73: "CP1251" 1450 | 1451 | 74: "CP3840" 1452 | 1453 | 76: "CP3843" 1454 | 1455 | 77: "CP3844" 1456 | 1457 | 78: "CP3845" 1458 | 1459 | 79: "CP3846" 1460 | 1461 | 8: "Unknown" 1462 | 1463 | 80: "CP3847" 1464 | 1465 | 81: "CP3848" 1466 | 1467 | 83: "CP2001" 1468 | 1469 | 84: "CP3001" 1470 | 1471 | 85: "CP3002" 1472 | 1473 | 86: "CP3011" 1474 | 1475 | 87: "CP3012" 1476 | 1477 | 88: "CP3021" 1478 | 1479 | 89: "CP3041" 1480 | 1481 | 9: "Unknown" 1482 | 1483 | 90: "CP1253" 1484 | 1485 | 91: "CP1254" 1486 | 1487 | 92: "CP1256" 1488 | 1489 | 93: "CP720" 1490 | 1491 | 94: "CP1258" 1492 | 1493 | 95: "CP775" 1494 | 1495 | 96: "Unknown" 1496 | 1497 | colors: 1498 | 0: "black" 1499 | 1500 | features: 1501 | barcodeA: no 1502 | barcodeB: no 1503 | bitImageColumn: no 1504 | bitImageRaster: yes 1505 | graphics: no 1506 | highDensity: yes 1507 | paperFullCut: no 1508 | paperPartCut: no 1509 | pdf417Code: no 1510 | pulseBel: no 1511 | pulseStandard: yes 1512 | qrCode: no 1513 | starCommands: no 1514 | 1515 | fonts: 1516 | 0: 1517 | columns: 32 1518 | name: "Font A" 1519 | 1: 1520 | columns: 42 1521 | name: "Font B" 1522 | 1523 | media: 1524 | dpi: 203 1525 | width: 1526 | mm: 57.5 1527 | pixels: 384 1528 | 1529 | name: "POS5890 Series" 1530 | 1531 | notes: "POS-5890 thermal printer series, also marketed under various other names.\n" 1532 | 1533 | vendor: "Zjiang" 1534 | 1535 | RP-F10-58mm: 1536 | 1537 | codePages: 1538 | 0: "CP437" 1539 | 1: "KATAKANA" 1540 | 13: "CP857" 1541 | 14: "CP737" 1542 | 16: "CP1252" 1543 | 17: "CP866" 1544 | 18: "CP852" 1545 | 19: "CP858" 1546 | 2: "CP850" 1547 | 255: "Unknown" 1548 | 3: "CP860" 1549 | 34: "CP855" 1550 | 37: "CP864" 1551 | 4: "CP863" 1552 | 45: "CP1250" 1553 | 46: "CP1251" 1554 | 47: "CP1253" 1555 | 48: "CP1254" 1556 | 5: "CP865" 1557 | 1558 | colors: 1559 | 0: "black" 1560 | 1561 | features: 1562 | barcodeA: yes 1563 | barcodeB: yes 1564 | bitImageColumn: yes 1565 | bitImageRaster: yes 1566 | graphics: yes 1567 | highDensity: yes 1568 | paperFullCut: yes 1569 | paperPartCut: yes 1570 | pdf417Code: yes 1571 | pulseBel: no 1572 | pulseStandard: yes 1573 | qrCode: yes 1574 | starCommands: no 1575 | 1576 | fonts: 1577 | 0: 1578 | columns: 36 1579 | name: "Font A" 1580 | 1: 1581 | columns: 54 1582 | name: "Font B" 1583 | 1584 | media: 1585 | dpi: 203 1586 | width: 1587 | mm: 54 1588 | pixels: 432 1589 | 1590 | name: "RP-F10" 1591 | 1592 | notes: "Seiko RP-F10 series with 58mm paper\n" 1593 | 1594 | vendor: "Seiko" 1595 | 1596 | RP-F10-80mm: 1597 | 1598 | codePages: 1599 | 0: "CP437" 1600 | 1: "KATAKANA" 1601 | 13: "CP857" 1602 | 14: "CP737" 1603 | 16: "CP1252" 1604 | 17: "CP866" 1605 | 18: "CP852" 1606 | 19: "CP858" 1607 | 2: "CP850" 1608 | 255: "Unknown" 1609 | 3: "CP860" 1610 | 34: "CP855" 1611 | 37: "CP864" 1612 | 4: "CP863" 1613 | 45: "CP1250" 1614 | 46: "CP1251" 1615 | 47: "CP1253" 1616 | 48: "CP1254" 1617 | 5: "CP865" 1618 | 1619 | colors: 1620 | 0: "black" 1621 | 1622 | features: 1623 | barcodeA: yes 1624 | barcodeB: yes 1625 | bitImageColumn: yes 1626 | bitImageRaster: yes 1627 | graphics: yes 1628 | highDensity: yes 1629 | paperFullCut: yes 1630 | paperPartCut: yes 1631 | pdf417Code: yes 1632 | pulseBel: no 1633 | pulseStandard: yes 1634 | qrCode: yes 1635 | starCommands: no 1636 | 1637 | fonts: 1638 | 0: 1639 | columns: 48 1640 | name: "Font A" 1641 | 1: 1642 | columns: 72 1643 | name: "Font B" 1644 | 1645 | media: 1646 | dpi: 203 1647 | width: 1648 | mm: 72 1649 | pixels: 576 1650 | 1651 | name: "RP-F10" 1652 | 1653 | notes: "Seiko RP-F10 series with 80mm paper\n" 1654 | 1655 | vendor: "Seiko" 1656 | 1657 | RP326: 1658 | 1659 | codePages: 1660 | 1661 | 0: "CP437" 1662 | 1663 | 1: "KATAKANA" 1664 | 1665 | 10: "Unknown" 1666 | 1667 | 15: "CP862" 1668 | 1669 | 16: "CP1252" 1670 | 1671 | 17: "CP1253" 1672 | 1673 | 18: "CP852" 1674 | 1675 | 19: "CP858" 1676 | 1677 | 2: "CP850" 1678 | 1679 | 20: "Unknown" 1680 | 1681 | 21: "Unknown" 1682 | 1683 | 22: "Unknown" 1684 | 1685 | 23: "ISO_8859-1" 1686 | 1687 | 24: "CP737" 1688 | 1689 | 25: "CP1257" 1690 | 1691 | 26: "Unknown" 1692 | 1693 | 27: "CP720" 1694 | 1695 | 28: "CP855" 1696 | 1697 | 29: "CP857" 1698 | 1699 | 3: "CP860" 1700 | 1701 | 30: "CP1250" 1702 | 1703 | 31: "CP775" 1704 | 1705 | 32: "CP1254" 1706 | 1707 | 33: "CP1255" 1708 | 1709 | 34: "CP1256" 1710 | 1711 | 35: "CP1258" 1712 | 1713 | 36: "ISO_8859-2" 1714 | 1715 | 37: "ISO_8859-3" 1716 | 1717 | 38: "ISO_8859-4" 1718 | 1719 | 39: "ISO_8859-5" 1720 | 1721 | 4: "CP863" 1722 | 1723 | 40: "ISO_8859-6" 1724 | 1725 | 41: "ISO_8859-7" 1726 | 1727 | 42: "ISO_8859-8" 1728 | 1729 | 43: "ISO_8859-9" 1730 | 1731 | 44: "ISO_8859-15" 1732 | 1733 | 45: "Unknown" 1734 | 1735 | 46: "CP856" 1736 | 1737 | 47: "CP874" 1738 | 1739 | 5: "CP865" 1740 | 1741 | 6: "CP1251" 1742 | 1743 | 7: "CP866" 1744 | 1745 | 8: "Unknown" 1746 | 1747 | 9: "Unknown" 1748 | 1749 | colors: 1750 | 0: "black" 1751 | 1752 | features: 1753 | barcodeA: yes 1754 | barcodeB: yes 1755 | bitImageColumn: yes 1756 | bitImageRaster: yes 1757 | graphics: no 1758 | highDensity: yes 1759 | paperFullCut: yes 1760 | paperPartCut: yes 1761 | pdf417Code: yes 1762 | pulseBel: no 1763 | pulseStandard: yes 1764 | qrCode: yes 1765 | starCommands: no 1766 | 1767 | fonts: 1768 | 0: 1769 | columns: 42 1770 | name: "Font A" 1771 | 1: 1772 | columns: 56 1773 | name: "Font B" 1774 | 1775 | media: 1776 | dpi: 203 1777 | width: 1778 | mm: "Unknown" 1779 | pixels: "Unknown" 1780 | 1781 | name: "RP326" 1782 | 1783 | notes: "" 1784 | 1785 | vendor: "Rongta" 1786 | 1787 | SP2000: 1788 | 1789 | codePages: 1790 | 1791 | 0: "CP437" 1792 | 1793 | 1: "CP437" 1794 | 1795 | 10: "CP866" 1796 | 1797 | 100: "Unknown" 1798 | 1799 | 101: "Unknown" 1800 | 1801 | 102: "Unknown" 1802 | 1803 | 11: "CP855" 1804 | 1805 | 12: "CP857" 1806 | 1807 | 13: "CP862" 1808 | 1809 | 14: "CP864" 1810 | 1811 | 15: "CP737" 1812 | 1813 | 16: "CP851" 1814 | 1815 | 17: "CP869" 1816 | 1817 | 18: "CP928" 1818 | 1819 | 19: "CP772" 1820 | 1821 | 2: "CP932" 1822 | 1823 | 20: "CP774" 1824 | 1825 | 21: "CP874" 1826 | 1827 | 255: "Unknown" 1828 | 1829 | 3: "CP437" 1830 | 1831 | 32: "CP1252" 1832 | 1833 | 33: "CP1250" 1834 | 1835 | 34: "CP1251" 1836 | 1837 | 4: "CP858" 1838 | 1839 | 5: "CP852" 1840 | 1841 | 6: "CP860" 1842 | 1843 | 64: "CP3840" 1844 | 1845 | 65: "CP3841" 1846 | 1847 | 66: "CP3843" 1848 | 1849 | 67: "CP3844" 1850 | 1851 | 68: "CP3845" 1852 | 1853 | 69: "CP3846" 1854 | 1855 | 7: "CP861" 1856 | 1857 | 70: "CP3847" 1858 | 1859 | 71: "CP3848" 1860 | 1861 | 72: "CP1001" 1862 | 1863 | 73: "CP2001" 1864 | 1865 | 74: "CP3001" 1866 | 1867 | 75: "CP3002" 1868 | 1869 | 76: "CP3011" 1870 | 1871 | 77: "CP3012" 1872 | 1873 | 78: "CP3021" 1874 | 1875 | 79: "CP3041" 1876 | 1877 | 8: "CP863" 1878 | 1879 | 9: "CP865" 1880 | 1881 | 96: "Unknown" 1882 | 1883 | 97: "Unknown" 1884 | 1885 | 98: "Unknown" 1886 | 1887 | 99: "Unknown" 1888 | 1889 | colors: 1890 | 0: "black" 1891 | 1892 | features: 1893 | barcodeA: yes 1894 | barcodeB: yes 1895 | bitImageColumn: yes 1896 | bitImageRaster: yes 1897 | graphics: yes 1898 | highDensity: yes 1899 | paperFullCut: yes 1900 | paperPartCut: yes 1901 | pdf417Code: yes 1902 | pulseBel: no 1903 | pulseStandard: yes 1904 | qrCode: yes 1905 | starCommands: yes 1906 | 1907 | fonts: 1908 | 0: 1909 | columns: 42 1910 | name: "Font A" 1911 | 1: 1912 | columns: 56 1913 | name: "Font B" 1914 | 1915 | media: 1916 | dpi: 85 1917 | width: 1918 | mm: "Unknown" 1919 | pixels: "Unknown" 1920 | 1921 | name: "SP2000 Series" 1922 | 1923 | notes: "Star SP2000 impact printer series with ESC/POS emulation enabled" 1924 | 1925 | vendor: "Star Micronics" 1926 | 1927 | SRP-S300: 1928 | 1929 | codePages: 1930 | 0: "CP437" 1931 | 1: "CP932" 1932 | 16: "CP1252" 1933 | 17: "CP866" 1934 | 18: "CP852" 1935 | 19: "CP858" 1936 | 2: "CP850" 1937 | 21: "CP874" 1938 | 22: "Unknown" 1939 | 23: "Unknown" 1940 | 24: "Unknown" 1941 | 25: "Unknown" 1942 | 255: "Unknown" 1943 | 26: "Unknown" 1944 | 3: "CP860" 1945 | 30: "TCVN-3-1" 1946 | 31: "TCVN-3-2" 1947 | 33: "CP775" 1948 | 34: "CP855" 1949 | 35: "CP861" 1950 | 36: "CP862" 1951 | 37: "CP864" 1952 | 38: "CP869" 1953 | 39: "ISO_8859-2" 1954 | 4: "CP863" 1955 | 40: "ISO_8859-15" 1956 | 41: "CP1098" 1957 | 42: "CP774" 1958 | 47: "CP1253" 1959 | 49: "CP1255" 1960 | 5: "CP865" 1961 | 50: "CP1256" 1962 | 1963 | colors: 1964 | 0: "black" 1965 | 1966 | features: 1967 | barcodeA: yes 1968 | barcodeB: yes 1969 | bitImageColumn: yes 1970 | bitImageRaster: yes 1971 | graphics: yes 1972 | highDensity: yes 1973 | paperFullCut: yes 1974 | paperPartCut: yes 1975 | pdf417Code: yes 1976 | pulseBel: no 1977 | pulseStandard: yes 1978 | qrCode: yes 1979 | starCommands: no 1980 | 1981 | fonts: 1982 | 0: 1983 | columns: 48 1984 | name: "Font A" 1985 | 1: 1986 | columns: 64 1987 | name: "Font B" 1988 | 2: 1989 | columns: 64 1990 | name: "Font C" 1991 | 1992 | media: 1993 | dpi: 203 1994 | width: 1995 | mm: 80 1996 | pixels: 640 1997 | 1998 | name: "SRP-S300" 1999 | 2000 | notes: "Bixolon SRP-S300 profile" 2001 | 2002 | vendor: "Bixolon" 2003 | 2004 | Sunmi-V2: 2005 | 2006 | codePages: 2007 | 0: "CP437" 2008 | 13: "CP857" 2009 | 14: "CP737" 2010 | 15: "ISO_8859-7" 2011 | 16: "CP1252" 2012 | 17: "CP866" 2013 | 18: "CP852" 2014 | 19: "CP858" 2015 | 2: "CP850" 2016 | 21: "CP874" 2017 | 254: "CP855" 2018 | 3: "CP860" 2019 | 33: "CP775" 2020 | 34: "CP855" 2021 | 36: "CP862" 2022 | 37: "CP864" 2023 | 4: "CP863" 2024 | 5: "CP865" 2025 | 2026 | colors: 2027 | 0: "black" 2028 | 2029 | features: 2030 | barcodeA: yes 2031 | barcodeB: yes 2032 | bitImageColumn: no 2033 | bitImageRaster: yes 2034 | graphics: no 2035 | highDensity: yes 2036 | paperFullCut: no 2037 | paperPartCut: no 2038 | pdf417Code: yes 2039 | pulseBel: no 2040 | pulseStandard: yes 2041 | qrCode: yes 2042 | starCommands: no 2043 | 2044 | fonts: 2045 | 0: 2046 | columns: 32 2047 | name: "Font A" 2048 | 1: 2049 | columns: 42 2050 | name: "Font B" 2051 | 2052 | media: 2053 | width: 2054 | mm: 57.5 2055 | pixels: 384 2056 | 2057 | name: "Sunmi V2" 2058 | 2059 | notes: "Sunmi mini-POS Android device with a built-in Virtual Bluetooth thermal\ 2060 | \ printer.\n" 2061 | 2062 | vendor: "Sunmi" 2063 | 2064 | T-1: 2065 | codePages: 2066 | 0: "CP437" 2067 | 1: "KATAKANA" 2068 | 19: "CP858" 2069 | 2: "CP850" 2070 | 255: "Unknown" 2071 | 3: "CP860" 2072 | 4: "CP863" 2073 | 5: "CP865" 2074 | colors: 2075 | 0: "black" 2076 | features: 2077 | barcodeA: yes 2078 | barcodeB: yes 2079 | bitImageColumn: yes 2080 | bitImageRaster: yes 2081 | graphics: yes 2082 | highDensity: yes 2083 | paperFullCut: yes 2084 | paperPartCut: yes 2085 | pdf417Code: yes 2086 | pulseBel: no 2087 | pulseStandard: yes 2088 | qrCode: yes 2089 | starCommands: no 2090 | fonts: 2091 | 0: 2092 | columns: 42 2093 | name: "Font A" 2094 | 1: 2095 | columns: 56 2096 | name: "Font B" 2097 | media: 2098 | dpi: 180 2099 | width: 2100 | mm: 80 2101 | pixels: 504 2102 | name: "T-1" 2103 | notes: "Metapace T-1 Thermal Printer Rev. 1.00" 2104 | vendor: "Metapace" 2105 | 2106 | TEP-200M: 2107 | 2108 | codePages: 2109 | 2110 | 0: "CP437" 2111 | 2112 | 1: "CP932" 2113 | 2114 | 11: "CP851" 2115 | 2116 | 12: "CP853" 2117 | 2118 | 13: "CP857" 2119 | 2120 | 14: "CP737" 2121 | 2122 | 15: "ISO_8859-7" 2123 | 2124 | 16: "CP1252" 2125 | 2126 | 17: "CP866" 2127 | 2128 | 18: "CP852" 2129 | 2130 | 19: "CP858" 2131 | 2132 | 2: "CP850" 2133 | 2134 | 20: "Unknown" 2135 | 2136 | 21: "CP874" 2137 | 2138 | 22: "Unknown" 2139 | 2140 | 23: "Unknown" 2141 | 2142 | 24: "Unknown" 2143 | 2144 | 25: "Unknown" 2145 | 2146 | 254: "Unknown" 2147 | 2148 | 255: "Unknown" 2149 | 2150 | 26: "Unknown" 2151 | 2152 | 3: "CP860" 2153 | 2154 | 30: "TCVN-3-1" 2155 | 2156 | 31: "TCVN-3-2" 2157 | 2158 | 32: "CP720" 2159 | 2160 | 33: "CP775" 2161 | 2162 | 34: "CP855" 2163 | 2164 | 35: "CP861" 2165 | 2166 | 36: "CP862" 2167 | 2168 | 37: "CP864" 2169 | 2170 | 38: "CP869" 2171 | 2172 | 39: "ISO_8859-2" 2173 | 2174 | 4: "CP863" 2175 | 2176 | 40: "ISO_8859-15" 2177 | 2178 | 41: "CP1098" 2179 | 2180 | 42: "CP774" 2181 | 2182 | 43: "CP772" 2183 | 2184 | 44: "CP1125" 2185 | 2186 | 45: "CP1250" 2187 | 2188 | 46: "CP1251" 2189 | 2190 | 47: "CP1253" 2191 | 2192 | 48: "CP1254" 2193 | 2194 | 49: "CP1255" 2195 | 2196 | 5: "CP865" 2197 | 2198 | 50: "CP1256" 2199 | 2200 | 51: "CP1257" 2201 | 2202 | 52: "CP1258" 2203 | 2204 | 53: "RK1048" 2205 | 2206 | 6: "Unknown" 2207 | 2208 | 66: "Unknown" 2209 | 2210 | 67: "Unknown" 2211 | 2212 | 68: "Unknown" 2213 | 2214 | 69: "Unknown" 2215 | 2216 | 7: "Unknown" 2217 | 2218 | 70: "Unknown" 2219 | 2220 | 71: "Unknown" 2221 | 2222 | 72: "Unknown" 2223 | 2224 | 73: "Unknown" 2225 | 2226 | 74: "Unknown" 2227 | 2228 | 75: "Unknown" 2229 | 2230 | 8: "Unknown" 2231 | 2232 | 82: "Unknown" 2233 | 2234 | colors: 2235 | 0: "black" 2236 | 2237 | features: 2238 | barcodeA: yes 2239 | barcodeB: yes 2240 | bitImageColumn: yes 2241 | bitImageRaster: yes 2242 | graphics: yes 2243 | highDensity: yes 2244 | paperFullCut: yes 2245 | paperPartCut: yes 2246 | pdf417Code: yes 2247 | pulseBel: no 2248 | pulseStandard: yes 2249 | qrCode: yes 2250 | starCommands: no 2251 | 2252 | fonts: 2253 | 0: 2254 | columns: 42 2255 | name: "Font A" 2256 | 1: 2257 | columns: 56 2258 | name: "Font B" 2259 | 2260 | media: 2261 | dpi: 203 2262 | width: 2263 | mm: "Unknown" 2264 | pixels: "Unknown" 2265 | 2266 | name: "TEP200M Series" 2267 | 2268 | notes: "" 2269 | 2270 | vendor: "EPOS" 2271 | 2272 | TH230: 2273 | 2274 | codePages: 2275 | 0: "CP437" 2276 | 1: "CP850" 2277 | 10: "CP737" 2278 | 11: "CP874" 2279 | 12: "CP857" 2280 | 16: "CP1254" 2281 | 17: "CP1250" 2282 | 18: "Unknown" 2283 | 19: "Unknown" 2284 | 2: "CP852" 2285 | 20: "Unknown" 2286 | 21: "Unknown" 2287 | 22: "CP864" 2288 | 23: "CP720" 2289 | 24: "CP1256" 2290 | 25: "Unknown" 2291 | 26: "KATAKANA" 2292 | 27: "CP775" 2293 | 28: "CP1257" 2294 | 29: "Unknown" 2295 | 3: "CP860" 2296 | 4: "CP863" 2297 | 5: "CP865" 2298 | 6: "CP858" 2299 | 7: "CP866" 2300 | 8: "CP1252" 2301 | 9: "CP862" 2302 | 2303 | colors: 2304 | 0: "black" 2305 | 2306 | features: 2307 | barcodeA: yes 2308 | barcodeB: yes 2309 | bitImageColumn: yes 2310 | bitImageRaster: yes 2311 | graphics: yes 2312 | highDensity: yes 2313 | paperFullCut: yes 2314 | paperPartCut: yes 2315 | pdf417Code: no 2316 | pulseBel: no 2317 | pulseStandard: yes 2318 | qrCode: no 2319 | starCommands: no 2320 | 2321 | fonts: 2322 | 0: 2323 | columns: 44 2324 | name: "Font A" 2325 | 1: 2326 | columns: 57 2327 | name: "Font B" 2328 | 2329 | media: 2330 | dpi: 203 2331 | width: 2332 | mm: 72 2333 | pixels: 576 2334 | 2335 | name: "TH230" 2336 | 2337 | notes: "Profile for TH230. Use bitImageColumn to print properly.\n" 2338 | 2339 | vendor: "Wincor Nixdorf" 2340 | 2341 | TH230Plus: 2342 | 2343 | codePages: 2344 | 0: "CP437" 2345 | 1: "CP850" 2346 | 10: "CP737" 2347 | 11: "CP874" 2348 | 12: "CP857" 2349 | 16: "CP1254" 2350 | 17: "CP1250" 2351 | 18: "Unknown" 2352 | 19: "Unknown" 2353 | 2: "CP852" 2354 | 20: "Unknown" 2355 | 21: "Unknown" 2356 | 22: "CP864" 2357 | 23: "CP720" 2358 | 24: "CP1256" 2359 | 25: "Unknown" 2360 | 26: "KATAKANA" 2361 | 27: "CP775" 2362 | 28: "CP1257" 2363 | 29: "Unknown" 2364 | 3: "CP860" 2365 | 4: "CP863" 2366 | 5: "CP865" 2367 | 6: "CP858" 2368 | 7: "CP866" 2369 | 8: "CP1252" 2370 | 9: "CP862" 2371 | 2372 | colors: 2373 | 0: "black" 2374 | 2375 | features: 2376 | barcodeA: yes 2377 | barcodeB: yes 2378 | bitImageColumn: yes 2379 | bitImageRaster: yes 2380 | graphics: yes 2381 | highDensity: yes 2382 | paperFullCut: yes 2383 | paperPartCut: yes 2384 | pdf417Code: yes 2385 | pulseBel: no 2386 | pulseStandard: yes 2387 | qrCode: yes 2388 | starCommands: no 2389 | 2390 | fonts: 2391 | 0: 2392 | columns: 44 2393 | name: "Font A" 2394 | 1: 2395 | columns: 57 2396 | name: "Font B" 2397 | 2398 | media: 2399 | dpi: 203 2400 | width: 2401 | mm: 72 2402 | pixels: 576 2403 | 2404 | name: "TH230+" 2405 | 2406 | notes: "Profile for TH230+. Use bitImageColumn to print properly. TH230+ supports\ 2407 | \ native qr codes and PDF417 codes\n" 2408 | 2409 | vendor: "Wincor Nixdorf" 2410 | 2411 | TM-L90: 2412 | 2413 | codePages: 2414 | 2415 | 0: "CP437" 2416 | 2417 | 1: "CP932" 2418 | 2419 | 11: "CP851" 2420 | 2421 | 12: "CP853" 2422 | 2423 | 13: "CP857" 2424 | 2425 | 14: "CP737" 2426 | 2427 | 15: "ISO_8859-7" 2428 | 2429 | 16: "CP1252" 2430 | 2431 | 17: "CP866" 2432 | 2433 | 18: "CP852" 2434 | 2435 | 19: "CP858" 2436 | 2437 | 2: "CP850" 2438 | 2439 | 20: "Unknown" 2440 | 2441 | 21: "CP874" 2442 | 2443 | 22: "Unknown" 2444 | 2445 | 23: "Unknown" 2446 | 2447 | 24: "Unknown" 2448 | 2449 | 25: "Unknown" 2450 | 2451 | 255: "Unknown" 2452 | 2453 | 26: "Unknown" 2454 | 2455 | 3: "CP860" 2456 | 2457 | 30: "TCVN-3-1" 2458 | 2459 | 31: "TCVN-3-2" 2460 | 2461 | 32: "CP720" 2462 | 2463 | 33: "CP775" 2464 | 2465 | 34: "CP855" 2466 | 2467 | 35: "CP861" 2468 | 2469 | 36: "CP862" 2470 | 2471 | 37: "CP864" 2472 | 2473 | 38: "CP869" 2474 | 2475 | 39: "ISO_8859-2" 2476 | 2477 | 4: "CP863" 2478 | 2479 | 40: "ISO_8859-15" 2480 | 2481 | 41: "CP1098" 2482 | 2483 | 42: "CP774" 2484 | 2485 | 43: "CP772" 2486 | 2487 | 44: "CP1125" 2488 | 2489 | 45: "CP1250" 2490 | 2491 | 46: "CP1251" 2492 | 2493 | 47: "CP1253" 2494 | 2495 | 48: "CP1254" 2496 | 2497 | 49: "CP1255" 2498 | 2499 | 5: "CP865" 2500 | 2501 | 50: "CP1256" 2502 | 2503 | 51: "CP1257" 2504 | 2505 | 52: "CP1258" 2506 | 2507 | 53: "RK1048" 2508 | 2509 | colors: 2510 | 0: "black" 2511 | 2512 | features: 2513 | barcodeA: yes 2514 | barcodeB: yes 2515 | bitImageColumn: yes 2516 | bitImageRaster: yes 2517 | graphics: yes 2518 | highDensity: yes 2519 | paperFullCut: yes 2520 | paperPartCut: yes 2521 | pdf417Code: yes 2522 | pulseBel: no 2523 | pulseStandard: yes 2524 | qrCode: yes 2525 | starCommands: no 2526 | 2527 | fonts: 2528 | 0: 2529 | columns: 48 2530 | name: "Font A" 2531 | 1: 2532 | columns: 64 2533 | name: "Font B" 2534 | 2535 | media: 2536 | dpi: 203 2537 | width: 2538 | mm: 80 2539 | pixels: 576 2540 | 2541 | name: "TM-L90" 2542 | 2543 | notes: "Epson TM-L90 profile. The standard 80mm paper width version was used here.\ 2544 | \ The code page mapping is documented in the \"TM-L90 Technical Reference Guide\"\ 2545 | .\n" 2546 | 2547 | vendor: "Epson" 2548 | 2549 | TM-P80: 2550 | 2551 | codePages: 2552 | 2553 | 0: "CP437" 2554 | 2555 | 1: "CP932" 2556 | 2557 | 11: "CP851" 2558 | 2559 | 12: "CP853" 2560 | 2561 | 13: "CP857" 2562 | 2563 | 14: "CP737" 2564 | 2565 | 15: "ISO_8859-7" 2566 | 2567 | 16: "CP1252" 2568 | 2569 | 17: "CP866" 2570 | 2571 | 18: "CP852" 2572 | 2573 | 19: "CP858" 2574 | 2575 | 2: "CP850" 2576 | 2577 | 20: "Unknown" 2578 | 2579 | 21: "CP874" 2580 | 2581 | 22: "Unknown" 2582 | 2583 | 23: "Unknown" 2584 | 2585 | 24: "Unknown" 2586 | 2587 | 25: "Unknown" 2588 | 2589 | 254: "Unknown" 2590 | 2591 | 255: "Unknown" 2592 | 2593 | 26: "Unknown" 2594 | 2595 | 3: "CP860" 2596 | 2597 | 30: "TCVN-3-1" 2598 | 2599 | 31: "TCVN-3-2" 2600 | 2601 | 32: "CP720" 2602 | 2603 | 33: "CP775" 2604 | 2605 | 34: "CP855" 2606 | 2607 | 35: "CP861" 2608 | 2609 | 36: "CP862" 2610 | 2611 | 37: "CP864" 2612 | 2613 | 38: "CP869" 2614 | 2615 | 39: "ISO_8859-2" 2616 | 2617 | 4: "CP863" 2618 | 2619 | 40: "ISO_8859-15" 2620 | 2621 | 41: "CP1098" 2622 | 2623 | 42: "CP774" 2624 | 2625 | 43: "CP772" 2626 | 2627 | 44: "CP1125" 2628 | 2629 | 45: "CP1250" 2630 | 2631 | 46: "CP1251" 2632 | 2633 | 47: "CP1253" 2634 | 2635 | 48: "CP1254" 2636 | 2637 | 49: "CP1255" 2638 | 2639 | 5: "CP865" 2640 | 2641 | 50: "CP1256" 2642 | 2643 | 51: "CP1257" 2644 | 2645 | 52: "CP1258" 2646 | 2647 | 53: "RK1048" 2648 | 2649 | 6: "Unknown" 2650 | 2651 | 66: "Unknown" 2652 | 2653 | 67: "Unknown" 2654 | 2655 | 68: "Unknown" 2656 | 2657 | 69: "Unknown" 2658 | 2659 | 7: "Unknown" 2660 | 2661 | 70: "Unknown" 2662 | 2663 | 71: "Unknown" 2664 | 2665 | 72: "Unknown" 2666 | 2667 | 73: "Unknown" 2668 | 2669 | 74: "Unknown" 2670 | 2671 | 75: "Unknown" 2672 | 2673 | 8: "Unknown" 2674 | 2675 | 82: "Unknown" 2676 | 2677 | colors: 2678 | 0: "black" 2679 | 2680 | features: 2681 | barcodeA: yes 2682 | barcodeB: yes 2683 | bitImageColumn: yes 2684 | bitImageRaster: yes 2685 | graphics: yes 2686 | highDensity: yes 2687 | paperFullCut: yes 2688 | paperPartCut: yes 2689 | pdf417Code: yes 2690 | pulseBel: no 2691 | pulseStandard: yes 2692 | qrCode: yes 2693 | starCommands: no 2694 | 2695 | fonts: 2696 | 0: 2697 | columns: 42 2698 | name: "Font A" 2699 | 1: 2700 | columns: 56 2701 | name: "Font B" 2702 | 2: 2703 | columns: 24 2704 | name: "Kanji" 2705 | 2706 | media: 2707 | dpi: 203 2708 | width: 2709 | mm: 72 2710 | pixels: 576 2711 | 2712 | name: "TM-P80" 2713 | 2714 | notes: "Portable printer (48-column mode)" 2715 | 2716 | vendor: "Epson" 2717 | 2718 | TM-P80-42col: 2719 | 2720 | codePages: 2721 | 2722 | 0: "CP437" 2723 | 2724 | 1: "CP932" 2725 | 2726 | 11: "CP851" 2727 | 2728 | 12: "CP853" 2729 | 2730 | 13: "CP857" 2731 | 2732 | 14: "CP737" 2733 | 2734 | 15: "ISO_8859-7" 2735 | 2736 | 16: "CP1252" 2737 | 2738 | 17: "CP866" 2739 | 2740 | 18: "CP852" 2741 | 2742 | 19: "CP858" 2743 | 2744 | 2: "CP850" 2745 | 2746 | 20: "Unknown" 2747 | 2748 | 21: "CP874" 2749 | 2750 | 22: "Unknown" 2751 | 2752 | 23: "Unknown" 2753 | 2754 | 24: "Unknown" 2755 | 2756 | 25: "Unknown" 2757 | 2758 | 254: "Unknown" 2759 | 2760 | 255: "Unknown" 2761 | 2762 | 26: "Unknown" 2763 | 2764 | 3: "CP860" 2765 | 2766 | 30: "TCVN-3-1" 2767 | 2768 | 31: "TCVN-3-2" 2769 | 2770 | 32: "CP720" 2771 | 2772 | 33: "CP775" 2773 | 2774 | 34: "CP855" 2775 | 2776 | 35: "CP861" 2777 | 2778 | 36: "CP862" 2779 | 2780 | 37: "CP864" 2781 | 2782 | 38: "CP869" 2783 | 2784 | 39: "ISO_8859-2" 2785 | 2786 | 4: "CP863" 2787 | 2788 | 40: "ISO_8859-15" 2789 | 2790 | 41: "CP1098" 2791 | 2792 | 42: "CP774" 2793 | 2794 | 43: "CP772" 2795 | 2796 | 44: "CP1125" 2797 | 2798 | 45: "CP1250" 2799 | 2800 | 46: "CP1251" 2801 | 2802 | 47: "CP1253" 2803 | 2804 | 48: "CP1254" 2805 | 2806 | 49: "CP1255" 2807 | 2808 | 5: "CP865" 2809 | 2810 | 50: "CP1256" 2811 | 2812 | 51: "CP1257" 2813 | 2814 | 52: "CP1258" 2815 | 2816 | 53: "RK1048" 2817 | 2818 | 6: "Unknown" 2819 | 2820 | 66: "Unknown" 2821 | 2822 | 67: "Unknown" 2823 | 2824 | 68: "Unknown" 2825 | 2826 | 69: "Unknown" 2827 | 2828 | 7: "Unknown" 2829 | 2830 | 70: "Unknown" 2831 | 2832 | 71: "Unknown" 2833 | 2834 | 72: "Unknown" 2835 | 2836 | 73: "Unknown" 2837 | 2838 | 74: "Unknown" 2839 | 2840 | 75: "Unknown" 2841 | 2842 | 8: "Unknown" 2843 | 2844 | 82: "Unknown" 2845 | 2846 | colors: 2847 | 0: "black" 2848 | 2849 | features: 2850 | barcodeA: yes 2851 | barcodeB: yes 2852 | bitImageColumn: yes 2853 | bitImageRaster: yes 2854 | graphics: yes 2855 | highDensity: yes 2856 | paperFullCut: yes 2857 | paperPartCut: yes 2858 | pdf417Code: yes 2859 | pulseBel: no 2860 | pulseStandard: yes 2861 | qrCode: yes 2862 | starCommands: no 2863 | 2864 | fonts: 2865 | 0: 2866 | columns: 42 2867 | name: "Font A" 2868 | 1: 2869 | columns: 60 2870 | name: "Font B" 2871 | 2: 2872 | columns: 21 2873 | name: "Kanji" 2874 | 2875 | media: 2876 | width: 2877 | mm: 63.6 2878 | pixels: 546 2879 | 2880 | name: "TM-P80 (42 column mode)" 2881 | 2882 | notes: "Portable printer (42-column mode)" 2883 | 2884 | vendor: "Epson" 2885 | 2886 | TM-T20II: 2887 | 2888 | codePages: 2889 | 0: "CP437" 2890 | 1: "CP932" 2891 | 11: "CP851" 2892 | 12: "CP853" 2893 | 13: "CP857" 2894 | 14: "CP737" 2895 | 15: "ISO_8859-7" 2896 | 16: "CP1252" 2897 | 17: "CP866" 2898 | 18: "CP852" 2899 | 19: "CP858" 2900 | 2: "CP850" 2901 | 255: "Unknown" 2902 | 3: "CP860" 2903 | 30: "TCVN-3-1" 2904 | 31: "TCVN-3-2" 2905 | 32: "CP720" 2906 | 33: "CP775" 2907 | 34: "CP855" 2908 | 35: "CP861" 2909 | 36: "CP862" 2910 | 37: "CP864" 2911 | 38: "CP869" 2912 | 39: "ISO_8859-2" 2913 | 4: "CP863" 2914 | 40: "ISO_8859-15" 2915 | 41: "CP1098" 2916 | 44: "CP1125" 2917 | 45: "CP1250" 2918 | 46: "CP1251" 2919 | 47: "CP1253" 2920 | 48: "CP1254" 2921 | 49: "CP1255" 2922 | 5: "CP865" 2923 | 50: "CP1256" 2924 | 51: "CP1257" 2925 | 52: "CP1258" 2926 | 53: "RK1048" 2927 | 2928 | colors: 2929 | 0: "black" 2930 | 2931 | features: 2932 | barcodeA: yes 2933 | barcodeB: yes 2934 | bitImageColumn: yes 2935 | bitImageRaster: yes 2936 | graphics: yes 2937 | highDensity: yes 2938 | paperFullCut: yes 2939 | paperPartCut: yes 2940 | pdf417Code: yes 2941 | pulseBel: no 2942 | pulseStandard: yes 2943 | qrCode: yes 2944 | starCommands: no 2945 | 2946 | fonts: 2947 | 0: 2948 | columns: 48 2949 | name: "Font A" 2950 | 1: 2951 | columns: 64 2952 | name: "Font B" 2953 | 2954 | media: 2955 | dpi: 203 2956 | width: 2957 | mm: 72 2958 | pixels: 576 2959 | 2960 | name: "TM-T20II" 2961 | 2962 | notes: "Epson TM-T20II profile" 2963 | 2964 | vendor: "Epson" 2965 | 2966 | TM-T20II-42col: 2967 | 2968 | codePages: 2969 | 0: "CP437" 2970 | 1: "CP932" 2971 | 11: "CP851" 2972 | 12: "CP853" 2973 | 13: "CP857" 2974 | 14: "CP737" 2975 | 15: "ISO_8859-7" 2976 | 16: "CP1252" 2977 | 17: "CP866" 2978 | 18: "CP852" 2979 | 19: "CP858" 2980 | 2: "CP850" 2981 | 255: "Unknown" 2982 | 3: "CP860" 2983 | 30: "TCVN-3-1" 2984 | 31: "TCVN-3-2" 2985 | 32: "CP720" 2986 | 33: "CP775" 2987 | 34: "CP855" 2988 | 35: "CP861" 2989 | 36: "CP862" 2990 | 37: "CP864" 2991 | 38: "CP869" 2992 | 39: "ISO_8859-2" 2993 | 4: "CP863" 2994 | 40: "ISO_8859-15" 2995 | 41: "CP1098" 2996 | 44: "CP1125" 2997 | 45: "CP1250" 2998 | 46: "CP1251" 2999 | 47: "CP1253" 3000 | 48: "CP1254" 3001 | 49: "CP1255" 3002 | 5: "CP865" 3003 | 50: "CP1256" 3004 | 51: "CP1257" 3005 | 52: "CP1258" 3006 | 53: "RK1048" 3007 | 3008 | colors: 3009 | 0: "black" 3010 | 3011 | features: 3012 | barcodeA: yes 3013 | barcodeB: yes 3014 | bitImageColumn: yes 3015 | bitImageRaster: yes 3016 | graphics: yes 3017 | highDensity: yes 3018 | paperFullCut: yes 3019 | paperPartCut: yes 3020 | pdf417Code: yes 3021 | pulseBel: no 3022 | pulseStandard: yes 3023 | qrCode: yes 3024 | starCommands: no 3025 | 3026 | fonts: 3027 | 0: 3028 | columns: 42 3029 | name: "Font A" 3030 | 1: 3031 | columns: 60 3032 | name: "Font B" 3033 | 3034 | media: 3035 | width: 3036 | mm: 68.3 3037 | pixels: 546 3038 | 3039 | name: "TM-T20II (42 column mode)" 3040 | 3041 | notes: "Epson TM-T20II profile (42 column mode)" 3042 | 3043 | vendor: "Epson" 3044 | 3045 | TM-T88II: 3046 | 3047 | codePages: 3048 | 3049 | 0: "CP437" 3050 | 3051 | 1: "CP932" 3052 | 3053 | 11: "Unknown" 3054 | 3055 | 12: "Unknown" 3056 | 3057 | 13: "CP857" 3058 | 3059 | 14: "CP737" 3060 | 3061 | 15: "ISO_8859-7" 3062 | 3063 | 16: "CP1252" 3064 | 3065 | 17: "CP866" 3066 | 3067 | 18: "CP852" 3068 | 3069 | 19: "Unknown" 3070 | 3071 | 2: "CP850" 3072 | 3073 | 20: "Unknown" 3074 | 3075 | 21: "CP874" 3076 | 3077 | 22: "Unknown" 3078 | 3079 | 23: "Unknown" 3080 | 3081 | 24: "Unknown" 3082 | 3083 | 25: "Unknown" 3084 | 3085 | 254: "Unknown" 3086 | 3087 | 255: "Unknown" 3088 | 3089 | 26: "Unknown" 3090 | 3091 | 3: "CP860" 3092 | 3093 | 30: "TCVN-3-1" 3094 | 3095 | 31: "TCVN-3-2" 3096 | 3097 | 32: "Unknown" 3098 | 3099 | 33: "CP775" 3100 | 3101 | 34: "CP855" 3102 | 3103 | 35: "CP861" 3104 | 3105 | 36: "CP862" 3106 | 3107 | 37: "CP864" 3108 | 3109 | 38: "CP869" 3110 | 3111 | 39: "ISO_8859-2" 3112 | 3113 | 4: "CP863" 3114 | 3115 | 40: "ISO_8859-15" 3116 | 3117 | 41: "Unknown" 3118 | 3119 | 42: "CP774" 3120 | 3121 | 43: "CP772" 3122 | 3123 | 44: "CP1125" 3124 | 3125 | 45: "CP1250" 3126 | 3127 | 46: "CP1251" 3128 | 3129 | 47: "CP1253" 3130 | 3131 | 48: "CP1254" 3132 | 3133 | 49: "CP1255" 3134 | 3135 | 5: "CP865" 3136 | 3137 | 50: "CP1256" 3138 | 3139 | 51: "CP1257" 3140 | 3141 | 52: "CP1258" 3142 | 3143 | 53: "RK1048" 3144 | 3145 | 6: "Unknown" 3146 | 3147 | 66: "Unknown" 3148 | 3149 | 67: "Unknown" 3150 | 3151 | 68: "Unknown" 3152 | 3153 | 69: "Unknown" 3154 | 3155 | 7: "Unknown" 3156 | 3157 | 70: "Unknown" 3158 | 3159 | 71: "Unknown" 3160 | 3161 | 72: "Unknown" 3162 | 3163 | 73: "Unknown" 3164 | 3165 | 74: "Unknown" 3166 | 3167 | 75: "Unknown" 3168 | 3169 | 8: "Unknown" 3170 | 3171 | 82: "Unknown" 3172 | 3173 | colors: 3174 | 0: "black" 3175 | 3176 | features: 3177 | barcodeA: yes 3178 | barcodeB: yes 3179 | bitImageColumn: yes 3180 | bitImageRaster: yes 3181 | graphics: yes 3182 | highDensity: yes 3183 | paperFullCut: yes 3184 | paperPartCut: yes 3185 | pdf417Code: yes 3186 | pulseBel: no 3187 | pulseStandard: yes 3188 | qrCode: yes 3189 | starCommands: no 3190 | 3191 | fonts: 3192 | 0: 3193 | columns: 42 3194 | name: "Font A" 3195 | 1: 3196 | columns: 56 3197 | name: "Font B" 3198 | 3199 | media: 3200 | dpi: 180 3201 | width: 3202 | mm: 72 3203 | pixels: 512 3204 | 3205 | name: "TM-T88II" 3206 | 3207 | notes: "Epson TM-T88II profile. The specs where taken from a TM-T88IIP machine\ 3208 | \ (I assume the P just stands for parallel port). The standart 80mm paper width\ 3209 | \ version was used here. There is also a custom 58mm factory option. If you\ 3210 | \ are using the custom version change media width to 50.8mm and 360px accordingly.\ 3211 | \ This printer is discontinued by the Vendor and has similar feature support\ 3212 | \ to the TM-T88III. The code page mapping is documented in the \"TM-T88II/T88III\ 3213 | \ Technical Reference Guide\".\n" 3214 | 3215 | vendor: "Epson" 3216 | 3217 | TM-T88III: 3218 | 3219 | codePages: 3220 | 0: "CP437" 3221 | 1: "CP932" 3222 | 16: "CP1252" 3223 | 17: "CP866" 3224 | 18: "CP862" 3225 | 19: "CP858" 3226 | 2: "CP850" 3227 | 255: "Unknown" 3228 | 3: "CP860" 3229 | 4: "CP863" 3230 | 5: "CP865" 3231 | 6: "CP1251" 3232 | 3233 | colors: 3234 | 0: "black" 3235 | 3236 | features: 3237 | barcodeA: yes 3238 | barcodeB: yes 3239 | bitImageColumn: yes 3240 | bitImageRaster: yes 3241 | graphics: yes 3242 | highDensity: yes 3243 | paperFullCut: yes 3244 | paperPartCut: yes 3245 | pdf417Code: yes 3246 | pulseBel: no 3247 | pulseStandard: yes 3248 | qrCode: yes 3249 | starCommands: no 3250 | 3251 | fonts: 3252 | 0: 3253 | columns: 42 3254 | name: "Font A" 3255 | 1: 3256 | columns: 56 3257 | name: "Font B" 3258 | 3259 | media: 3260 | dpi: 180 3261 | width: 3262 | mm: 80 3263 | pixels: 512 3264 | 3265 | name: "TM-T88III" 3266 | 3267 | notes: "Epson TM-T88III profile. This printer has similar feature support to the\ 3268 | \ TM-T88II. The code page mapping is documented in the \"TM-T88II/T88III Technical\ 3269 | \ Reference Guide\".\n" 3270 | 3271 | vendor: "Epson" 3272 | 3273 | TM-T88IV: 3274 | 3275 | codePages: 3276 | 0: "CP437" 3277 | 1: "CP932" 3278 | 16: "CP1252" 3279 | 17: "CP866" 3280 | 18: "CP852" 3281 | 19: "CP858" 3282 | 2: "CP850" 3283 | 255: "Unknown" 3284 | 3: "CP860" 3285 | 4: "CP863" 3286 | 5: "CP865" 3287 | 3288 | colors: 3289 | 0: "black" 3290 | 3291 | features: 3292 | barcodeA: yes 3293 | barcodeB: yes 3294 | bitImageColumn: yes 3295 | bitImageRaster: yes 3296 | graphics: yes 3297 | highDensity: yes 3298 | paperFullCut: yes 3299 | paperPartCut: yes 3300 | pdf417Code: yes 3301 | pulseBel: no 3302 | pulseStandard: yes 3303 | qrCode: yes 3304 | starCommands: no 3305 | 3306 | fonts: 3307 | 0: 3308 | columns: 42 3309 | name: "Font A" 3310 | 1: 3311 | columns: 56 3312 | name: "Font B" 3313 | 3314 | media: 3315 | dpi: 180 3316 | width: 3317 | mm: 80 3318 | pixels: 512 3319 | 3320 | name: "TM-T88IV" 3321 | 3322 | notes: "Epson TM-T88IV profile\n" 3323 | 3324 | vendor: "Epson" 3325 | 3326 | TM-T88IV-SA: 3327 | codePages: 3328 | 0: "CP437" 3329 | 20: "Unknown" 3330 | 21: "CP874" 3331 | 26: "Unknown" 3332 | 30: "TCVN-3-1" 3333 | 31: "TCVN-3-2" 3334 | colors: 3335 | 0: "black" 3336 | features: 3337 | barcodeA: yes 3338 | barcodeB: yes 3339 | bitImageColumn: yes 3340 | bitImageRaster: yes 3341 | graphics: yes 3342 | highDensity: yes 3343 | paperFullCut: yes 3344 | paperPartCut: yes 3345 | pdf417Code: yes 3346 | pulseBel: no 3347 | pulseStandard: yes 3348 | qrCode: yes 3349 | starCommands: no 3350 | fonts: 3351 | 0: 3352 | columns: 42 3353 | name: "Font A" 3354 | 1: 3355 | columns: 56 3356 | name: "Font B" 3357 | media: 3358 | dpi: 180 3359 | width: 3360 | mm: 80 3361 | pixels: 512 3362 | name: "TM-T88IV South Asia" 3363 | notes: "Epson TM-T88IV profile (South Asia models)\n" 3364 | vendor: "Epson" 3365 | 3366 | TM-T88V: 3367 | 3368 | codePages: 3369 | 0: "CP437" 3370 | 1: "CP932" 3371 | 11: "CP851" 3372 | 12: "CP853" 3373 | 13: "CP857" 3374 | 14: "CP737" 3375 | 15: "ISO_8859-7" 3376 | 16: "CP1252" 3377 | 17: "CP866" 3378 | 18: "CP852" 3379 | 19: "CP858" 3380 | 2: "CP850" 3381 | 255: "Unknown" 3382 | 3: "CP860" 3383 | 30: "TCVN-3-1" 3384 | 31: "TCVN-3-2" 3385 | 32: "CP720" 3386 | 33: "CP775" 3387 | 34: "CP855" 3388 | 35: "CP861" 3389 | 36: "CP862" 3390 | 37: "CP864" 3391 | 38: "CP869" 3392 | 39: "ISO_8859-2" 3393 | 4: "CP863" 3394 | 40: "ISO_8859-15" 3395 | 41: "CP1098" 3396 | 45: "CP1250" 3397 | 46: "CP1251" 3398 | 47: "CP1253" 3399 | 48: "CP1254" 3400 | 49: "CP1255" 3401 | 5: "CP865" 3402 | 50: "CP1256" 3403 | 51: "CP1257" 3404 | 52: "CP1258" 3405 | 53: "RK1048" 3406 | 3407 | colors: 3408 | 0: "black" 3409 | 3410 | features: 3411 | barcodeA: yes 3412 | barcodeB: yes 3413 | bitImageColumn: yes 3414 | bitImageRaster: yes 3415 | graphics: yes 3416 | highDensity: yes 3417 | paperFullCut: yes 3418 | paperPartCut: yes 3419 | pdf417Code: yes 3420 | pulseBel: no 3421 | pulseStandard: yes 3422 | qrCode: yes 3423 | starCommands: no 3424 | 3425 | fonts: 3426 | 0: 3427 | columns: 42 3428 | name: "Font A" 3429 | 1: 3430 | columns: 56 3431 | name: "Font B" 3432 | 3433 | media: 3434 | dpi: 180 3435 | width: 3436 | mm: 80 3437 | pixels: 512 3438 | 3439 | name: "TM-T88V" 3440 | 3441 | notes: "Epson TM-T88V profile\n" 3442 | 3443 | vendor: "Epson" 3444 | 3445 | TM-U220: 3446 | codePages: 3447 | 0: "CP437" 3448 | colors: 3449 | 0: "black" 3450 | 1: "alternate" 3451 | features: 3452 | barcodeA: no 3453 | barcodeB: no 3454 | bitImageColumn: yes 3455 | bitImageRaster: no 3456 | graphics: no 3457 | highDensity: no 3458 | paperFullCut: no 3459 | paperPartCut: no 3460 | pdf417Code: no 3461 | pulseBel: no 3462 | pulseStandard: yes 3463 | qrCode: no 3464 | starCommands: no 3465 | fonts: 3466 | 0: 3467 | columns: 42 3468 | name: "Font A" 3469 | 1: 3470 | columns: 56 3471 | name: "Font B" 3472 | media: 3473 | width: 3474 | mm: 63.4 3475 | pixels: 400 3476 | name: "TM-U220" 3477 | notes: "Two-color impact printer with 80mm output" 3478 | vendor: "Epson" 3479 | 3480 | TM-U220B: 3481 | codePages: 3482 | 0: "CP437" 3483 | colors: 3484 | 0: "black" 3485 | 1: "alternate" 3486 | features: 3487 | barcodeA: no 3488 | barcodeB: no 3489 | bitImageColumn: yes 3490 | bitImageRaster: no 3491 | graphics: no 3492 | highDensity: no 3493 | paperFullCut: no 3494 | paperPartCut: yes 3495 | pdf417Code: no 3496 | pulseBel: no 3497 | pulseStandard: yes 3498 | qrCode: no 3499 | starCommands: no 3500 | fonts: 3501 | 0: 3502 | columns: 42 3503 | name: "Font A" 3504 | 1: 3505 | columns: 56 3506 | name: "Font B" 3507 | media: 3508 | width: 3509 | mm: 63.4 3510 | pixels: 400 3511 | name: "TM-U220B" 3512 | notes: "Two-color impact printer with 76mm output" 3513 | vendor: "Epson" 3514 | 3515 | TSP600: 3516 | 3517 | codePages: 3518 | 3519 | 0: "CP437" 3520 | 3521 | 1: "CP437" 3522 | 3523 | 10: "CP866" 3524 | 3525 | 100: "Unknown" 3526 | 3527 | 101: "Unknown" 3528 | 3529 | 102: "Unknown" 3530 | 3531 | 11: "CP855" 3532 | 3533 | 12: "CP857" 3534 | 3535 | 13: "CP862" 3536 | 3537 | 14: "CP864" 3538 | 3539 | 15: "CP737" 3540 | 3541 | 16: "CP851" 3542 | 3543 | 17: "CP869" 3544 | 3545 | 18: "CP928" 3546 | 3547 | 19: "CP772" 3548 | 3549 | 2: "CP932" 3550 | 3551 | 20: "CP774" 3552 | 3553 | 21: "CP874" 3554 | 3555 | 255: "Unknown" 3556 | 3557 | 3: "CP437" 3558 | 3559 | 32: "CP1252" 3560 | 3561 | 33: "CP1250" 3562 | 3563 | 34: "CP1251" 3564 | 3565 | 4: "CP858" 3566 | 3567 | 5: "CP852" 3568 | 3569 | 6: "CP860" 3570 | 3571 | 64: "CP3840" 3572 | 3573 | 65: "CP3841" 3574 | 3575 | 66: "CP3843" 3576 | 3577 | 67: "CP3844" 3578 | 3579 | 68: "CP3845" 3580 | 3581 | 69: "CP3846" 3582 | 3583 | 7: "CP861" 3584 | 3585 | 70: "CP3847" 3586 | 3587 | 71: "CP3848" 3588 | 3589 | 72: "CP1001" 3590 | 3591 | 73: "CP2001" 3592 | 3593 | 74: "CP3001" 3594 | 3595 | 75: "CP3002" 3596 | 3597 | 76: "CP3011" 3598 | 3599 | 77: "CP3012" 3600 | 3601 | 78: "CP3021" 3602 | 3603 | 79: "CP3041" 3604 | 3605 | 8: "CP863" 3606 | 3607 | 9: "CP865" 3608 | 3609 | 96: "Unknown" 3610 | 3611 | 97: "Unknown" 3612 | 3613 | 98: "Unknown" 3614 | 3615 | 99: "Unknown" 3616 | 3617 | colors: 3618 | 0: "black" 3619 | 3620 | features: 3621 | barcodeA: yes 3622 | barcodeB: yes 3623 | bitImageColumn: yes 3624 | bitImageRaster: yes 3625 | graphics: yes 3626 | highDensity: yes 3627 | paperFullCut: yes 3628 | paperPartCut: yes 3629 | pdf417Code: yes 3630 | pulseBel: no 3631 | pulseStandard: yes 3632 | qrCode: yes 3633 | starCommands: yes 3634 | 3635 | fonts: 3636 | 0: 3637 | columns: 42 3638 | name: "Font A" 3639 | 1: 3640 | columns: 56 3641 | name: "Font B" 3642 | 3643 | media: 3644 | dpi: 203 3645 | width: 3646 | mm: 72 3647 | pixels: 576 3648 | 3649 | name: "TSP600 Series" 3650 | 3651 | notes: "Star TSP600 thermal printer series with ESC/POS emulation enabled" 3652 | 3653 | vendor: "Star Micronics" 3654 | 3655 | TUP500: 3656 | 3657 | codePages: 3658 | 3659 | 0: "CP437" 3660 | 3661 | 1: "CP437" 3662 | 3663 | 10: "CP866" 3664 | 3665 | 100: "Unknown" 3666 | 3667 | 101: "Unknown" 3668 | 3669 | 102: "Unknown" 3670 | 3671 | 11: "CP855" 3672 | 3673 | 12: "CP857" 3674 | 3675 | 13: "CP862" 3676 | 3677 | 14: "CP864" 3678 | 3679 | 15: "CP737" 3680 | 3681 | 16: "CP851" 3682 | 3683 | 17: "CP869" 3684 | 3685 | 18: "CP928" 3686 | 3687 | 19: "CP772" 3688 | 3689 | 2: "CP932" 3690 | 3691 | 20: "CP774" 3692 | 3693 | 21: "CP874" 3694 | 3695 | 255: "Unknown" 3696 | 3697 | 3: "CP437" 3698 | 3699 | 32: "CP1252" 3700 | 3701 | 33: "CP1250" 3702 | 3703 | 34: "CP1251" 3704 | 3705 | 4: "CP858" 3706 | 3707 | 5: "CP852" 3708 | 3709 | 6: "CP860" 3710 | 3711 | 64: "CP3840" 3712 | 3713 | 65: "CP3841" 3714 | 3715 | 66: "CP3843" 3716 | 3717 | 67: "CP3844" 3718 | 3719 | 68: "CP3845" 3720 | 3721 | 69: "CP3846" 3722 | 3723 | 7: "CP861" 3724 | 3725 | 70: "CP3847" 3726 | 3727 | 71: "CP3848" 3728 | 3729 | 72: "CP1001" 3730 | 3731 | 73: "CP2001" 3732 | 3733 | 74: "CP3001" 3734 | 3735 | 75: "CP3002" 3736 | 3737 | 76: "CP3011" 3738 | 3739 | 77: "CP3012" 3740 | 3741 | 78: "CP3021" 3742 | 3743 | 79: "CP3041" 3744 | 3745 | 8: "CP863" 3746 | 3747 | 9: "CP865" 3748 | 3749 | 96: "Unknown" 3750 | 3751 | 97: "Unknown" 3752 | 3753 | 98: "Unknown" 3754 | 3755 | 99: "Unknown" 3756 | 3757 | colors: 3758 | 0: "black" 3759 | 3760 | features: 3761 | barcodeA: yes 3762 | barcodeB: yes 3763 | bitImageColumn: yes 3764 | bitImageRaster: yes 3765 | graphics: yes 3766 | highDensity: yes 3767 | paperFullCut: yes 3768 | paperPartCut: yes 3769 | pdf417Code: yes 3770 | pulseBel: no 3771 | pulseStandard: yes 3772 | qrCode: yes 3773 | starCommands: yes 3774 | 3775 | fonts: 3776 | 0: 3777 | columns: 42 3778 | name: "Font A" 3779 | 1: 3780 | columns: 56 3781 | name: "Font B" 3782 | 3783 | media: 3784 | dpi: 203 3785 | width: 3786 | mm: 80 3787 | 3788 | name: "TUP500 Series" 3789 | 3790 | notes: "Star TUP500 thermal printer series with ESC/POS emulation enabled" 3791 | 3792 | vendor: "Star Micronics" 3793 | 3794 | ZJ-5870: 3795 | 3796 | codePages: 3797 | 0: "CP437" 3798 | 1: "CP932" 3799 | 16: "CP1252" 3800 | 17: "CP866" 3801 | 18: "CP852" 3802 | 2: "CP850" 3803 | 3: "CP860" 3804 | 4: "CP863" 3805 | 5: "CP865" 3806 | 3807 | colors: 3808 | 0: "black" 3809 | 3810 | features: 3811 | barcodeA: no 3812 | barcodeB: no 3813 | bitImageColumn: yes 3814 | bitImageRaster: yes 3815 | graphics: no 3816 | highDensity: no 3817 | paperFullCut: no 3818 | paperPartCut: no 3819 | pdf417Code: no 3820 | pulseBel: no 3821 | pulseStandard: yes 3822 | qrCode: no 3823 | starCommands: no 3824 | 3825 | fonts: 3826 | 0: 3827 | columns: 32 3828 | name: "Font A" 3829 | 3830 | media: 3831 | dpi: 203 3832 | width: 3833 | mm: 48 3834 | pixels: 384 3835 | 3836 | name: "ZJ-5870 Thermal Receipt Printer" 3837 | 3838 | notes: "ESC/POS Profile for ZiJiang ZJ-5870 Thermal Receipt Printer, which may\ 3839 | \ be branded AGPtEK or Esky, and identifies itself as a POS-58 Thermal Printer\ 3840 | \ on selftest. This profile is suitable for alphanumberic character mode, but\ 3841 | \ is untested on Chinese character mode. (Change modes by holding down feed\ 3842 | \ button during power-on until the mode LED turns off, then release immediately.)\n" 3843 | 3844 | vendor: "ZiJiang" 3845 | 3846 | default: 3847 | 3848 | codePages: 3849 | 3850 | 0: "CP437" 3851 | 3852 | 1: "CP932" 3853 | 3854 | 11: "CP851" 3855 | 3856 | 12: "CP853" 3857 | 3858 | 13: "CP857" 3859 | 3860 | 14: "CP737" 3861 | 3862 | 15: "ISO_8859-7" 3863 | 3864 | 16: "CP1252" 3865 | 3866 | 17: "CP866" 3867 | 3868 | 18: "CP852" 3869 | 3870 | 19: "CP858" 3871 | 3872 | 2: "CP850" 3873 | 3874 | 20: "Unknown" 3875 | 3876 | 21: "CP874" 3877 | 3878 | 22: "Unknown" 3879 | 3880 | 23: "Unknown" 3881 | 3882 | 24: "Unknown" 3883 | 3884 | 25: "Unknown" 3885 | 3886 | 254: "Unknown" 3887 | 3888 | 255: "Unknown" 3889 | 3890 | 26: "Unknown" 3891 | 3892 | 3: "CP860" 3893 | 3894 | 30: "TCVN-3-1" 3895 | 3896 | 31: "TCVN-3-2" 3897 | 3898 | 32: "CP720" 3899 | 3900 | 33: "CP775" 3901 | 3902 | 34: "CP855" 3903 | 3904 | 35: "CP861" 3905 | 3906 | 36: "CP862" 3907 | 3908 | 37: "CP864" 3909 | 3910 | 38: "CP869" 3911 | 3912 | 39: "ISO_8859-2" 3913 | 3914 | 4: "CP863" 3915 | 3916 | 40: "ISO_8859-15" 3917 | 3918 | 41: "CP1098" 3919 | 3920 | 42: "CP774" 3921 | 3922 | 43: "CP772" 3923 | 3924 | 44: "CP1125" 3925 | 3926 | 45: "CP1250" 3927 | 3928 | 46: "CP1251" 3929 | 3930 | 47: "CP1253" 3931 | 3932 | 48: "CP1254" 3933 | 3934 | 49: "CP1255" 3935 | 3936 | 5: "CP865" 3937 | 3938 | 50: "CP1256" 3939 | 3940 | 51: "CP1257" 3941 | 3942 | 52: "CP1258" 3943 | 3944 | 53: "RK1048" 3945 | 3946 | 6: "Unknown" 3947 | 3948 | 66: "Unknown" 3949 | 3950 | 67: "Unknown" 3951 | 3952 | 68: "Unknown" 3953 | 3954 | 69: "Unknown" 3955 | 3956 | 7: "Unknown" 3957 | 3958 | 70: "Unknown" 3959 | 3960 | 71: "Unknown" 3961 | 3962 | 72: "Unknown" 3963 | 3964 | 73: "Unknown" 3965 | 3966 | 74: "Unknown" 3967 | 3968 | 75: "Unknown" 3969 | 3970 | 8: "Unknown" 3971 | 3972 | 82: "Unknown" 3973 | 3974 | colors: 3975 | 0: "black" 3976 | 3977 | features: 3978 | barcodeA: yes 3979 | barcodeB: yes 3980 | bitImageColumn: yes 3981 | bitImageRaster: yes 3982 | graphics: yes 3983 | highDensity: yes 3984 | paperFullCut: yes 3985 | paperPartCut: yes 3986 | pdf417Code: yes 3987 | pulseBel: no 3988 | pulseStandard: yes 3989 | qrCode: yes 3990 | starCommands: no 3991 | 3992 | fonts: 3993 | 0: 3994 | columns: 42 3995 | name: "Font A" 3996 | 1: 3997 | columns: 56 3998 | name: "Font B" 3999 | 4000 | media: 4001 | dpi: "Unknown" 4002 | width: 4003 | mm: "Unknown" 4004 | pixels: "Unknown" 4005 | 4006 | name: "Default" 4007 | 4008 | notes: "Default ESC/POS profile, suitable for standards-compliant or Epson-branded\ 4009 | \ printers. This profile allows the use of standard ESC/POS features, and can\ 4010 | \ encode a variety of code pages.\n" 4011 | 4012 | vendor: "Generic" 4013 | 4014 | mcPrint: 4015 | 4016 | codePages: 4017 | 4018 | 0: "Unknown" 4019 | 4020 | 1: "CP437" 4021 | 4022 | 10: "CP866" 4023 | 4024 | 102: "Unknown" 4025 | 4026 | 11: "CP855" 4027 | 4028 | 12: "CP857" 4029 | 4030 | 13: "CP862" 4031 | 4032 | 14: "CP864" 4033 | 4034 | 15: "CP737" 4035 | 4036 | 16: "CP851" 4037 | 4038 | 17: "CP869" 4039 | 4040 | 18: "CP928" 4041 | 4042 | 19: "CP772" 4043 | 4044 | 2: "CP932" 4045 | 4046 | 20: "CP774" 4047 | 4048 | 21: "Unknown" 4049 | 4050 | 255: "Unknown" 4051 | 4052 | 3: "CP437" 4053 | 4054 | 32: "CP1252" 4055 | 4056 | 33: "CP1250" 4057 | 4058 | 34: "CP1251" 4059 | 4060 | 4: "CP858" 4061 | 4062 | 5: "CP852" 4063 | 4064 | 6: "CP860" 4065 | 4066 | 64: "CP3840" 4067 | 4068 | 65: "CP3841" 4069 | 4070 | 66: "CP3843" 4071 | 4072 | 67: "CP3844" 4073 | 4074 | 68: "CP3845" 4075 | 4076 | 69: "CP3846" 4077 | 4078 | 7: "CP861" 4079 | 4080 | 70: "CP3847" 4081 | 4082 | 71: "CP3848" 4083 | 4084 | 72: "CP1001" 4085 | 4086 | 73: "CP2001" 4087 | 4088 | 74: "CP3001" 4089 | 4090 | 75: "CP3002" 4091 | 4092 | 76: "CP3011" 4093 | 4094 | 77: "CP3012" 4095 | 4096 | 78: "CP3021" 4097 | 4098 | 79: "CP3041" 4099 | 4100 | 8: "CP863" 4101 | 4102 | 9: "CP865" 4103 | 4104 | 96: "Unknown" 4105 | 4106 | 97: "Unknown" 4107 | 4108 | 98: "Unknown" 4109 | 4110 | colors: 4111 | 0: "black" 4112 | 4113 | features: 4114 | barcodeA: yes 4115 | barcodeB: yes 4116 | bitImageColumn: yes 4117 | bitImageRaster: yes 4118 | graphics: yes 4119 | highDensity: yes 4120 | paperFullCut: yes 4121 | paperPartCut: yes 4122 | pdf417Code: yes 4123 | pulseBel: no 4124 | pulseStandard: yes 4125 | qrCode: yes 4126 | starCommands: yes 4127 | 4128 | fonts: 4129 | 0: 4130 | columns: 42 4131 | name: "Font A" 4132 | 1: 4133 | columns: 56 4134 | name: "Font B" 4135 | 4136 | media: 4137 | dpi: "Unknown" 4138 | width: 4139 | mm: "Unknown" 4140 | pixels: "Unknown" 4141 | 4142 | name: "Star mcPrint2/mcPrint3" 4143 | 4144 | notes: "Star mcPrint2/mcPrint3 printers. Technical documentation is in the \"\ 4145 | StarPRNT Command specifications Rev. 2.40\" document, which can be found online.\n" 4146 | 4147 | vendor: "Star Micronics" 4148 | 4149 | safe: 4150 | 4151 | codePages: 4152 | 0: "CP437" 4153 | 1: "CP932" 4154 | 16: "CP1252" 4155 | 17: "CP866" 4156 | 18: "CP852" 4157 | 19: "CP858" 4158 | 2: "CP850" 4159 | 255: "Unknown" 4160 | 3: "CP860" 4161 | 4: "CP863" 4162 | 5: "CP865" 4163 | 4164 | colors: 4165 | 0: "black" 4166 | 4167 | features: 4168 | barcodeA: yes 4169 | barcodeB: yes 4170 | bitImageColumn: yes 4171 | bitImageRaster: yes 4172 | graphics: yes 4173 | highDensity: yes 4174 | paperFullCut: yes 4175 | paperPartCut: yes 4176 | pdf417Code: yes 4177 | pulseBel: no 4178 | pulseStandard: yes 4179 | qrCode: yes 4180 | starCommands: no 4181 | 4182 | fonts: 4183 | 0: 4184 | columns: 42 4185 | name: "Font A" 4186 | 1: 4187 | columns: 56 4188 | name: "Font B" 4189 | 4190 | media: 4191 | width: 4192 | mm: "Unknown" 4193 | pixels: "Unknown" 4194 | 4195 | name: "Safe" 4196 | 4197 | notes: "Default \"safe\" ESC/POS profile, suitable for standards-compliant or\ 4198 | \ Epson-branded printers. This profile is similar to the \"generic\" profile,\ 4199 | \ but has a lot less codepages to avoid encoding errors.\n" 4200 | 4201 | vendor: "Generic" 4202 | 4203 | simple: 4204 | codePages: 4205 | 0: "CP437" 4206 | colors: 4207 | 0: "black" 4208 | features: 4209 | barcodeA: no 4210 | barcodeB: no 4211 | bitImageColumn: no 4212 | bitImageRaster: yes 4213 | graphics: no 4214 | highDensity: yes 4215 | paperFullCut: no 4216 | paperPartCut: no 4217 | pdf417Code: no 4218 | pulseBel: no 4219 | pulseStandard: yes 4220 | qrCode: no 4221 | starCommands: no 4222 | fonts: 4223 | 0: 4224 | columns: 42 4225 | name: "Font A" 4226 | 1: 4227 | columns: 56 4228 | name: "Font B" 4229 | media: 4230 | dpi: "Unknown" 4231 | width: 4232 | mm: "Unknown" 4233 | pixels: "Unknown" 4234 | name: "Simple" 4235 | notes: "A profile for use in printers with unknown or poor compatibility. This\ 4236 | \ profile indicates that a small number of features are supported, so that commands\ 4237 | \ are not sent a printer that is unlikely to understand them.\n" 4238 | vendor: "Generic" 4239 | --------------------------------------------------------------------------------