thermal termica printer pos mini instalar impresora configurar configuracion como 5805dd 5802ld 5802dd delphi barcode point-of-sale opos epson

delphi - termica - pos 5802ld configuracion



¿Dónde puedo encontrar un programa de prueba de código de barras Epson "ESC/POS"? (2)

Obtenga Microsoft POS .Net 1.11, tiene un SDK que incluye una aplicación de muestra que realiza todas las operaciones básicas en el hardware de POS. Lo estoy usando todo el tiempo para probar que los cajones de efectivo funcionan bien, por ejemplo.

También hay un código fuente incluido (en .Net), para que pueda ver cómo lo hacen.

Estoy luchando por obtener una impresora Epson "ESC / POS" para imprimir códigos de barras (usando Delphi) y quiero probar si la impresora no está defectuosa. ¿Sabes dónde puedo encontrar un programa para imprimir un código de barras en "ESC / POS"? Supongo que como último recurso, un programa OPOS también estará bien.

Además, un programa demo de Delphi que funcione también estará bien. Todos los fragmentos de Delphi que tengo hasta ahora no están funcionando.

La impresora que estoy usando es una Epson TM-L60II


Tengo un programa completo de pruebas escrito en Delphi 5 para el TMT88, pero la fuente es bastante grande aquí, así que aquí están los bits del código de barras

Tenga en cuenta que como fragmentos del objeto completo pueden faltar algunos vars / funciones

Para obtener los caracteres de código de barras

{** * @param a ean13 barcode numeric value * @return the escpos code for the barcode print * Description uses escpos code, return code needed to print a ean13 barcode *} function TPrintEscPosToPort.getBarcodeEscPosCode(l_ean13:String):String; var l_return:String; begin l_return := CHR(29) + ''k'' + CHR(67) + CHR(12); l_return := l_return + l_ean13; // Print bar code l_return := l_return + l_ean13; // Print bar code number under thge barcode Result := l_return end;

para imprimir en una impresora

{** * @param Printer Name, Item be printed, Cut the papers after the cut, #no of copies to print * @return boolen, true if it printed * Description prints a test page to the tysso printer *} function TPrintEscPosToPort.escPosPrint(const l_printer, l_textToPrint :String;l_cutPaper:Boolean=true;l_copies:integer=1): Boolean; var l_pPort,l_pName,l_tmp:String; i,x:integer; PrinterFile: TextFile; begin // set result to false so any thing other then a good print will be false Result:= FALSE; try //Find if the printer exists, else set to defult -1 i := Printer.Printers.IndexOf(l_printer); if (i > -1) then begin Printer.PrinterIndex := i; l_pName := Printer.Printers[i]; //Get the printer name (incase its the defult and not the one passed) l_pPort := Self.getPrinterPort(l_pName) ; // get the port name from the reg end; // If true add headers and footers to the passed text if (Self.aPrintHeadersFooters) then begin l_tmp := Self.getHeader() + l_textToPrint + Self.GetFooter(); end else begin l_tmp := l_textToPrint; end; //Send the Document To the printer try for x:= 1 to l_copies do //Print multi-copies Begin //Assign the file to a tmp file in the printer port if (length(trim(l_pPort)) > 0) then AssignFile(PrinterFile,l_pPort) else begin //only use if we cant get the port //(may look bad as ctrl codes are still in place) AssignPrn(PrinterFile); l_tmp := Self.stripEscPos(l_tmp); end; Rewrite(PrinterFile); try //Send the passed Text to the printer WriteLn(PrinterFile,l_tmp); if (Self.aPrinterReset) then WriteLn(PrinterFile,escReset); // Reset the printer alignment if (l_cutPaper) then WriteLn(PrinterFile,escFeedAndCut); //Cut the paper if needed finally CloseFile(PrinterFile); Result:= true; end; end; except end; except end; end;

Actualizar

Aquí hay una pérdida de las constantes del código de control del código anterior, con suerte los nombres son lo suficientemente descriptivos.

const escNewLine = chr(10); // New line (LF line feed) escUnerlineOn = chr(27) + chr(45) + chr(1); // Unerline On escUnerlineOnx2 = chr(27) + chr(45) + chr(2); // Unerline On x 2 escUnerlineOff = chr(27) + chr(45) + chr(0); // Unerline Off escBoldOn = chr(27) + chr(69) + chr(1); // Bold On escBoldOff = chr(27) + chr(69) + chr(0); // Bold Off escNegativeOn = chr(29) + chr(66) + chr(1); // White On Black On'' escNegativeOff = chr(29) + chr(66) + chr(0); // White On Black Off esc8CpiOn = chr(29) + chr(33) + chr(16); // Font Size x2 On esc8CpiOff = chr(29) + chr(33) + chr(0); // Font Size x2 Off esc16Cpi = chr(27) + chr(77) + chr(48); // Font A - Normal Font esc20Cpi = chr(27) + chr(77) + chr(49); // Font B - Small Font escReset = chr(27) + chr(64); //chr(27) + chr(77) + chr(48); // Reset Printer escFeedAndCut = chr(29) + chr(86) + chr(65); // Partial Cut and feed escAlignLeft = chr(27) + chr(97) + chr(48); // Align Text to the Left escAlignCenter = chr(27) + chr(97) + chr(49); // Align Text to the Center escAlignRight = chr(27) + chr(97) + chr(50); // Align Text to the Right