Solved

Epson Thermal Printing

Posted on 2009-07-06
8
756 Views
Last Modified: 2012-05-07
Morning,

I want to be able to print some text to the far left.

Example
1 x Bread                      £1.00        

But if my middle text is longer then it miss-aligns the £0.00

Example

1 x Bread                      £1.00        
1 x Newspaper                   £1.00

I need to have the £1.00 all align to the left no matter how many chars there are. I am using the Epson ESC commands to the printer directly via the serial port.

What command should I be using? Also does anyone know of any good examples on the www?

I am using vb.net
0
Comment
Question by:richard_gar
  • 4
  • 3
8 Comments
 
LVL 6

Expert Comment

by:BALMUKUND KESHAV
Comment Utility
@  richard_gar :

How are you formating your output in your application. Are you using VBA ? Pl.put your print command /function which you are using in your APP.
Infact you will have to use rset function to right set the variable's value , before sending it to printer.

Bm Keshav
0
 

Author Comment

by:richard_gar
Comment Utility
below is my code.

I need to be able to put the following to the far left of the receipt

txtNetSales1.Text
txtNetQty1.Text
txtCash1.Text
TextBox2.Text
txtGrossSales1.Text
txtGrossQty1.Text
        Try
 

            Dim strCom As String

            Dim strBaudRate As String
 

            strCom = "COM" & Form1.txtPort.Text()

            strBaudRate = Form1.txtBaud.Text
 

            With serialPort

                .PortName = strCom

                .BaudRate = strBaudRate

                .Parity = IO.Ports.Parity.None

                .DataBits = 8

                .StopBits = IO.Ports.StopBits.One

            End With
 

            serialPort.Open()
 

            'Init the printer

            serialPort.Write(Chr(27) & Chr(31) & Chr(1))

            serialPort.Write(Chr(27) & Chr(82) & Chr(0))

            serialPort.Write(Chr(29) & Chr(33) & Chr(0))
 

            'Print the report

            serialPort.Write("                              MC #" & txtTill1.Text)

            serialPort.Write(Chr(10))

            serialPort.Write(" X/Z  " & txtTillUser1.Text & "   " & txtDate1.Text & " " & txtTime1.Text & "    " & TextBox1.Text)

            serialPort.Write(Chr(10))

            serialPort.Write("")

            serialPort.Write(Chr(10))

            serialPort.Write(" Inline                              11111")

            serialPort.Write(Chr(10))

            serialPort.Write(" Consolidation                        1000")

            serialPort.Write(Chr(10))

            serialPort.Write(" MC #02            " & txtTime1.Text & "              1375")

            serialPort.Write(Chr(10))

            serialPort.Write(" MC #01            " & txtTime1.Text & "              1372")

            serialPort.Write(Chr(10))

            serialPort.Write(" -----------------------------------------")

            serialPort.Write(Chr(10))

            serialPort.Write(Chr(27) & Chr(82) & Chr(3))

            serialPort.Write("")

            serialPort.Write(Chr(10))

            serialPort.Write(" CZ    0001311  FIXED TTL             " & TextBox2.Text)

            serialPort.Write(Chr(10))

            serialPort.Write("")

            serialPort.Write(Chr(10))

            serialPort.Write(" GROSS                 " & txtGrossQty1.Text & "      " & txtGrossSales1.Text)

            serialPort.Write(Chr(10))

            serialPort.Write(" NET             No    " & txtNetQty1.Text & "      " & txtNetSales1.Text)

            serialPort.Write(Chr(10))

            serialPort.Write(" CASH                            " & txtCash1.Text)

            serialPort.Write(Chr(10))

            serialPort.Write("")

            serialPort.Write(Chr(10))

            serialPort.Write(" -----------------------------------------")

            serialPort.Write(Chr(10))

            serialPort.Write("")

            serialPort.Write(Chr(10))

            serialPort.Write(" CZ    0001315  DEPT                  " & TextBox3.Text)

            serialPort.Write(Chr(10))

            serialPort.Write("")

            serialPort.Write(Chr(10))

            serialPort.Write(" WET SALES             " & txtWetQty1.Text & "      " & txtWetSales1.Text)

            serialPort.Write(Chr(10))

            serialPort.Write(" FOOD                  " & txtDryQty1.Text & "      " & txtDrySales1.Text)

            serialPort.Write(Chr(10))

            serialPort.Write(" -----------------------------------------")

            serialPort.Write(Chr(10))

            serialPort.Write(" TL                    " & TextBox4.Text & "      " & txtTotalDeptQty1.Text)

            serialPort.Write(Chr(10))

            serialPort.Write("")

            serialPort.Write(Chr(10))

            serialPort.Write(" -----------------------------------------")

            serialPort.Write(Chr(10))

            serialPort.Write("")

            serialPort.Write(Chr(10))

            serialPort.Write("                  Normal End")

            serialPort.Write(Chr(10))

            serialPort.Write("")

            serialPort.Write(Chr(10))

            serialPort.Write("")

            serialPort.Write(Chr(10))

            serialPort.Write("")

            serialPort.Write(Chr(10))

            serialPort.Write("")

            serialPort.Write(Chr(10))

Open in new window

0
 
LVL 6

Expert Comment

by:BALMUKUND KESHAV
Comment Utility
You format your line like this :

   Grossq = Space(10)
   Grsosss=Space(10)
   RSet Grossq = Format(txtGrossQty1.text, "########0.0")
   RSet Grosss = Format(txtGrosssales1.text, "########0.0")
   serialPort.Write(" GROSS                 " +Grossp+"   "+Grosss)

The above line will adjust your grossqty, and gross sales value from right alignment with proper spacing
of 10, now you can calcualate the lenght of your item description and can put max.space-calculated space between the item description and gross qty/gross sale

Bm Keshav
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 

Author Comment

by:richard_gar
Comment Utility
how is that going to work?

As if I have 10 spaces between them

it would like so:

1 x  bread          £1.00
1 x newspaper          £1.00

you see I have 10 spaces from bread and newspaper I need a way to make the £1.00 be at the far left of the receipt no matter how many chars there are before it.

The description of the product will never be more than 255 chars.

Is there a way to tell the £1.00 to print to the far left no matter how many chars there are in the description like so:

1 x bread             £1.00
1 x newspaper    £1.00
0
 
LVL 6

Accepted Solution

by:
BALMUKUND KESHAV earned 500 total points
Comment Utility
Do it like this :
   Grossq = Space(10) ' It will assign space 10 for Gross qty value/width
   Grsosss=Space(10)  'It will assign space 10 for Gross sales value/width

   RSet Grossq = Format(txtGrossQty1.text, "########0.0")
   RSet Grosss = Format(txtGrosssales1.text, "########0.0")

   serialPort.Write(trim(itemdescription)+space(100-trim(itemdescription))+Grossq

Assume your max item description length in your table is 100, increase/decrease this number  if req. to increase/decrease space between item description and gross qty.

Bm Keshav



0
 
LVL 6

Expert Comment

by:BALMUKUND KESHAV
Comment Utility
@ richard_gar :
 Any progress !!!!!!
Bm Keshav
0
 

Author Comment

by:richard_gar
Comment Utility
soz I will give it a go
0

Featured Post

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

Enums (shorthand for ‘enumerations’) are not often used by programmers but they can be quite valuable when they are.  What are they? An Enum is just a type of variable like a string or an Integer, but in this case one that you create that contains…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now