-
Dec 22nd, 2016, 03:42 AM
#1
Thread Starter
Hyperactive Member
Fix Page Length to 5.5 Inches
Hi there,
I am using LQ 300+ Epson Printer and i want to print a slip. Slip size is 5.5 length.
On print button i used following code
Code:
Dim pkCustomSize1 = New PaperSize ' ("Slip Print", 850, 550)
PrinterSettings.DefaultPageSettings.PaperSize = Nothing
PrinterSettings.DefaultPageSettings.PaperSize = Nothing
PrinterSettings.DefaultPageSettings.PaperSize = Nothing
pkCustomSize1 = New PaperSize("SlipPrint", 850, 550)
PrinterSettings.DefaultPageSettings.PaperSize = pkCustomSize1
PrintDocDotMatrix.PrinterSettings.PrinterName = PrinterInfo
PrintDocDotMatrix.PrinterSettings = PrinterSettings
PrintDocDotMatrix.Print()
Then I used print document to print the page
Here is my code
Code:
'
' Dot Matrix Printer Settings
'
Dim Qry As String
Dim Table = New DataTable
Dim Adapter = New SqlDataAdapter
'
' Get Data To Print On Slip
Qry = "Select * from QryTblDailySaleData where SlipNumber = " & Val(txtSlipNumber.Text) & " Order by ID"
Table = New DataTable
Adapter = New SqlDataAdapter(Qry, Conn)
Adapter.Fill(Table)
If Table.Rows.Count = 0 Then
MessageBox.Show("Record Not Found.", "Info.", MessageBoxButtons.OK, MessageBoxIcon.Information)
Exit Sub
End If
'
'
'
Dim NumValue As Double = 0
' Thermal Printer
'Printer Setting
PrintDocDotMatrix.DefaultPageSettings.PrinterSettings.Duplex = Duplex.Simplex
Dim NewTopMargin As Integer
' Header Text Formating
Dim HeaderFormat As New System.Drawing.StringFormat
HeaderFormat.LineAlignment = StringAlignment.Center ' .Center ' .Near ' center horizontally
HeaderFormat.Alignment = StringAlignment.Center ' center vertically
HeaderFormat.Trimming = StringTrimming.Word
'
'
'Sub Heading Format
Dim SubHeaderFormat As New System.Drawing.StringFormat
SubHeaderFormat.LineAlignment = StringAlignment.Center ' .Center ' .Near ' center horizontally
SubHeaderFormat.Alignment = StringAlignment.Center ' center vertically
SubHeaderFormat.Trimming = StringTrimming.Word
'Slip Number
Dim SlipNumberFormat As New System.Drawing.StringFormat
SlipNumberFormat.LineAlignment = StringAlignment.Near
SlipNumberFormat.Alignment = StringAlignment.Far
SlipNumberFormat.Trimming = StringTrimming.Word
'' Number Format
Dim Numformat As StringFormat = New StringFormat
Numformat.Alignment = StringAlignment.Far
Numformat.LineAlignment = StringAlignment.Center
Numformat.FormatFlags = StringFormatFlags.NoWrap
Dim OemFormat As StringFormat = New StringFormat
OemFormat.Alignment = StringAlignment.Near
OemFormat.LineAlignment = StringAlignment.Near
OemFormat.FormatFlags = StringFormatFlags.NoWrap
Dim RectCompanyName As New RectangleF
Dim Rect1 As New RectangleF
Dim NewDate As String
NewTopMargin = 65
' Set page length using printer codes from
' http://www.fidcal.com/printercodes/
'27,67,0,n ' Page length in inches
'27,25,82 Page eject
'Rect1 = New RectangleF(215, NewTopMargin, 150, 50)
'e.Graphics.DrawString(Chr(27) + Chr(25) + Chr(82), PreviewFontFormatSubHeading, Brushes.Black, Rect1, SlipNumberFormat)
' Print Cash or Credit on before slip number
Rect1 = New RectangleF(215, NewTopMargin, 150, 50)
e.Graphics.DrawString(CboSaleType.Text, PreviewFontFormatSubHeading, Brushes.Black, Rect1, SlipNumberFormat)
'Slip No.
NewTopMargin = NewTopMargin + 15
Dim NewSlipNo As String
NewSlipNo = txtSlipNumber.Text
Rect1 = New RectangleF(215, NewTopMargin, 150, 50)
e.Graphics.DrawString(NewSlipNo, PreviewFontFormatSubHeading, Brushes.Black, Rect1, SlipNumberFormat)
'
'
'Vehicle Registration Number
NewDate = Table.Rows(0).Item("VehicleRegNo").ToString
Rect1 = New RectangleF(185, NewTopMargin, 200, 50)
e.Graphics.DrawString(NewDate, PreviewFontFormatSubHeading, Brushes.Black, Rect1)
NewDate = Microsoft.VisualBasic.Left(Table.Rows(0).Item("SaleDate").ToString, 10)
Rect1 = New RectangleF(70, NewTopMargin, 200, 50)
e.Graphics.DrawString(NewDate, PreviewFontFormatSubHeading, Brushes.Black, Rect1)
NewTopMargin = NewTopMargin + 15
NewDate = Microsoft.VisualBasic.Left(Table.Rows(0).Item("DriverName").ToString, 15)
Rect1 = New RectangleF(245, NewTopMargin, 500, 50)
e.Graphics.DrawString(NewDate, PreviewFontFormatSubHeading, Brushes.Black, Rect1)
NewDate = Microsoft.VisualBasic.Left(Table.Rows(0).Item("DriveCellNumber").ToString, 15)
Rect1 = New RectangleF(100, NewTopMargin, 500, 50)
e.Graphics.DrawString(NewDate, PreviewFontFormatSubHeading, Brushes.Black, Rect1)
'
' Setting For Duplicate Invoice
'
If Val(Table.Rows(0).Item("CopiesPrinted").ToString) > 1 Then
Dim NewDatex As String
NewTopMargin = NewTopMargin + 0
RectCompanyName = New RectangleF(5, NewTopMargin, 380, 50)
NewDatex = "Duplicate On : " & Now.ToShortDateString & " - " & Now.ToShortTimeString()
e.Graphics.DrawString(NewDatex, PreviewFontFormatSubHeading, Brushes.Black, RectCompanyName, HeaderFormat)
End If
'
'
'
NewTopMargin = NewTopMargin + 60
Dim TotalAmount As Double = 0
For A1 = 0 To Table.Rows.Count - 1
'Print Data Here
Rect1 = New RectangleF(330, NewTopMargin, 100, 50)
e.Graphics.DrawString(Table.Rows(A1).Item("ProductName").ToString, PreviewFontFormatSubHeading, Brushes.Black, Rect1)
'
'Liters
Rect1 = New RectangleF(187, NewTopMargin, 100, 50)
e.Graphics.DrawString(Table.Rows(A1).Item("Quantity").ToString, PreviewFontFormatSubHeading, Brushes.Black, Rect1, SlipNumberFormat) 'Str(volumeUpDown.Value)
'Rate
Rect1 = New RectangleF(140, NewTopMargin, 100, 50)
e.Graphics.DrawString(Table.Rows(A1).Item("Rate").ToString, PreviewFontFormatSubHeading, Brushes.Black, Rect1, SlipNumberFormat) 'priceLabel.Text
''Amount
NumValue = Math.Round(Val(Table.Rows(A1).Item("Amount").ToString), 2)
Rect1 = New RectangleF(60, NewTopMargin, 100, 50)
e.Graphics.DrawString(NumValue.ToString("0.00"), PreviewFontFormatSubHeading, Brushes.Black, Rect1, SlipNumberFormat) 'Math.Round(paymentUpDown.Value, 2
TotalAmount = TotalAmount + NumValue
If Val(Table.Rows(A1).Item("ProductCode").ToString) >= 1 And Val(Table.Rows(A1).Item("ProductCode").ToString) <= 3 Then
NewTopMargin = NewTopMargin + 15
Rect1 = New RectangleF(330, NewTopMargin, 100, 50)
e.Graphics.DrawString(Table.Rows(A1).Item("ProductUrduName").ToString, PreviewFontFormatSubHeading, Brushes.Black, Rect1)
Rect1 = New RectangleF(190, NewTopMargin, 100, 50)
e.Graphics.DrawString("Nz# : ", PreviewFontFormatSubHeading, Brushes.Black, Rect1)
Rect1 = New RectangleF(230, NewTopMargin, 75, 50)
e.Graphics.DrawString(Table.Rows(A1).Item("NozzleNo").ToString, PreviewFontFormatSubHeading, Brushes.Black, Rect1) '_FuelPoitID
NewTopMargin = NewTopMargin + 3
End If
' End of Data Printing
' Nozzle Number
''_fuelPoint.ID
NewTopMargin = NewTopMargin + 15
Next
NewTopMargin = 270
'
'Print Total Amount here
''Amount
Rect1 = New RectangleF(60, NewTopMargin, 100, 50)
NumValue = Math.Round(TotalAmount, 2)
e.Graphics.DrawString(NumValue.ToString("0.00"), PreviewFontFormatSubHeading, Brushes.Black, Rect1, SlipNumberFormat)
'
'
'
NewTopMargin = NewTopMargin + 18
'Print Cash Received here
''Cash Received
Rect1 = New RectangleF(60, NewTopMargin, 100, 50)
NumValue = Math.Round(Val(Table.Rows(0).Item("CashReceived").ToString), 2)
e.Graphics.DrawString(NumValue.ToString("0.00"), PreviewFontFormatSubHeading, Brushes.Black, Rect1, SlipNumberFormat)
'
'
'
'
NewTopMargin = NewTopMargin + 18
Rect1 = New RectangleF(60, NewTopMargin, 100, 50)
NumValue = Math.Round(Val(Table.Rows(0).Item("BalanceReturned").ToString), 2)
e.Graphics.DrawString(NumValue.ToString("0.00"), PreviewFontFormatSubHeading, Brushes.Black, Rect1, SlipNumberFormat)
NewTopMargin = 0
''OEM Brand Name
Rect1 = New RectangleF(50, 440, 400, 15)
e.Graphics.DrawString(GlbSoftwareMadeBy, SDSFontFormatDetail, Brushes.Black, Rect1, OemFormat)
'
Both of my coding are working perfectly but the issue after print 3 to 4 slips it automatically ejects one page. I tried my level best to find the solution but i couldn't. Please help me how to resolve it.
One more thing, this is very URGENT issue, I am on client side and I have to resolve it as soon as possible.
Thanks
Ladak
-
Dec 22nd, 2016, 03:51 AM
#2
Re: Fix Page Length to 5.5 Inches
I take it that you are using PrintDocument??
If so where is your PrintPage handled?
If that second bit of code is supposed to be it, where is the HasMorePages?? ... otherwise it will only print on 1 page!!
Please provide all of the code, not just a fragment.
Kris
-
Dec 22nd, 2016, 03:58 AM
#3
Thread Starter
Hyperactive Member
Re: Fix Page Length to 5.5 Inches
>> This page only has 1 entry so no need for HasMorePages.
>> I provided both button click event and printdocument
I have nothing else here with me.
Pl Advise.
Ladak
-
Dec 22nd, 2016, 04:09 AM
#4
Thread Starter
Hyperactive Member
Re: Fix Page Length to 5.5 Inches
Print Button Code
Code:
Private Sub CmdPrint_Click(sender As Object, e As EventArgs) Handles CmdPrint.Click
' For Cystal Reports
CrystalReportNozzleNumber = Val(txtNozzleNo.Text)
Dim Qry As String
Dim Table = New DataTable
Dim Adapter = New SqlDataAdapter
' Get Printer Details on that nozzle no.
Qry = "Select ProductCode, PrintSlip, PrinterInfo, ProductName, ProductUrduName from QryTblDefaultSettings Where NozzleNo = " & Val(txtNozzleNo.Text)
Table = New DataTable
Adapter = New SqlDataAdapter(Qry, Conn)
Adapter.Fill(Table)
If Table.Rows.Count > 0 Then
PrinterInfo = Table.Rows(0).Item("PrinterInfo").ToString()
End If
'
'
'
Try
' Line Must Required
Call CopiesPrinted(Val(txtSlipNumber.Text))
Dim ppd As New PrintPreviewDialog
Dim PrinterSettings As New PrinterSettings
'
'
'
' Print
' Set Printer Name and Printer Settings.
'Dim pkPaperSize As New Printing.PaperSize("Slip_Print", 850, 550)
'PrintDocDotMatrix.DefaultPageSettings.PaperSize = pkPaperSize
Dim pkCustomSize1 = New PaperSize ' ("Slip Print", 850, 550)
PrinterSettings.DefaultPageSettings.PaperSize = Nothing
PrinterSettings.DefaultPageSettings.PaperSize = Nothing
PrinterSettings.DefaultPageSettings.PaperSize = Nothing
pkCustomSize1 = New PaperSize("SlipPrint", 850, 550)
PrinterSettings.DefaultPageSettings.PaperSize = pkCustomSize1
PrintDocDotMatrix.PrinterSettings.PrinterName = PrinterInfo
PrintDocDotMatrix.PrinterSettings = PrinterSettings
PrintDocDotMatrix.Print()
' PrinterSettings.DefaultPageSettings.PaperSize = Nothing
'
'
'
'
'
'
'
'
'
'
CmdSave.Enabled = False
CmdPrint.Enabled = True
CmdSMS.Enabled = False
'
'
'
Catch ex As Exception
'MessageBox.Show("Please Check your Printer", "Info.", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Try
End Sub
Print Document
Code:
Private Sub PrintDocDotMatrix_PrintPage(sender As Object, e As PrintPageEventArgs) Handles PrintDocDotMatrix.PrintPage
'
' Dot Matrix Printer Settings
'
Dim Qry As String
Dim Table = New DataTable
Dim Adapter = New SqlDataAdapter
'
' Get Data To Print On Slip
Qry = "Select * from QryTblDailySaleData where SlipNumber = " & Val(txtSlipNumber.Text) & " Order by ID"
Table = New DataTable
Adapter = New SqlDataAdapter(Qry, Conn)
Adapter.Fill(Table)
If Table.Rows.Count = 0 Then
MessageBox.Show("Record Not Found.", "Info.", MessageBoxButtons.OK, MessageBoxIcon.Information)
Exit Sub
End If
'
'
'
Dim NumValue As Double = 0
' Thermal Printer
'Printer Setting
PrintDocDotMatrix.DefaultPageSettings.PrinterSettings.Duplex = Duplex.Simplex
Dim NewTopMargin As Integer
' Header Text Formating
Dim HeaderFormat As New System.Drawing.StringFormat
HeaderFormat.LineAlignment = StringAlignment.Center ' .Center ' .Near ' center horizontally
HeaderFormat.Alignment = StringAlignment.Center ' center vertically
HeaderFormat.Trimming = StringTrimming.Word
'
'
'Sub Heading Format
Dim SubHeaderFormat As New System.Drawing.StringFormat
SubHeaderFormat.LineAlignment = StringAlignment.Center ' .Center ' .Near ' center horizontally
SubHeaderFormat.Alignment = StringAlignment.Center ' center vertically
SubHeaderFormat.Trimming = StringTrimming.Word
'Slip Number
Dim SlipNumberFormat As New System.Drawing.StringFormat
SlipNumberFormat.LineAlignment = StringAlignment.Near
SlipNumberFormat.Alignment = StringAlignment.Far
SlipNumberFormat.Trimming = StringTrimming.Word
'' Number Format
Dim Numformat As StringFormat = New StringFormat
Numformat.Alignment = StringAlignment.Far
Numformat.LineAlignment = StringAlignment.Center
Numformat.FormatFlags = StringFormatFlags.NoWrap
Dim OemFormat As StringFormat = New StringFormat
OemFormat.Alignment = StringAlignment.Near
OemFormat.LineAlignment = StringAlignment.Near
OemFormat.FormatFlags = StringFormatFlags.NoWrap
Dim RectCompanyName As New RectangleF
Dim Rect1 As New RectangleF
Dim NewDate As String
NewTopMargin = 65
' Set page length using printer codes from
' http://www.fidcal.com/printercodes/
'27,67,0,n ' Page length in inches
'27,25,82 Page eject
'Rect1 = New RectangleF(215, NewTopMargin, 150, 50)
'e.Graphics.DrawString(Chr(27) + Chr(25) + Chr(82), PreviewFontFormatSubHeading, Brushes.Black, Rect1, SlipNumberFormat)
' Print Cash or Credit on before slip number
Rect1 = New RectangleF(215, NewTopMargin, 150, 50)
e.Graphics.DrawString(CboSaleType.Text, PreviewFontFormatSubHeading, Brushes.Black, Rect1, SlipNumberFormat)
'Slip No.
NewTopMargin = NewTopMargin + 15
Dim NewSlipNo As String
NewSlipNo = txtSlipNumber.Text
Rect1 = New RectangleF(215, NewTopMargin, 150, 50)
e.Graphics.DrawString(NewSlipNo, PreviewFontFormatSubHeading, Brushes.Black, Rect1, SlipNumberFormat)
'
'
'Vehicle Registration Number
NewDate = Table.Rows(0).Item("VehicleRegNo").ToString
Rect1 = New RectangleF(185, NewTopMargin, 200, 50)
e.Graphics.DrawString(NewDate, PreviewFontFormatSubHeading, Brushes.Black, Rect1)
NewDate = Microsoft.VisualBasic.Left(Table.Rows(0).Item("SaleDate").ToString, 10)
Rect1 = New RectangleF(70, NewTopMargin, 200, 50)
e.Graphics.DrawString(NewDate, PreviewFontFormatSubHeading, Brushes.Black, Rect1)
NewTopMargin = NewTopMargin + 15
NewDate = Microsoft.VisualBasic.Left(Table.Rows(0).Item("DriverName").ToString, 15)
Rect1 = New RectangleF(245, NewTopMargin, 500, 50)
e.Graphics.DrawString(NewDate, PreviewFontFormatSubHeading, Brushes.Black, Rect1)
NewDate = Microsoft.VisualBasic.Left(Table.Rows(0).Item("DriveCellNumber").ToString, 15)
Rect1 = New RectangleF(100, NewTopMargin, 500, 50)
e.Graphics.DrawString(NewDate, PreviewFontFormatSubHeading, Brushes.Black, Rect1)
'
' Setting For Duplicate Invoice
'
If Val(Table.Rows(0).Item("CopiesPrinted").ToString) > 1 Then
Dim NewDatex As String
NewTopMargin = NewTopMargin + 0
RectCompanyName = New RectangleF(5, NewTopMargin, 380, 50)
NewDatex = "Duplicate On : " & Now.ToShortDateString & " - " & Now.ToShortTimeString()
e.Graphics.DrawString(NewDatex, PreviewFontFormatSubHeading, Brushes.Black, RectCompanyName, HeaderFormat)
End If
'
'
'
NewTopMargin = NewTopMargin + 60
Dim TotalAmount As Double = 0
For A1 = 0 To Table.Rows.Count - 1
'Print Data Here
Rect1 = New RectangleF(330, NewTopMargin, 100, 50)
e.Graphics.DrawString(Table.Rows(A1).Item("ProductName").ToString, PreviewFontFormatSubHeading, Brushes.Black, Rect1)
'
'Liters
Rect1 = New RectangleF(187, NewTopMargin, 100, 50)
e.Graphics.DrawString(Table.Rows(A1).Item("Quantity").ToString, PreviewFontFormatSubHeading, Brushes.Black, Rect1, SlipNumberFormat) 'Str(volumeUpDown.Value)
'Rate
Rect1 = New RectangleF(140, NewTopMargin, 100, 50)
e.Graphics.DrawString(Table.Rows(A1).Item("Rate").ToString, PreviewFontFormatSubHeading, Brushes.Black, Rect1, SlipNumberFormat) 'priceLabel.Text
''Amount
NumValue = Math.Round(Val(Table.Rows(A1).Item("Amount").ToString), 2)
Rect1 = New RectangleF(60, NewTopMargin, 100, 50)
e.Graphics.DrawString(NumValue.ToString("0.00"), PreviewFontFormatSubHeading, Brushes.Black, Rect1, SlipNumberFormat) 'Math.Round(paymentUpDown.Value, 2
TotalAmount = TotalAmount + NumValue
If Val(Table.Rows(A1).Item("ProductCode").ToString) >= 1 And Val(Table.Rows(A1).Item("ProductCode").ToString) <= 3 Then
NewTopMargin = NewTopMargin + 15
Rect1 = New RectangleF(330, NewTopMargin, 100, 50)
e.Graphics.DrawString(Table.Rows(A1).Item("ProductUrduName").ToString, PreviewFontFormatSubHeading, Brushes.Black, Rect1)
Rect1 = New RectangleF(190, NewTopMargin, 100, 50)
e.Graphics.DrawString("Nz# : ", PreviewFontFormatSubHeading, Brushes.Black, Rect1)
Rect1 = New RectangleF(230, NewTopMargin, 75, 50)
e.Graphics.DrawString(Table.Rows(A1).Item("NozzleNo").ToString, PreviewFontFormatSubHeading, Brushes.Black, Rect1) '_FuelPoitID
NewTopMargin = NewTopMargin + 3
End If
' End of Data Printing
' Nozzle Number
''_fuelPoint.ID
NewTopMargin = NewTopMargin + 15
Next
NewTopMargin = 270
'
'Print Total Amount here
''Amount
Rect1 = New RectangleF(60, NewTopMargin, 100, 50)
NumValue = Math.Round(TotalAmount, 2)
e.Graphics.DrawString(NumValue.ToString("0.00"), PreviewFontFormatSubHeading, Brushes.Black, Rect1, SlipNumberFormat)
'
'
'
NewTopMargin = NewTopMargin + 18
'Print Cash Received here
''Cash Received
Rect1 = New RectangleF(60, NewTopMargin, 100, 50)
NumValue = Math.Round(Val(Table.Rows(0).Item("CashReceived").ToString), 2)
e.Graphics.DrawString(NumValue.ToString("0.00"), PreviewFontFormatSubHeading, Brushes.Black, Rect1, SlipNumberFormat)
'
'
'
'
NewTopMargin = NewTopMargin + 18
Rect1 = New RectangleF(60, NewTopMargin, 100, 50)
NumValue = Math.Round(Val(Table.Rows(0).Item("BalanceReturned").ToString), 2)
e.Graphics.DrawString(NumValue.ToString("0.00"), PreviewFontFormatSubHeading, Brushes.Black, Rect1, SlipNumberFormat)
NewTopMargin = 0
''OEM Brand Name
Rect1 = New RectangleF(50, 440, 400, 15)
e.Graphics.DrawString(GlbSoftwareMadeBy, SDSFontFormatDetail, Brushes.Black, Rect1, OemFormat)
'
PrintDocDotMatrix.PrinterSettings = Nothing
End Sub
Please help.
-
Dec 22nd, 2016, 04:23 AM
#5
Thread Starter
Hyperactive Member
Re: Fix Page Length to 5.5 Inches
This will also help me If I can reset my printer after print every slip. any clue how to reset Epson LQ 300+ printer?
-
Dec 22nd, 2016, 04:33 AM
#6
Thread Starter
Hyperactive Member
Re: Fix Page Length to 5.5 Inches
HI i00.... No help for me????
-
Dec 22nd, 2016, 04:44 AM
#7
Thread Starter
Hyperactive Member
Re: Fix Page Length to 5.5 Inches
I just found a link http://webpages.charter.net/dperr/links/esc_p2.htm
this shows that ESC @ is used to reset printer.
Please help me how to send this command from my code.
Ladak
-
Dec 22nd, 2016, 07:18 AM
#8
Re: Fix Page Length to 5.5 Inches
Originally Posted by accmaster
I am using LQ 300+ Epson Printer and i want to print a slip. Slip size is 5.5 length.
So is this a size of paper or not??
Originally Posted by accmaster
Both of my coding are working perfectly but the issue after print 3 to 4 slips it automatically ejects one page
I thought it was so thought you meant prints an extra page...
Don't really want to dig through all of your code if I can help it ...
But have a few suggestions to hopefully give you some way forward:
Have you tried drawing to a bitmap object than outputting that to see if it works as expected??
Have you tried to reduce the page margins to make sure that it isn't appearing off a "hard" margin (physical limitation of the printer).
If you want post an image of what you want the print out to look like and I will look at re-producing it from scratch.
Kris
-
Dec 22nd, 2016, 08:35 AM
#9
Re: Fix Page Length to 5.5 Inches
Originally Posted by accmaster
This will also help me If I can reset my printer after print every slip. any clue how to reset Epson LQ 300+ printer?
Also you do not need to reset your printer
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
|