-
December 13th, 2015, 02:35 AM
#1
printing invoice in DOT MATRIX PRINTER (USB ) in VB6
I am developing a sample project in Visual basic 6 and MS Access 2003.
1. I wish to print Invoice in Continuous statonery (Roll Paper ) width of paper 5.5 inches
I am using printer.print Code using (x,y) co-ordinates
My problem , after printing one bill printer skips and giving lot of space between two bills. My aim printer must stop printing after completing one bill. ( no gaps required ) and user tear off that bill and continue to print next bill.
I am printing invoice in DOT MATRIX PRINTER (USB )
My code is
Code:
Dim cy As Long
Dim cx As Long
Dim cx1 As Long
Dim tmpval As Double
Set rs = New ADODB.Recordset
sql = "select * from del_head where tran=" & Trim(txtcustno.Text) & ""
rs.Open sql, CN, adOpenStatic, adLockPessimistic
If rs.RecordCount > 0 Then
cno = rs(2)
custname = rs(3)
ctown = rs(8)
Set rs3 = New ADODB.Recordset
rs3.Open "select sum(amountdue)-sum(amountrec) from receipt_d where cid = " & cno & "", CN, adOpenStatic, adLockPessimistic
custdue = rs3(0)
rs3.Close
Printer.Font = "Arial"
Printer.FontBold = True
Printer.FontSize = 12
Printer.CurrentX = 3400
Printer.CurrentY = 50
Printer.Print " XXXXXXXXXXXXXXXX "
Printer.Font = "Arial"
Printer.FontBold = False
Printer.FontSize = 10
Printer.CurrentX = 3400
Printer.CurrentY = 350
Printer.Print " XXXXXXXXXXXXXXXXXXXXX "
Printer.Font = "Arial"
Printer.FontBold = False
Printer.FontSize = 11
Printer.CurrentX = 2600
Printer.CurrentY = 650
Printer.Print " XXXXXXXXXXXXXXXXXXXX "
Printer.Font = "Arial"
Printer.FontBold = False
Printer.FontSize = 11
Printer.CurrentX = 3300
Printer.CurrentY = 950
Printer.Print " XXXXXXXXXXXXXXXXXXXX "
Printer.Font = "Arial"
Printer.FontBold = False
Printer.FontSize = 9
Printer.CurrentX = 6400
Printer.CurrentY = 50
Printer.Print " XXXXXXXXXXXXXXXX "
Printer.Font = "Arial"
Printer.FontBold = False
Printer.FontSize = 9
Printer.CurrentX = 6400
Printer.CurrentY = 200
Printer.Print " : XXXXXXXXXXXXXXXX "
Printer.Font = "Arial"
Printer.FontBold = False
Printer.FontSize = 9
Printer.CurrentX = 6350
Printer.CurrentY = 550
Printer.Print " XXXXXXXXXXXXXXXX"
Printer.CurrentX = 1000
Printer.CurrentY = 1150
Printer.FontSize = 9
Printer.Print " Bill No : " & rs(1)
Printer.CurrentX = 3600
Printer.CurrentY = 1150
Printer.FontSize = 8
Printer.Print " INVOICE "
Printer.CurrentX = 6150
Printer.CurrentY = 1150
Printer.FontSize = 9
Printer.Print " Date : " & rs(4)
Printer.Line (1000, 1400)-(7800, 1400) '-h line
'Printer.Line (20, 10)-(20, 18800) 's1
'Printer.Line (11520, 10)-(11520, 18800) 's2
'Printer.Line (10, 18800)-(11500, 18800) 'bl
Printer.Font = "DCI + Tml + Ismail"
Printer.CurrentX = 100
Printer.CurrentY = 1550
Printer.Print " tpguk; fp tpiy bjhif"
Printer.Line (1000, 1800)-(7800, 1800) '-h line
cy = 2000
cx = 6500
Set rs1 = New ADODB.Recordset
sql = "select * from del_det where transno=" & Trim(txtcustno.Text) & ""
rs1.Open sql, CN, adOpenStatic, adLockPessimistic
Do While Not rs1.EOF
Printer.Font = "DCI + Tml + Ismail"
Printer.CurrentX = 1100
Printer.CurrentY = cy
Printer.Print rs1(3)
Printer.Font = "Arial"
Printer.FontSize = 10
Printer.CurrentX = 3500
Printer.CurrentY = cy
Printer.FontSize = 9
Printer.Print rs1(4)
Printer.CurrentX = 4700 - TextWidth(rs1(5))
Printer.CurrentY = cy
Printer.Print Format(rs1(5), "00.00")
Printer.CurrentX = cx - TextWidth(rs1(6))
Printer.CurrentY = cy
Printer.Print Format(rs1(6), "00.00")
'Format$(123,"@@@@@@")
rs1.MoveNext
cy = cy + 250
Loop
Printer.Line (6000, cy)-(7800, cy) '-h line
Printer.Font = "DCI + Tml + Ismail"
Printer.CurrentX = 4500
Printer.CurrentY = cy + 100
Printer.FontSize = 10
Printer.Print " bkhj;jk; "
Printer.Font = "Arial"
Printer.CurrentX = cx - TextWidth(rs(7))
Printer.CurrentY = cy + 100
Printer.FontSize = 10
Printer.Print Format(rs(7), "00.00")
cy = cy + 300
Printer.Line (6000, cy)-(7800, cy) '-h line
Printer.Font = "DCI + Tml + Ismail"
Printer.CurrentX = 4500
Printer.CurrentY = cy + 300
Printer.FontSize = 10
Printer.Print " bkhj;j ghf;fp "
Printer.Font = "Arial"
Printer.CurrentX = cx - TextWidth(custdue)
Printer.CurrentY = cy + 300
Printer.FontSize = 10
Printer.Print Format(custdue, "00.00")
cy = cy + 600
Printer.Line (6000, cy)-(7800, cy) '-h line
Printer.EndDoc
End If
Last edited by DataMiser; December 13th, 2015 at 11:05 AM.
Reason: added code tags
-
December 13th, 2015, 11:07 AM
#2
Re: printing invoice in DOT MATRIX PRINTER (USB ) in VB6
EndDoc commits the printing to the printer and if I am not mistaken also sends a form feed. You may be able to configure how far the printer advances using the printer driver supplied for the printer.
You would have to have some space between the two in order to tear off without tearing off some of the text
Always use [code][/code] tags when posting code.
-
January 14th, 2016, 10:09 PM
#3
Re: printing invoice in DOT MATRIX PRINTER (USB ) in VB6
Check the Form Length in the Printer Properties.
If you can, change the form length to 1 (or 0)
In this way the Form feed won't space the paper too much
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|