@@ -2044,8 +2044,12 @@ const printerDefinitions = {
20442044 'bixolon-srp350' : { vendor :'Bixolon' , model :'SRP-350' , media :{ dpi :180 , width :80 } , capabilities :{ language :'esc-pos' , codepages :'bixolon/legacy' , fonts :{ A :{ size :'12x24' , columns :42 } , B :{ size :'9x17' , columns :56 } } , barcodes :{ supported :true , symbologies :[ 'upca' , 'upce' , 'ean13' , 'ean8' , 'code39' , 'itf' , 'codabar' , 'code93' , 'code128' ] } , qrcode :{ supported :false , models :[ ] } , pdf417 :{ supported :false } , cutter :{ feed :4 } } } ,
20452045 'bixolon-srp350iii' : { vendor :'Bixolon' , model :'SRP-350III' , media :{ dpi :180 , width :80 } , capabilities :{ language :'esc-pos' , codepages :'bixolon' , fonts :{ A :{ size :'12x24' , columns :42 } , B :{ size :'9x17' , columns :56 } , C :{ size :'9x24' , columns :56 } } , barcodes :{ supported :true , symbologies :[ 'upca' , 'upce' , 'ean13' , 'ean8' , 'code39' , 'itf' , 'codabar' , 'code93' , 'code128' ] } , qrcode :{ supported :true , models :[ '2' ] } , pdf417 :{ supported :true } , cutter :{ feed :4 } } } ,
20462046 'citizen-ct-s310ii' : { vendor :'Citizen' , model :'CT-S310II' , media :{ dpi :203 , width :80 } , capabilities :{ language :'esc-pos' , codepages :'citizen' , fonts :{ A :{ size :'12x24' , columns :48 } , B :{ size :'9x24' , columns :64 } , C :{ size :'8x16' , columns :72 } } , barcodes :{ supported :true , symbologies :[ 'upca' , 'upce' , 'ean13' , 'ean8' , 'code39' , 'itf' , 'codabar' , 'code93' , 'code128' , 'gs1-databar-omni' , 'gs1-databar-truncated' , 'gs1-databar-limited' , 'gs1-databar-expanded' ] } , qrcode :{ supported :true , models :[ '1' , '2' ] } , pdf417 :{ supported :true } , cutter :{ feed :3 } } } ,
2047+ 'epson-tm-m30ii' : { vendor :'Epson' , model :'TM-m30II' , interfaces :{ usb :{ productName :'TM-m30II' } } , media :{ dpi :203 , width :80 } , capabilities :{ language :'esc-pos' , codepages :'epson' , fonts :{ A :{ size :'12x24' , columns :48 } , B :{ size :'10x24' , columns :57 } , C :{ size :'9x17' , columns :64 } } , barcodes :{ supported :true , symbologies :[ 'upca' , 'upce' , 'ean13' , 'ean8' , 'code39' , 'itf' , 'codabar' , 'code93' , 'code128' , 'gs1-databar-omni' , 'gs1-databar-truncated' , 'gs1-databar-limited' , 'gs1-databar-expanded' , 'code128-auto' ] } , qrcode :{ supported :true , models :[ '1' , '2' ] } , pdf417 :{ supported :true } , cutter :{ feed :4 } } } ,
2048+ 'epson-tm-m30iii' : { vendor :'Epson' , model :'TM-m30III' , interfaces :{ usb :{ productName :'TM-m30III' } } , media :{ dpi :203 , width :80 } , capabilities :{ language :'esc-pos' , codepages :'epson' , fonts :{ A :{ size :'12x24' , columns :48 } , B :{ size :'10x24' , columns :57 } , C :{ size :'9x17' , columns :64 } } , barcodes :{ supported :true , symbologies :[ 'upca' , 'upce' , 'ean13' , 'ean8' , 'code39' , 'itf' , 'codabar' , 'code93' , 'code128' , 'gs1-databar-omni' , 'gs1-databar-truncated' , 'gs1-databar-limited' , 'gs1-databar-expanded' , 'code128-auto' ] } , qrcode :{ supported :true , models :[ '1' , '2' ] } , pdf417 :{ supported :true } , cutter :{ feed :4 } } } ,
20472049 'epson-tm-p20ii' : { vendor :'Epson' , model :'TM-P20II' , media :{ dpi :203 , width :58 } , capabilities :{ language :'esc-pos' , codepages :'epson' , fonts :{ A :{ size :'12x24' , columns :32 } , B :{ size :'9x24' , columns :42 } , C :{ size :'9x17' , columns :42 } , D :{ size :'10x24' , columns :38 } , E :{ size :'8x16' , columns :48 } } , barcodes :{ supported :true , symbologies :[ 'upca' , 'upce' , 'ean13' , 'ean8' , 'code39' , 'itf' , 'codabar' , 'code93' , 'code128' , 'gs1-databar-omni' , 'gs1-databar-truncated' , 'gs1-databar-limited' , 'gs1-databar-expanded' , 'code128-auto' ] } , qrcode :{ supported :true , models :[ '1' , '2' ] } , pdf417 :{ supported :true } , images :{ mode :'raster' } , cutter :{ feed :3 } } } ,
2050+ 'epson-tm-t20ii' : { vendor :'Epson' , model :'TM-T20II' , interfaces :{ usb :{ productName :'TM-T20II' } } , media :{ dpi :203 , width :80 } , capabilities :{ language :'esc-pos' , codepages :'epson' , fonts :{ A :{ size :'12x24' , columns :48 } , B :{ size :'9x17' , columns :64 } } , barcodes :{ supported :true , symbologies :[ 'upca' , 'upce' , 'ean13' , 'ean8' , 'code39' , 'itf' , 'codabar' , 'code93' , 'code128' , 'gs1-databar-omni' , 'gs1-databar-truncated' , 'gs1-databar-limited' , 'gs1-databar-expanded' ] } , qrcode :{ supported :true , models :[ '1' , '2' ] } , pdf417 :{ supported :true } , cutter :{ feed :4 } } } ,
20482051 'epson-tm-t20iii' : { vendor :'Epson' , model :'TM-T20III' , interfaces :{ usb :{ productName :'TM-T20III' } } , media :{ dpi :203 , width :80 } , capabilities :{ language :'esc-pos' , codepages :'epson' , fonts :{ A :{ size :'12x24' , columns :48 } , B :{ size :'9x17' , columns :64 } } , barcodes :{ supported :true , symbologies :[ 'upca' , 'upce' , 'ean13' , 'ean8' , 'code39' , 'itf' , 'codabar' , 'code93' , 'code128' , 'gs1-databar-omni' , 'gs1-databar-truncated' , 'gs1-databar-limited' , 'gs1-databar-expanded' ] } , qrcode :{ supported :true , models :[ '1' , '2' ] } , pdf417 :{ supported :true } , cutter :{ feed :4 } } } ,
2052+ 'epson-tm-t20iv' : { vendor :'Epson' , model :'TM-T20IV' , interfaces :{ usb :{ productName :'TM-T20IV' } } , media :{ dpi :203 , width :80 } , capabilities :{ language :'esc-pos' , codepages :'epson' , fonts :{ A :{ size :'12x24' , columns :48 } , B :{ size :'9x17' , columns :64 } } , barcodes :{ supported :true , symbologies :[ 'upca' , 'upce' , 'ean13' , 'ean8' , 'code39' , 'itf' , 'codabar' , 'code93' , 'code128' , 'gs1-databar-omni' , 'gs1-databar-truncated' , 'gs1-databar-limited' , 'gs1-databar-expanded' , 'code128-auto' ] } , qrcode :{ supported :true , models :[ '1' , '2' ] } , pdf417 :{ supported :true } , cutter :{ feed :4 } } } ,
20492053 'epson-tm-t70' : { vendor :'Epson' , model :'TM-T70' , media :{ dpi :180 , width :80 } , capabilities :{ language :'esc-pos' , codepages :'epson/legacy' , fonts :{ A :{ size :'12x24' , columns :42 } , B :{ size :'9x17' , columns :56 } } , barcodes :{ supported :true , symbologies :[ 'upca' , 'upce' , 'ean13' , 'ean8' , 'code39' , 'itf' , 'codabar' , 'code93' , 'code128' ] } , qrcode :{ supported :true , models :[ '1' , '2' ] } , pdf417 :{ supported :true } , images :{ mode :'raster' } , cutter :{ feed :4 } } } ,
20502054 'epson-tm-t70ii' : { vendor :'Epson' , model :'TM-T70II' , 'interface' :{ usb :{ productName :'TM-T70II' } } , media :{ dpi :180 , width :80 } , capabilities :{ language :'esc-pos' , codepages :'epson' , fonts :{ A :{ size :'12x24' , columns :42 } , B :{ size :'9x17' , columns :56 } } , barcodes :{ supported :true , symbologies :[ 'upca' , 'upce' , 'ean13' , 'ean8' , 'code39' , 'itf' , 'codabar' , 'code93' , 'code128' , 'gs1-databar-omni' , 'gs1-databar-truncated' , 'gs1-databar-limited' , 'gs1-databar-expanded' ] } , qrcode :{ supported :true , models :[ '1' , '2' ] } , pdf417 :{ supported :true } , images :{ mode :'raster' } , cutter :{ feed :4 } } } ,
20512055 'epson-tm-t88ii' : { vendor :'Epson' , model :'TM-T88II' , media :{ dpi :180 , width :80 } , capabilities :{ language :'esc-pos' , codepages :'epson/legacy' , fonts :{ A :{ size :'12x24' , columns :42 } , B :{ size :'9x17' , columns :56 } } , barcodes :{ supported :true , symbologies :[ 'upca' , 'upce' , 'ean13' , 'ean8' , 'code39' , 'itf' , 'codabar' , 'code93' , 'code128' ] } , qrcode :{ supported :true , models :[ '1' , '2' ] } , pdf417 :{ supported :true } , cutter :{ feed :4 } } } ,
@@ -2252,7 +2256,7 @@ class ReceiptPrinterEncoder {
22522256 #reset( ) {
22532257 this . #queue = [ ] ;
22542258 this . #codepage = this . #options. language == 'esc-pos' ? 'cp437' : 'star/standard' ;
2255- this . #state. codepage = 0 ;
2259+ this . #state. codepage = - 1 ;
22562260 this . #state. font = 'A' ;
22572261 }
22582262
@@ -3284,9 +3288,23 @@ class ReceiptPrinterEncoder {
32843288 * @return {array } All the commands currently in the queue
32853289 */
32863290 commands ( ) {
3291+ let requiresFlush = true ;
3292+
3293+ /* Determine if the last command is a pulse or cut, the we do not need a flush */
3294+
3295+ let lastLine = this . #queue[ this . #queue. length - 1 ] ;
3296+
3297+ if ( lastLine ) {
3298+ let lastCommand = lastLine [ lastLine . length - 1 ] ;
3299+
3300+ if ( lastCommand && [ 'pulse' , 'cut' ] . includes ( lastCommand . type ) ) {
3301+ requiresFlush = false ;
3302+ }
3303+ }
3304+
32873305 /* Flush the printer line buffer if needed */
32883306
3289- if ( this . #options. autoFlush && ! this . #options. embedded ) {
3307+ if ( requiresFlush && this . #options. autoFlush && ! this . #options. embedded ) {
32903308 this . #composer. add (
32913309 this . #language. flush ( ) ,
32923310 ) ;
0 commit comments